Un cont de utilizator este mai mult decât un simplu nume. Descoperă cum poți configura și ajusta toate datele asociate unui cont Linux direct din linia de comandă.
Ce înseamnă un nume?
În sistemele de operare tip Linux sau Unix, fiecare utilizator are un cont. Numele atribuit acestui cont este identificatorul tău, pe care îl folosești pentru a te autentifica. Acesta servește, de asemenea, ca nume implicit pentru grupul tău de autentificare și pentru directorul tău personal, toate fiind legate de același identificator.
Pe lângă acestea, poți stoca și alte informații despre fiecare cont. Date personale precum numele complet, numărul biroului și numărul de telefon pot fi asociate contului. În plus, poți include chiar și fragmente de informații arbitrare.
Acest aspect este extrem de util pentru administratorii de sistem care gestionează computere cu numeroase conturi de utilizator. Dar chiar și pentru un utilizator individual, este interesant să înțelegem funcționarea sistemului.
Câmpul GECOS: O scurtă istorie
În trecut, utilizatorii sistemelor Unix nu aveau acces direct la imprimante. Aceștia trebuiau să trimită cererile de imprimare către un mainframe General Electric care rula General Electric Comprehensive Operating System (GECOS). Pentru a face acest lucru, utilizatorii Unix trebuiau să stocheze și să folosească datele de autentificare pentru sistemul GECOS.
Câmpul GECOS a fost conceput special pentru a memora aceste informații. Deși acea necesitate specifică a dispărut, câmpul GECOS a fost reutilizat pentru a stoca alte date relevante despre utilizator. Deși scopul său s-a schimbat, denumirea a rămas aceeași.
Acest câmp se găsește în fișierul /etc/passwd, alături de alte detalii despre contul utilizatorului, precum:
- Numele de utilizator al contului.
- ID-ul utilizatorului.
- ID-ul grupului.
- Calea către directorul principal al contului.
- Interpretorul de comenzi (shell) care pornește la conectare.
De aici, comanda finger și pinky preiau informațiile pe care le afișează.
Comanda chfn: Modificarea datelor de utilizator
Comanda chfn (change finger information) îți permite să configurezi și să modifici informațiile stocate în câmpul GECOS. Aceste informații sunt memorate ca o listă separată prin virgulă.
Comanda chfn este disponibilă implicit pe Ubuntu 18.04.1 și Manjaro 18.1.0. Pe Fedora 31, este necesară instalarea folosind comanda:
sudo dnf install util-linux-user
Să vedem ce informații poate obține comanda finger despre utilizatorul „dave”. Pentru a afișa toate detaliile, vom folosi opțiunea -l (format lung):
finger dave -l
Rezultatul va fi ceva de genul:
Acesta afișează numele contului, directorul personal și shell-ul implicit. Toate acestea sunt legate de contul de utilizator, nu de persoana reală care îl folosește. Putem folosi comanda chfn pentru a stoca informații despre persoana respectivă.
chfn dave
Comanda chfn va începe un proces interactiv. Vei fi solicitat să introduci date pentru fiecare câmp din GECOS. Valorile actuale sunt afișate între paranteze []. Pentru a păstra valoarea curentă, apasă tasta „Enter”.
Am introdus următoarele informații:
Număr cameră: 512
Telefon serviciu: 555-4567
Telefon de acasă: 555-5432
Să verificăm dacă comanda finger preia noile informații:
finger dave -l
Informațiile au fost actualizate. Totuși, ai observat că nu a solicitat modificarea numelui complet. Pentru aceasta, este necesar să folosești sudo. Nu este nevoie să parcurgi din nou întreaga sesiune chfn. Poți schimba individual fiecare valoare.
Modificarea individuală a datelor
Pentru a seta numele complet al proprietarului contului, folosește opțiunea -f (full name) împreună cu sudo:
sudo chfn -f "Dave McKay" dave
Și verificăm din nou cu comanda finger:
Numele complet a fost adăugat.
Există opțiuni pentru modificarea numărului camerei, a numărului de telefon de acasă și a numărului de telefon de la serviciu. Pentru a modifica numărul camerei (biroului), folosește opțiunea -r (room number):
sudo chfn -r 633 dave
Pe unele distribuții, poți folosi opțiunea -o (office room number) în loc de -r. Pentru a afla mai multe detalii despre versiunea ta de chfn, folosește:
man chfn
Pentru a schimba numărul de telefon de la birou, folosește opțiunea -w (work phone):
sudo chfn -w 555-1122 dave
Și, pentru a schimba numărul de telefon de acasă, folosește opțiunea -h (home phone):
sudo chfn -h 555-6576 dave
Să verificăm din nou cu comanda finger dacă toate modificările au fost aplicate:
finger dave -l
Modificările au fost efectuate cu succes.
Modificarea informațiilor altor utilizatori
Cum modificăm informațiile GECOS ale altor utilizatori? Procesul este la fel de simplu. Singura diferență este că trebuie să folosești sudo. Să verificăm ce informații sunt setate pentru contul utilizatorului Mary:
finger mary -l
Informațiile standard sunt setate pentru acest cont. Să adăugăm noi informații:
sudo chfn mary
Vom trece prin aceeași sesiune interactivă, completând valorile pentru fiecare câmp. Deoarece folosim sudo, ni se va cere și numele complet.
Observă ultimul câmp, „Altul?”.
Acesta nu este acceptat de toate versiunile de chfn și apare doar dacă folosești sudo. Din acest motiv nu l-am văzut anterior când nu am folosit (intenționat) sudo cu:
chfn dave
Valoarea „Altul” poate conține orice informație dorești, fără o utilizare specifică.
Versiunile de chfn care suportă câmpul „Altul” oferă și opțiunea -o (other) pentru a modifica direct această valoare. Datorită conflictului între -o pentru „numărul biroului” și -o pentru „altul”, unele sisteme folosesc -r pentru „numărul camerei”.
Putem vedea datele stocate pentru contul Mary în fișierul /etc/paswd, folosind comanda less:
less /etc/passwd
Pe sistemele care o permit (consultă pagina de manual pentru versiunea ta de chfn), poți seta câmpul „altul” direct folosind opțiunea -o (other):
sudo chfn -o "HTG Freelancer" dave
Și putem verifica datele pentru contul „dave” folosind din nou comanda less:
less /etc/passwd
[asswdîntr-ofereastrădeterminal”width=”646″height=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>
Apare o întrebare evidentă. Dacă versiunea ta de chfn nu acceptă câmpul „Alt”, cum îl modifici? Putem face acest lucru cu comanda usermod.
Comanda usermod: O altă cale
Comanda usermod îți permite să modifici diverse aspecte ale unui cont de utilizator, cum ar fi adăugarea sau eliminarea din grupuri și schimbarea shell-ului implicit. Poate fi utilizată și pentru a manipula direct câmpul GECOS.
Să analizăm linia din fișierul /etc/passwd corespunzătoare contului Mary. Vom folosi grep pentru a izola linia. Aceasta este o operațiune sigură, deoarece numele de utilizator trebuie să fie unic.
grep mary /etc/passwd
Câmpurile din fișierul /etc/passwd sunt afișate, folosind caracterul „:” ca separator. De la stânga la dreapta, câmpurile sunt:
- Numele contului de utilizator.
- Un „x” care indică faptul că parola este stocată criptat în fișierul /etc/shadow.
- ID-ul utilizatorului.
- ID-ul grupului.
- Câmpul GECOS.
- Calea către directorul principal al contului.
- Shell-ul care pornește la conectare.
O virgulă „,” este folosită pentru a separa valorile din câmpul GECOS. Aceste valori sunt, de la stânga la dreapta:
- Numele complet.
- Numărul camerei (sau al biroului).
- Numărul de telefon de la serviciu.
- Numărul de telefon de acasă.
- Alte informații.
Reține că usermod setează întregul câmp GECOS la valoarea pe care o furnizezi. Dacă specifici doar numele complet, atunci acesta va fi singura informație din câmpul GECOS. Este necesar să specifici toate valorile de date pe care dorești să le păstrezi.
Iată un exemplu. Mary a fost promovată și se va muta la etajul patru, având un nou număr de birou, un nou număr de telefon de la serviciu și un al doilea nume. Câmpul „Alt” va fi modificat, de asemenea. Chiar dacă numărul de telefon de acasă nu se schimbă, trebuie să îl specificăm în comanda usermod.
Trebuie să folosim opțiunea -c (comment) și să executăm comanda cu sudo.
sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary
Folosind grep pentru a afișa conținutul fișierului /etc/passwd pentru Mary, observăm că noile valori au fost adăugate.
grep mary /etc/passwd
Informațiile se schimbă constant
Informațiile incorecte nu au valoare. Când datele personale se modifică – mutări de birou, schimbări de nume, titluri de rol – poți actualiza cu ușurință metadatele pentru a reflecta situația actuală.