Pentru modificarea conturilor utilizatorilor în Linux am folosit, în articolele anterioare, comenzile useradd, usermod, passwd sau chage. Dar unele proprietăți pot fi schimbate și direct din fișierele de configurare ale conturilor. De exemplu, fișierele /etc/passwd și /etc/shadow controlează cele mai multe din caracteristicile de bază ale unui cont.
Atenție! Editarea manuală a fișierelor /etc/passwd și /etc/shadow este periculoasă și nu este, în mod normal, recomandată. Este foarte ușor ca o înregistrare din fișier să fie stricată, ceea ce poate avea ca efect blocarea accesului unui user la sistem sau chiar mai rău. Se recomandă folosirea utilitarelor useradd, passwd, usermod sau chage. Dacă este cu adevărat necesară modificarea manuală a acestor fișiere, rulați utilitarul pwck
pentru a verifica integritatea acestor fișiere și validitatea datelor.
Ambele fișiere conțin înregistrări, câte una pe fiecare linie. Fiecare linie începe cu un nume de utilizator și continuă cu un set de câmpuri delimitate de caracterul două puncte ( : ). Majoritatea acestor elemente pot fi modificate cu ajutorul usermod sau passwd.
O înregistrare obișnuită din fișierul /etc/passwd arată ca mai jos:
bobses:x:1000:1000:Bobses:/home/bobses:/bin/bash
Câmpurile din înregistrare au următoarele semnificații:
Nume de utilizator
Primul câmp din fiecare înregistrare a fișierului /etc/passwd este un nume de utilizator (în acest exemplu - bobses)
Parolă
Al doilea câmp este, în mod tradițional, rezervat pentru parolă. Majoritatea sistemelor Linux stochează această parolă în mod hashed în fișierul /etc/shadow. Caracterul x
din exemplu indică faptul că parola este în uz și stocată în fișierul /etc/shadow. În sistemele care nu folosesc fișierul /etc/shadow, aici apare parola hashed.
UID
Următorul câmp d edupă parolă este UID-ul utilizatorului - 1000 în exemplul de mai sus.
Primary GID
ID-ul grupului default al utilizatorului este următorul câmp din linia de mai sus - 1000 în exemplul de mai sus.
Comentariu
Câmpul pentru comentarii poate conține mai multe: numele complet al utilizatorului (ca în exemplul de mai sus), numărul de telefon, etc.
Directorul home
Este indicat directorul home al utilizatorului - /home/bobses.
Shell-ul default
Shell-ul default este ultimul câmp dintr-o înregistrare din fișierul /etc/passwd. El poate fi /bin/bash, /bin/tcsh sau altceva.
Dacă vă veți uita în fișierul /etc/passwd veți vedea și alte tipuri speciale de shell:
- /usr/bin/nologin - userul cu acest shell va primi, la logare, un mesaj de genul "This account is currently not available" - este folosit pentru a interzice conectarea într-un cont. Acest shell este considerat un shell valid și este cerut, de exemplu, de serverele FTP. Exit code va fi întotdeauna 1.
- /bin/false - nu este considerat un shell valid, sistemul comportându-se ca și cum shell-ul refuză să ruleze; este folosit pentru a nu permite conectarea utilizatorilor care au stabilit acest shell
O înregistrare obișnuită din fișierul /etc/shadow arată ca mai jos:
bobses:$6$msqwg[...]2wgXWI8p2.:17322:0:99999:7:-1:-1:
Majoritatea câmpurilor corespund opțiunilor setate cu utilitarul chage
, unele putând fi stabilite cu useradd
, usermod
sau passwd
.
Semnificația fiecărui câmp din această înregistrare este:
Nume de utilizator
Fiecare linie începe cu un nume de utilizator. De reținut că UID nu este folosit în fișierul /etc/shadow. Numele de utilizator din acest fișier este legat cu cel din fișierul /etc/passwd.
Parolă
Parola este stocată în formă hashed, deci nu va putea fi reconstituită parola inițială.
Un asterisc ( *
) în câmpul parolei arată că acest cont nu acceptă conectări. Oricum, contul va putea să ruleze, de exemplu, cron
.
Un semn de exclamare ( !
) înaintea parolei hash arată că respectivul cont este blocat (cu comanda usermod -L
, de exemplu).
Două semne de exclamare ( !!
)înaintea parolei hash arată că respectivul cont nu acceptă conectări (pot fi conturi folosite de sistem).
Data ultimei schimbări a parolei
Următorul câmp (17322 în acest exemplu) este data ultimei schimbări a parolei. Data este stocată ca număr de zile trecute de la 1 ianuarie 1970.
Zile până când poate fi schimbată parola
Următorul câmp arată (0 în acest exemplu) arată peste câte zile poate fi schimbată parola.
Zile până când este necesar să schimbăm din nou parola
Următorul câmp ne spune peste câte zile de la ultima schimbare a parolei este necesar să schimbăm din nou parola (99999 în exemplu).
Zile de avertizare înainte de expirarea parolei
Câmpul următor ne spune cu câte zile înainte de expirarea parolei utilizatorii vor primi mesaje de atenționare.
Zile între expirare și dezactivare
Linux permite un decalaj între expirarea parolei și dezactivarea contului. Un cont expirat nu mai poate fi folosit sau cere utilizatorului schimbarea parolei imediat după conectare. Un cont dezactivat nu mai poate fi folosit până la reactivarea sa de către administratorul sistemului.
Data de expirare
Câmpul arată data la care va expira parola. Și aici, data este exprimată în zile trecute de la 1 ianuarie 1970.
Special flag
Câmpul este rezervat pentru o utilizare viitoare și nu conține nicio valoare.
În câmpurile în care se face referire la zile, valoare de 99999
sau -1
înseamnă că acea caracteristică a fost dezactivată. valorile din /etc/shadow sunt în general schimbate cu usermod sau chage, deoarece este foarte posibilă greșirea la schimbarea manuală - de exemplu, este destul de greu să calculezi zilele scurse de la 1 ianuarie 1970.
La fel, din cauza hashului, este recomandată schimbarea parolei doar cu ajutorul comenzii passwd
.
ubu a zis
buna ziua terminalul meu nu e atat de vorbaretsi nu-mi primeste parola;: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
ubu@192:~$ sudo apt install -f
[sudo] password for ubu:
ubu is not in the sudoers file. This incident will be reported.
ubu@192:~$
cum sa repar dpkg?