Cum se schimbă datele utilizatorului cu chfn și usermod pe Linux

Un cont de utilizator înseamnă mai mult decât un nume de utilizator. Aflați cum să setați și să modificați toate metadatele asociate unui cont de utilizator Linux din linia de comandă.

Ce este într-un nume?

Dacă utilizați un computer asemănător Linux sau Unix, veți avea un cont de utilizator. Numele dat contului este numele contului dvs. de utilizator. Acesta este numele cu care vă autentificați. Este, de asemenea, (în mod implicit) numele grupului dvs. de autentificare și numele directorului dvs. de acasă. Toate folosesc același identificator.

Există un alt set de informații care pot fi stocate pentru fiecare cont de utilizator. Datele din lumea reală, cum ar fi numele complet al persoanei, numărul biroului și numărul de telefon al serviciului, de exemplu, pot fi definite și atașate acestora. Într-adevăr, fragmente de informații complet arbitrare pot fi etichetate în conturile de utilizator.

În termeni practici, acest lucru va fi mai util pentru administratorii de sistem care se ocupă de computerele care au multe conturi de utilizator configurate pe ele. Dar chiar și pentru computerul Linux cu un singur utilizator, este întotdeauna interesant să știi ce se întâmplă sub capotă.

Câmpul GECOS

La un moment dat, pionierii Unix nu aveau o imprimantă proprie. Au fost nevoiți să-și transfere lucrările de imprimare la a General Electric mainframe care rula Sistem de operare cuprinzător General Electric (GECOS). Pentru a realiza acest lucru, utilizatorii de pe sistemele Unix trebuiau să stocheze și să utilizeze acreditările unui cont pe sistemul GECOS.

Câmpul GECOS a fost creat pentru a stoca acele acreditări. Acea cerință de nișă a trecut de mult în istorie, iar câmpul GECOS a fost reutilizat pentru a stoca alte date legate de proprietarul contului de utilizator. Poate avea un nou loc de muncă, dar își păstrează vechiul nume. Se mai numește câmpul GECOS.

Câmpul este stocat în fișierul /etc/passwd, împreună cu alte informații referitoare la contul de utilizator:

Numele de utilizator al contului.
ID-ul utilizatorului.
ID-ul grupului.
Calea către directorul principal pentru contul de utilizator.
Shell-ul care este pornit atunci când utilizatorul se conectează.

  Cum să joci seria de jocuri Bungie Marathon pe Linux

Aici este locul deget comanda și degetul mic comanda preia informațiile pe care le afișează.

Comanda chfn

Chfn (schimbarea informațiilor degetelor) vă permite setați și modificați informațiile stocate în câmpul GECOS. Informațiile sunt stocate ca o listă separată prin virgulă în câmp.

Comanda chfn era deja prezentă pe Ubuntu 18.04.1 și Manjaro 18.1.0. A trebuit să fie instalat pe Fedora 31. Utilizați această comandă pentru a o instala:

sudo dnf install util-linux-user

Să vedem ce deget poate afla despre proprietarul contului de utilizator „dave”. Pentru a obține maximum de informații, vom folosi opțiunea -l (format lung):

finger dave -l

Iată ce ar putea găsi:

Acesta preia numele de utilizator al contului, directorul principal și shell-ul implicit. Toate acestea sunt legate de contul de utilizator. Nu se referă la persoana reală care folosește acel cont. Putem folosi comanda chfn pentru a stoca informații despre persoana reală.

chfn dave

Utilizarea chfn în acest fel începe un proces scurt, interactiv. Vi se solicită să introduceți o valoare de date pentru fiecare informație pe care o poate deține câmpul GECOS. Valoarea curentă pentru fiecare valoare de date este afișată între paranteze []. Dacă doriți să păstrați datele curente, puteți apăsa tasta „Enter”, iar valoarea dintre paranteze va fi reținută.

Informațiile pe care le-am introdus au fost:

Număr cameră: 512
Telefon serviciu: 555-4567
Telefon de acasă: 555-5432

Să verificăm dacă degetul preia acele informații noi:

finger dave -l

Da, da. Dar este posibil să fi observat că nu a solicitat schimbarea numelui complet. Va face asta doar dacă folosești sudo. Dar nu trebuie să trecem din nou prin întreaga sesiune chfn, doar pentru că am uitat să folosim sudo. Putem schimba oricare dintre valorile datelor individual.

Modificarea valorilor individuale ale datelor

Putem seta numele complet pentru proprietarul contului de utilizator folosind opțiunea -f (nume complet), împreună cu sudo.

sudo chfn -f "Dave McKay" dave

sudo chfn -f

Și dacă mai verificăm o dată cu degetul:

Putem vedea că numele complet a fost adăugat.

Există și alte opțiuni pentru a schimba numărul camerei, numărul de telefon de acasă și numărul de telefon de la serviciu. Pentru a schimba numărul camerei (biroului), utilizați opțiunea -r (numărul camerei):

sudo chfn -r 633 dave

Rețineți că în unele distribuții, puteți utiliza opțiunea -o (numărul camerei biroului) în loc de opțiunea -r. Mai multe despre asta în scurt timp. Pentru moment, pentru a vedea opțiunile pentru versiunea dvs. de chfn, utilizați:

man chfn

Pentru a schimba numărul de telefon de la birou, utilizați opțiunea -w (telefon de serviciu):

sudo chfn -w 555-1122 dave

Și, în sfârșit, pentru a schimba numărul de telefon de acasă utilizați opțiunea -h (număr de telefon de acasă):

sudo chfn -h 555-6576 dave

Să folosim din nou degetul pentru a vedea dacă toate aceste modificări au fost acceptate:

finger dave -l

Succes. Toate aceste comenzi au funcționat, iar valorile datelor au fost actualizate.

  Cei mai buni 8 manageri de partiții Linux pentru a crea și a șterge spațiu pe disc

Utilizarea chfn pe alte conturi de utilizator

Atât de mult despre schimbarea propriilor informații, cum rămâne cu schimbarea informațiilor GECOS pentru alți utilizatori? E la fel de ușor. Trebuie să utilizați sudo când o faceți, dar aceasta este singura diferență. Să verificăm ce date sunt setate pentru contul de utilizator Mary:

finger mary -l

Informațiile implicite uzuale sunt setate pentru acest cont de utilizator. Să adăugăm la informații:

sudo chfn mary

Vom parcurge aceeași sesiune ca și înainte, fiind solicitați o valoare a datelor pentru fiecare informație care poate fi stocată. Și pentru că am folosit sudo , ni se cere valoarea datelor pentru numele complet.

Așteaptă puțin, care este ultimul articol, numit „Altul?”

nu este acceptat de toate versiunile de chfn și îl vedeți doar dacă utilizați sudo, motiv pentru care nu l-am văzut mai devreme când (în mod deliberat) nu am folosit sudo cu:

chfn dave

Valoarea de date „Alte” poate conține orice doriți. Nu are nicio utilizare prescrisă sau așteptată.

Versiunile de chfn care acceptă câmpul „Alt” oferă, de asemenea, opțiunea -o (altul) pentru a schimba această valoare direct. Din cauza conflictului dintre -o pentru „numărul biroului” și -o pentru „altul”, unele sisteme folosesc -r pentru „numărul camerei”.

Putem vedea datele stocate pentru contul de utilizator Mary în fișierul /etc/paswd, folosind mai puțin:

less /etc/passwd

Pe sistemele care îl acceptă (verificați pagina de manual pentru versiunea dvs. de chfn) puteți seta câmpul „altul” direct folosind opțiunea -o (altul):

sudo chfn -o "HTG Freelancer" dave

sudo chfn -o

Și putem verifica datele pentru contul de utilizator dave folosind comanda less:

less /etc/passwd

[asswdîntr-ofereastrădeterminal”width=”646″height=”382″/>[asswdinaterminalwindow”width=”646″height=”382″/>

Asta ridică o întrebare evidentă. Dacă versiunea dvs. de chfn nu acceptă câmpul „Alt”, cum îl schimbați? Putem face asta cu comanda usermod.

Comanda usermod

Comanda usermod vă permite modifica aspecte ale unui cont de utilizator prin acțiuni precum adăugarea sau eliminarea contului de utilizator din grupuri și schimbarea shell-ului implicit al acestora. Poate fi folosit și pentru a manipula direct câmpul GECOS.

  Un ghid pentru steganografie pe Linux

Să aruncăm o privire mai atentă la linia din fișierul /etc/passwd pentru contul de utilizator Mary. Vom folosi grep să izoleze acea linie pentru noi. Acest lucru va funcționa deoarece numele de utilizator trebuie să fie unice. Nu poate exista decât un singur cont de utilizator numit Mary.

grep mary /etc/passwd

Sunt afișate câmpurile din fișierul etc/passwd. Se utilizează două puncte „:” ca separator de câmp. de la stânga la dreapta, câmpurile sunt:

Numele de utilizator al contului.
Un „x” care indică parola pentru acest cont de utilizator este păstrat criptat în fișierul /etc/shadow.
ID-ul de utilizator pentru contul de utilizator Mary.
ID-ul grupului pentru contul de utilizator Mary.
Câmpul GECOS.
Calea către directorul principal pentru contul de utilizator Mary.
Shell-ul care este pornit atunci când proprietarul contului mary se conectează.

O virgulă „,” este folosită ca separator pentru valorile datelor din câmpul GECOS. Valorile din câmpul GECOS sunt, de la stânga la dreapta:

Numele complet.
Numărul camerei (sau biroului).
Numar de telefon de la serviciu.
Număr de telefon de acasă.
Alte informații.

Rețineți că comanda usermod setează întregul câmp GECOS la noua valoare pe care o furnizați. Dacă tot ce furnizați este numele complet al persoanei, atunci singurul lucru din câmpul GECOS va fi numele complet. Aceasta înseamnă că trebuie să furnizați toate valorile de date existente pe care doriți să le păstrați.

Iată un exemplu. Utilizatorul Mary a fost promovat și se va muta la etajul al patrulea. Ea primește un nou număr de birou, un nou număr de telefon de la serviciu și o să-i adăugăm al doilea nume. Valoarea câmpului ei „Alt” se va schimba, de asemenea. Deși numărul ei de telefon de acasă nu se va schimba, trebuie să-l furnizăm în șir către usermod.

Trebuie să folosim opțiunea -c (comentare) și trebuie să rulăm comanda cu sudo.

sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary

sudo usermod -c

Folosind grep pentru a raporta conținutul fișierului /etc/passwd pentru Mary, ne arată că noile valori au fost adăugate.

grep mary /etc/passwd

Totul este Flux, Nimic Nu rămâne

Datele inexacte nu au valoare. Când informațiile despre oameni se modifică – mutari de birou, schimbări de nume, titluri de rol – le puteți actualiza cu ușurință metadatele pentru a reflecta poziția curentă.