Cum Linux stochează și gestionează parolele utilizatorilor

Cum Linux stochează și gestionează parolele utilizatorilor
⏱️ 8 min read

V-ați întrebat cum Linux gestionează eficient un mediu multi-utilizatori? În acest articol vă explicăm modul în care Linux stochează și gestionează parolele și autentificările utilizatorilor.

Explorarea fișierului / etc / passwd

Când un utilizator introduce un nume de utilizator și o parolă, Linux verifică parola introdusă în raport cu o intrare în mai multe fișiere din directorul „/ etc”.

„/ Etc / passwd” este unul dintre cele mai importante fișiere care stochează detaliile utilizatorului.

Ultima intrare din acest fișier corespunde utilizatorilor „carbon”. Există mai multe câmpuri de informații separate prin două puncte (:).

  • carbon : numele utilizatorului căruia îi corespunde această intrare.
  • x : indică faptul că există o parolă pentru utilizator. Cu toate acestea, parola este stocată în fișierul „/ etc / shadow”. Dacă în loc de x arată o ! simbol, aceasta indică faptul că nu există o parolă.
  • 1000 : ID-ul utilizatorului acestui utilizator.
  • 1000: ID-ul grupului din care aparține acest utilizator.
  • carbon, , , : indicând mai multe câmpuri de informații, inclusiv numele complet și numerele de telefon. Aici nu au fost furnizate numere de telefon.
  • /home/carbon : locația directorului de acasă atribuit acestui utilizator.
  • /bin/bash : shell implicit atribuit acestui utilizator.

Să creăm un alt utilizator pentru care au fost stocate unele numere de telefon. Utilizatorul „pluto” este adăugat la sistem folosind adduser comanda.

câmp GECOS pentru utilizator Linux

Privind din nou fișierul „etc / passwd”, putem vizualiza informațiile complete pentru utilizatorul „pluto”. Câmpul care are o listă separată prin virgule cu numele complet și numerele este numit „câmp GECOS”.

afișează / etc / passwd cu detalii despre telefon

Ori de câte ori este creat un utilizator, valorile directorului principal și ale shell-ului implicit care trebuie atribuite sunt specificate în fișierul „/etc/adduser.conf”.

adduser.conf

ID-urile de utilizator pentru utilizatorii creați încep de la 1000 și rulează până la 59999.

Utilizatorul „carbon” a putut vizualiza intrările fișierului „/ etc / passwd” pur și simplu utilizând cat comanda. Să aruncăm o privire asupra permisiunilor sale.

permisiunea fișierului / etc / passwd

Numai utilizatorul „root” poate scrie în fișier. Alți utilizatori pot citi fișierul numai. Deoarece acest fișier este lizibil de toată lumea, nu este ideal să stocați parole aici. În schimb, este stocat într-un alt fișier numit „/ etc / shadow”.

Explorarea fișierului / etc / shadow

Acum să încercăm să vizualizăm parola stocată pentru utilizatorii „carbon” și „pluto” în fișierul „/ etc / shadow”.

/ etc / permisiune shadow refuzată

Aruncând o privire asupra permisiunilor pentru fișierul „/ etc / shadow”, putem vedea că numai utilizatorul „root” poate citi și scrie în fișier. De asemenea, numai membrii grupului „umbră” pot citi fișierul. În realitate, grupul „umbră” este gol, dar este necesar din punct de vedere sintactic pentru acest fișier.

permisiunea fișierului / etc / shadow

Conectându-ne ca „root”, putem vizualiza ultimele zece linii ale „/ etc / shadow”. Pentru fiecare intrare din „/ etc / passwd”, există o intrare corespunzătoare în acest fișier. Formatul va fi astfel:

afișează intrări / etc / shadow

Și în acest fișier, fiecare intrare are mai multe câmpuri separate prin două puncte (:). Să descifrăm intrarea pentru utilizatorul „pluto”.

  • pluto : numele utilizatorului căruia îi corespunde această intrare.
  • $6$JvWfZ9u.$yGFIqOJ.... : Parola de utilizator hash stocată împreună cu informații despre algoritmul de hash utilizat. În plus, o valoare de sare este utilizată împreună cu parola în text simplu pentru a genera hash-ul parolei.

Să procesăm conținutul din acest domeniu. $ simbolul este folosit ca delimitator pentru a separa trei câmpuri.

  • $6 : algoritmul de hash folosit. Iată lista potențialilor algoritmi de hash.

    • $ 1: MD5
    • $ 2a: Blowfish
    • $ 2y: Eksblowfish
    • 5 USD: SHA-256
    • 6 USD: SHA-512
  • $JvWfZ9u. : valoarea sării.
  • $yGFIqOJ.... : parola hash.

Valoarea hash rezultată este stocată ca parolă criptată pentru un utilizator. Valoarea sării este unică pentru fiecare utilizator. Chiar dacă doi utilizatori au aceeași parolă cu text simplu, utilizarea unei sări unice ar genera o valoare hash unică.

Urmând câmpurile rămase din această intrare,

  • 18283: Indică numărul de zile de la 1 ianuarie 1970, când parola a fost modificată ultima dată
  • 0 : acest câmp este utilizat pentru a indica numărul de zile după care parola poate fi schimbată. O valoare 0 înseamnă că parola poate fi schimbată în orice moment.
  • 99999 : acest câmp indică numărul de zile după care trebuie schimbată parola. O valoare de 99999 indică faptul că un utilizator poate păstra parola atât timp cât dorește.
  • 7 : dacă parola este setată să expire, aceste câmpuri indică numărul de zile pentru a avertiza utilizatorul despre expirarea parolei.
  • : : : Încă trei câmpuri fac parte din această intrare, deși sunt goale aici. Primul indică numărul de zile de așteptare după expirarea parolei, după care contul va fi dezactivat. Al doilea indică numărul de zile de la 1 ianuarie 1970 în care un cont a fost dezactivat. Al treilea câmp este rezervat pentru utilizare viitoare. Câmpurile goale indică faptul că parola existentă pentru acest utilizator nu a expirat și nu este setată să expire în curând.

Se spune că ultimele șapte câmpuri referitoare la validitatea parolei conțin informații despre „Politica de îmbătrânire a parolei”.

Valorile implicite corespunzătoare „Politicii de îmbătrânire a parolei” sunt specificate în fișierul „/etc/login.defs”. Aceste valori pot fi modificate pentru un utilizator care utilizează change comanda.

login.defs

Dar informațiile despre grup?

Informațiile utilizatorului și parolele sunt stocate în fișierele „/ etc / passwd” și „/ etc / shadow”. În mod similar, informațiile despre grup sunt stocate în fișierul „/ etc / group”.

afișează / etc / intrări de grup

Evidențiate mai sus sunt grupurile aparținând utilizatorilor „carbon” și „pluto”. Când un utilizator este creat în Linux, acel utilizator este imediat atribuit unui grup cu același nume ca numele de utilizator.

Membrii unui grup pot partaja și o parolă de grup pentru activități legate de grup. Valoarea a x indică faptul că informațiile despre parolă pentru acel grup ar fi în fișierul „/ etc / gshadow”.

Cu toate acestea, accesul la „/ etc / gshadow” este limitat la utilizatorul „root”.

permisiunea / etc / gshadow refuzată

Utilizatorul „root” poate vizualiza intrările „/ etc / gshadow”, care este similar cu „/ etc / shadow”. Privind la intrarea pentru grupul „carbon”, putem vedea că al doilea câmp are o valoare de !, care indică faptul că nu există o parolă pentru acest grup.

Parola 11

Punând totul împreună

Când un utilizator dorește să se conecteze, hash-ul parolei tastate este găsit folosind valoarea de sare a acelui utilizator în „/ etc / shadow”. Apoi este comparat cu hash-ul stocat. Dacă valorile se potrivesc, utilizatorului i se acordă acces.

Legate de:

  • Cum se resetează parola de root în Linux
  • Cum să vă gestionați parola de utilizator de la terminal în Linux

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

You may also like...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x