Cum să enumerați utilizatorii în Linux

Publicat: 2022-06-25
Laptop Linux afișează un prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Linux este un sistem de operare multiutilizator, astfel încât crearea a numeroase conturi de utilizator este ușoară. De-a lungul timpului, este ușor să pierdeți evidența contului necesar. Listarea conturilor de utilizator vă ajută să le gestionați.

Conturi de utilizator

Progresele tehnologice aduc adesea propriile probleme noi. De îndată ce computerele au fost capabile să accepte mai mulți utilizatori, a devenit evidentă nevoia de a îngrădi și de a îngloba munca fiecărei persoane față de toți ceilalți. Acest lucru a condus la conceptul de conturi de utilizator. Fiecare utilizator are un ID numit și o parolă. Acestea sunt acreditările care le permit să se conecteze la contul lor. Fișierele lor sunt păstrate într-o zonă care este privată pentru fiecare utilizator.

Pe un sistem ocupat, este ușor să pierdeți din vedere ce conturi ați creat și care nu mai sunt necesare. Din punct de vedere al securității, este o practică proastă să păstrați conturile de utilizator pe care nu mai trebuie să le configurați și să fie accesibile pe computer. Ar trebui să eliminați acești utilizatori.

Chiar dacă nu aveți alte persoane care să vă folosească computerul, este posibil să fi creat unele conturi doar pentru a învăța cum să o faceți sau pentru a învăța și a exersa procesele de administrare.

Cum să ștergeți un utilizator pe Linux (și să eliminați fiecare urmă)
LEGATE Cum să ștergeți un utilizator pe Linux (și să eliminați fiecare urmă)

Primul pas este să enumerați conturile de utilizator care sunt configurate pe computerul dvs. Acest lucru vă permite să le revizuiți și să faceți un apel asupra căruia pot fi șterse. Există mai multe metode de a enumera utilizatorii. Indiferent de distribuția pe care o utilizați, aceste tehnici ar trebui să funcționeze pentru dvs. fără a fi nevoie să instalați aplicații sau utilitare.

Listează utilizatorii cu comanda cat

O listă a utilizatorilor configurați este menținută, împreună cu informații despre fiecare utilizator, în fișierul „/etc/passwd”. Acesta este un fișier text pe care utilizatorii obișnuiți îl pot lista în fereastra terminalului. Nu trebuie să utilizați sudo pentru a căuta fișierul „/etc/passwd”.

Cum se schimbă datele utilizatorului cu chfn și usermod pe Linux
LEGATE Cum să schimbați datele utilizatorului cu chfn și usermod pe Linux

Putem folosi comanda cat pentru a trimite conținutul fișierului „/etc/passwd” în fereastra terminalului. Aceasta va lista întregul conținut al fișierului. Aceasta înseamnă că veți vedea și intrările pentru conturile de utilizator care sunt deținute de procese și de sistem, nu de oameni.

 cat /etc/passwd 

Trimiterea conținutului fișierului /etc/passwd în fereastra terminalului cu cat

Există o linie de informații dense raportate pentru fiecare cont de utilizator.

Conținutul fișierului /etc/passwd

Informațiile pentru contul de utilizator numit „dave” conțin aceste informații, cu două puncte „ : ” între ele.

  • dave : numele contului de utilizator. De obicei, numele persoanei care deține contul.
  • x : La un moment dat, aceasta deținea parola pentru cont. În zilele noastre, parolele sunt stocate în fișierul „/etc/shadow”. „x” înseamnă că parola se află în acel fișier.
  • 1000 : ID-ul utilizatorului pentru acest cont. Toate conturile de utilizator au un ID numeric unic. Conturile de utilizator obișnuite încep de obicei la 1000, fiecare cont nou luând următorul ID gratuit, cum ar fi 1001, 1002 și așa mai departe.
  • 1000 : ID-ul grupului din grupul implicit din care face parte utilizatorul. În circumstanțe normale, grupul implicit are aceeași valoare ca și ID-ul utilizatorului.
  • dave,,, : O colecție de informații suplimentare opționale despre utilizator. Acest câmp conține date cu virgulă „ , ” între ele. Ele pot deține lucruri precum numele complet al utilizatorului, numărul de birou și numărul de telefon. Intrarea pentru contul de utilizator „mary” arată că numele ei complet este Mary Quinn.
  • /home/dave : Calea către folderul de acasă al utilizatorului.
  • /bin/bash : shell-ul implicit pentru acest utilizator.

Dacă transmitem rezultatul acestei comenzi prin utilitarul wc și folosim opțiunea -l (linii), putem număra liniile din fișier. Aceasta ne va oferi numărul de conturi configurate pe acest computer.

 cat /etc/passwd | wc -l 

Numărarea numărului de conturi din fișierul /etc/passwd

Această cifră include conturile de sistem și utilizatorii creați de aplicații. Există aproximativ 400 de utilizatori obișnuiți configurați pe acest computer. Este posibil ca rezultatul dvs. să fie mult mai mic.

Cu atâtea conturi, este mai convenabil să folosiți less pentru a vizualiza fișierul „/etc/passwd”.

 mai puțin /etc/passwd 

Deschiderea fișierului /etc/passwd în mai puțin

Utilizarea less vă permite, de asemenea, să căutați în ieșire, dacă doriți să căutați un anumit cont de utilizator.

Căutând contul mary în fișierul /etc/passwd, în mai puțin

Comanda awk

Folosind comanda awk putem afișa doar numele de utilizator. Acest lucru poate fi util atunci când scrieți un script care trebuie să facă ceva pentru o mulțime de conturi de utilizator. Listarea numelor conturilor de utilizator și redirecționarea acestora într-un fișier text poate economisi mult timp. Tot ce trebuie să faceți atunci este să copiați și să lipiți restul comenzii pe fiecare linie.

Cum să utilizați comanda awk pe Linux
LEGATE Cum să utilizați comanda awk pe Linux

Îi vom spune lui awk să folosească două puncte „:” ca separator de câmp și să imprime primul câmp. Vom folosi opțiunea -F (separator de câmp).

 awk -F: '{print $1}' /etc/passwd 

O comandă awk pentru a selecta numai numele de utilizator din /etc/passwd

Numele contului de utilizator sunt scrise în fereastra terminalului fără alte informații despre cont.

Numele contului de utilizator sunt afișate în fereastra terminalului

Comanda de tăiere

Putem realiza același fel de lucru folosind comanda cut . Trebuie să folosim opțiunea -d (delimitator) și să îi cerem să selecteze doar primul câmp, folosind opțiunea -f (câmpuri).

 cutr -d: -f1 

Folosind comanda cut pentru a afișa numai numele de utilizator din fișierul /etc/passwd

Aceasta listează toate conturile de utilizator, inclusiv sistemul și alte conturi non-umane.

Comanda compgen

Comanda compgen poate fi folosită cu opțiunea -u (utilizator) pentru a lista conturile de utilizator. Vom transmite rezultatul prin comanda column pentru a lista conturile de utilizator în coloane, în loc de o listă lungă cu un singur nume de utilizator pe linie.

 compgen -u | coloană 

Utilizarea comenzilor compgen și coloană pentru a lista numele conturilor de utilizator din fișierul /etc/passwd în coloane

Din nou, primele conturi de utilizator enumerate aparțin proceselor, nu oamenilor.

UID MIN și UID MAX

Conturilor de utilizator li se atribuie un ID numeric, pe care l-am văzut mai devreme. De obicei, conturile obișnuite de utilizator uman încep de la 1000, iar conturile de utilizator de sistem, non-umane, încep de la 0. ID-ul contului root este 0.

Dacă putem verifica cele mai mici și mai mari ID-uri de utilizator posibile, putem folosi acele informații pentru a selecta conturile de utilizator care se află între aceste două valori. Acest lucru ne va permite să selectăm doar conturile de utilizator care aparțin unor persoane reale.

Linux ține evidența acestor două valori folosind parametrii de configurare numiți UID_MIN și UID_MAX . Acestea sunt păstrate în fișierul „/etc/login.defs”. Putem vedea cu ușurință aceste valori folosind grep .

Vom folosi opțiunea -E (extended regex). Șirul nostru de căutare caută linii care încep cu „UID_MIN” sau „UID_MAX” în fișierul „/etc/login.defs”. Semnul „ ^ ” reprezintă începutul unei linii.

 grep -E '^UID_MIN|^UID_MAX' /etc/login.defs 

Intervalul pentru ID-urile de utilizator de pe acest computer este de la 1000 la 60.000.

LEGATE: Cum să utilizați expresiile regulate (regexes) pe Linux

Comandamentul getent

Comanda getent citește informații din bazele de date de sistem. Îi putem spune să listeze intrările din fișierul „/etc/passwd” folosind „passwd” ca parametru.

 getent passwd 

Folosind getent pentru a descărca fișierul /etc/passwd în fereastra terminalului

Acest lucru ne oferă aceeași citire pe care o putem obține folosind cat . Dar unde getent strălucește este prin acceptarea valorilor cunoscute sub numele de „chei”. O cheie dictează despre ce informații raportează getent . Dacă vrem să vedem intrarea pentru un singur utilizator, putem trece numele contului său de utilizator pe linia de comandă.

 getent passwd Sarah

Rețineți că numele contului de utilizator face distincție între majuscule și minuscule.

 getent passwd sarah 

Caut un singur cont de utilizator cu getent

De asemenea, putem trece în limitele superioare și inferioare ale ID-urilor contului de utilizator pe care dorim să le vedem. Pentru a vedea absolut toate conturile de utilizator obișnuite, putem folosi valorile de la UID_MIN și UID_MAX .

 getent passwd {1000..60000} 

Utilizarea ID-urilor de cont superioare și inferioare cu getent

Aceasta durează ceva timp. În cele din urmă, veți reveni la promptul de comandă.

Conținutul fișierului /etc/passwd trimis către fereastra terminalului de către getent

Motivul pentru timpul lung de execuție este că getent încearcă să găsească potriviri pentru toate valorile contului de utilizator până la 60000.

Să vedem care este cel mai mare ID de cont de utilizator. Vom folosi comanda cut , dar de data aceasta vom cere câmpul trei, câmpul ID utilizator. Vom canaliza ieșirea prin sort și vom folosi opțiunea -g (sortare numerică generală).

 cut -d: -f3 /etc/passwd | sortare -g 

Comanda pentru a canaliza ieșirea de la cut în comanda sortare

Cea mai mare valoare ID a unui cont de utilizator deținut de oameni este 1401.

O listă sortată de ID-uri de cont de utilizator

ID-ul utilizatorului 65534 este atribuit conceptului de sistem „nimeni”.

 getent passwd {65534..65534} 

Utilizatorul sistemului nimeni, cu ID 65534

Deci știm că, în loc să folosim valoarea UID_MAX de 60000, pe acest computer putem folosi o valoare mai realistă, cum ar fi 1500. Asta va accelera lucrurile frumos. De asemenea, vom canaliza ieșirea prin cut pentru a extrage doar numele conturilor de utilizator.

getent passwd {1000..1500} | taie -d: -f1

Ieșirea getent a fost transmisă prin tăiere pentru a lista numele conturilor de utilizator

Utilizatorii sunt listați și ne întoarcem imediat la promptul de comandă.

În loc să conductăm ieșirea prin cut , să conductăm ieșirea prin wc și să numărăm din nou liniile. Asta ne va oferi numărul de conturi de utilizator „reale”.

 getent passwd {1000..1500} | wc -l 

Numărarea conturilor de utilizator obișnuite cu getent și wc

Acum putem vedea că pe acest computer, definitiv, există 400 de conturi de utilizator configurate, deținute de oameni.

Putere și Simplitate

Una dintre aceste tehnici se potrivește cu siguranță nevoilor dvs. atunci când trebuie să examinați conturile de utilizator pe un computer Linux. Aceste comenzi ar trebui să fie prezente pe toate distribuțiile și niciuna dintre ele nu necesită acces sudo , astfel încât toate sunt disponibile pentru fiecare utilizator.

LEGATE: Cum să controlezi accesul sudo pe Linux