Cum să enumerați utilizatorii în Linux
Publicat: 2022-06-25Linux 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.
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”.
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
Există o linie de informații dense raportate pentru fiecare cont de utilizator.
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
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
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.
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.
Î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
Numele contului de utilizator sunt scrise în fereastra terminalului fără alte informații despre cont.
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
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ă
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
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
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}
Aceasta durează ceva timp. În cele din urmă, veți reveni la promptul de comandă.
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
Cea mai mare valoare ID a unui cont de utilizator deținut de oameni este 1401.
ID-ul utilizatorului 65534 este atribuit conceptului de sistem „nimeni”.
getent passwd {65534..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
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
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