Ultima actualizare pe
Este important să știți cine are acces la computerul dvs. Linux (și control asupra fișierelor), dar puteți enumera cu ușurință utilizatorii din Linux pentru a afla. Iată cum.
The sistem de operare Linux oferă comenzi pentru a crea și șterge utilizatori și pentru a verifica care sunt autentificați. Cu toate acestea, nu există nicio comandă pentru a enumera utilizatorii, conectați sau nu, pe sistem.
Totuși, există câteva moduri de a reuși acest lucru. Dacă doriți să aflați cum să enumerați utilizatorii în Linux, urmați pașii noștri de mai jos.
De ce ar trebui să vă verificați lista de utilizatori Linux
Există o serie de motive pentru care ați putea dori să enumerați utilizatorii în Linux. Este o practică bună în ceea ce privește găsirea și ștergerea conturilor neutilizate, de exemplu. Din punct de vedere al securității, este, de asemenea, o modalitate bună de a vă asigura că nu aveți intruși care creează conturi de utilizator.
Aceasta este o sarcină administrativă pe care probabil ar trebui să o faceți cel puțin o dată pe lună. Dacă rulați un server Linux corporativ, poate doriți să o faceți mai des.
Utilizatori listați în /etc/passwd
Toate conturile de utilizator ale serverului dvs. Linux au intrări în fișier /etc/passwd. Fiecare linie reprezintă un utilizator și are șapte câmpuri separate prin două puncte. Câmpurile oferă informații despre utilizator.
- Nume de utilizator.
- Parolă criptată (X indică parola este de fapt în /etc/shadow)
- Număr ID utilizator (UID).
- Numărul ID grup al utilizatorului (GID).
- Numele complet al utilizatorului, dacă este listat.
- Directorul principal al utilizatorului.
- Shell de autentificare
Deci, asta ne aduce la o modalitate de a enumera toți utilizatorii de pe Linux. Puteți folosi Mai puțin comandă pentru a vedea întregul fișier, câte un ecran.
mai puțin /etc/passwd.
Dacă doriți să verificați dacă un anumit utilizator există în sistemul Linux, aceasta este o bună utilizare pentru comandă grep:
mai puțin passwd | grep jeff.
Dacă nu obțineți niciun rezultat, acel utilizator nu există pe serverul Linux.
Totuși, acestea sunt multe informații. Puteți să-l reduceți doar la numele de utilizator, de exemplu, folosind fie awk sau a tăia comenzi:
awk -F: '{print $1}' /etc/passwd. tăiați -d: -f1 /etc/passwd.
Acest lucru tinde să fie mult mai ușor de înțeles, dar tot vă lasă să vizualizați toate conturile de utilizator bazate pe sistem amestecate cu utilizatorii umani.
Cum să utilizați getent pentru a lista utilizatorii
O altă comandă, getent, este mult mai util. Afișează intrările de la orice bază de date configurată în serverul tău /etc/nsswitch.conf fişier. Una dintre acestea este passwd Bază de date. A folosi getent pentru a afișa o listă cu toți utilizatorii Linux, funcționează astfel:
getent passwd
Ieșirea arată exact la fel ca în cazul utilizării Mai puțin comandă, dar listează orice utilizator LDAP de pe sistemul Linux. Încă o dată, al nostru awk și a tăia comenzile pot ajuta să vedeți doar primul câmp, numele de utilizator.
Dacă doriți să verificați dacă un anumit utilizator există în sistemul Linux, getent ușurează:
getent passwd jeff.
Din nou, nicio ieșire din această comandă nu vă spune că utilizatorul nu există.
O altă utilizare grozavă pentru getent este să afle câte conturi de utilizator există pe server. Acest lucru se face prin conducte getentieșirea lui prin intermediul WC comanda, cam asa:
getent passwd | wc -l.
După cum puteți vedea, sistemul meu Linux are un total de 48 de conturi. Destul de interesant, deoarece sunt singurul care îl folosește, dar asta arată doar câte conturi de sistem sunt create în Linux.
Eliminarea utilizatorilor de sistem de utilizatorii normali
În ochii Linux, nu există nicio diferență între un utilizator de sistem și unul uman. De fiecare dată când instalați sistemul de operare, acesta creează un număr de utilizatori de sistem. Alți utilizatori de sistem sunt creați pentru diverse pachete, cum ar fi software-ul de servicii web sau de e-mail.
Deci, cum puteți enumera doar utilizatorii umani obișnuiți de pe sistemul Linux? Cheia aici este înțelegerea faptului că atunci când creați un utilizator obișnuit, UID-ul acestuia este atribuit într-un anumit interval de numere. Prin verificarea /etc/login.defs fișier, putem determina intervalul de valori UID disponibile pentru conturile de utilizator obișnuite.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.
Pe baza rezultatelor, știu că utilizatorii normali ar trebui să aibă un UID între 1000 și 60000. Din aceasta, pot construi un getent interogare care va afișa doar utilizatorii normali.
getent passwd {1000..60000}
Ține minte, getent va părea să se blocheze chiar și după ce își afișează rezultatul. Puteți apăsa Ctrl-C pentru a încheia procesul sau așteptați până se termină. De obicei, durează mai puțin de 15 secunde pentru a finaliza căutarea passwd Bază de date.
O versiune mai generică a acestei comenzi ia în considerare diferite UID_MIN și UID_MAX valorile pe care diverse servere le-ar putea folosi.
eval getent passwd {$(awk '/^UID_MIN/ {printează $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {printează $2}' /etc/login.defs)}
În această comandă, profităm de capacitatea Linux de a face mai multe lucruri simultan. The awk comenzile primesc UID_MIN și UID_MAX valori, apoi folosiți-le în cadrul getent comanda.
Acum, să spunem că tot ce ne dorim sunt numele de utilizator. Încă o dată, ne canalizăm ieșirea prin a tăia comanda, asa:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | taie -d: -f1.
Această comandă poate dura între 10 și 15 secunde, așa că aveți răbdare.
Gestionarea eficientă a utilizatorilor dvs. Linux
Este important să urmăriți ce conturi de utilizator există pe sistemul dumneavoastră Linux. Când știți că un angajat a plecat, fiți prompt să ștergeți contul de utilizator. Listarea periodică a utilizatorilor dvs. Linux vă va ajuta să vă asigurați că prindeți orice conturi care s-ar fi blocat.
În același timp, asigurați-vă că țineți cont de politicile de securitate a parolelor și încurajează-ți utilizatorii să o facă schimba parolele lor in mod regulat.