15 + exemple pentru listarea utilizatorilor în Linux

În această postare, veți afla despre listarea utilizatorilor în Linux. În afară de aceasta, veți cunoaște și alte trucuri despre caracteristicile utilizatorilor Linux.există două tipuri de utilizatori în Linux, utilizatori de sistem care sunt creați implicit cu sistemul. Pe de altă parte, există utilizatori obișnuiți care sunt creați de administratorii de sistem și se pot conecta la sistem și îl pot folosi.

cuprins

ce fișier conține lista utilizatorilor pe Linux?,

înainte de a începe listarea utilizatorilor, trebuie să știm unde au salvat acești utilizatori pe Linux?utilizatorii sunt stocate într-un fișier text pe sistemul numit fișierul passwd. Acest fișier este localizat în directorul / etc.

fișierul este situat pe următoarea cale:

$ /etc/passwd

în acest fișier, puteți găsi toate informațiile despre utilizatorii din sistem.

listarea tuturor utilizatorilor

listarea utilizatorilor este primul pas pentru a le gestiona. În acest fel, vom ști câți sunt și cine sunt. În Linux, aproape totul se poate face în diverse moduri, iar aceasta nu face excepție.,

Pentru a lista tuturor utilizatorilor, puteți folosi comanda cat:

$ cat /etc/passwd

după Cum puteți vedea în imagine, există toate informațiile despre utilizatori.

1-în primul câmp, veți vedea numele de utilizator.

2-al doilea câmp (caracterul x) este o reprezentare a parolei criptate. Parola criptată este stocată în fișierul/etc / shadow.

3-ID-ul UID sau ID-ul de utilizator.

4-câmpul următor se referă la grupul principal al utilizatorului.

5-apoi, afișează informații despre ID-ul utilizatorului, cum ar fi adresa, e-mailul etc.,

6-după aceasta, veți vedea directorul de pornire al utilizatorului.

7-ultimul câmp este shell-ul utilizat de acel utilizator.

cu toate Acestea, deși informația este destul de util, dacă doriți doar pentru a lista numele de utilizatori într-un mod de bază, puteți utiliza această comandă:

$ cut -d: -f1 /etc/passwd

Acum avem doar nume de imprimare primul câmp din fișierul numai.

listă & sortează utilizatorii după nume

comanda de mai sus servește scopului listării utilizatorilor pe Linux. Dar cum rămâne cu listarea utilizatorilor în ordine alfabetică?,pentru a face acest lucru, vom folosi comanda anterioară, dar vom adăuga comanda de sortare.

Deci, comanda va fi ca aceasta:

$ cut -d: -f1 /etc/passwd | sort

după Cum puteți vedea în imagine, utilizatorii sunt afișate sortate.

Linux listează utilizatorii fără parolă

este important să cunoaștem utilizatorii care nu au parolă și să luăm măsurile corespunzătoare. La lista de utilizatori care nu au o parolă, trebuie doar să utilizați următoarea comandă:

$ sudo getent shadow | grep -Po '^*(?=:.?:)'

folosit regex va lista toți utilizatorii cu nici o parolă.,

listați utilizatorii după utilizarea discului

Dacă aveți un director mare și doriți să știți ce utilizator îl inundă, puteți utiliza comanda du pentru a obține utilizarea discului.cu aceasta, puteți detecta care dintre acești utilizatori utilizează greșit spațiul pe disc.

Pentru asta, este suficient să utilizați următoarea comandă:

$ sudo du -smc /home/* | sort -n

În acest fel, veți avea utilizatorii comandate de utilizare disc pentru directorul /home.

am folosit-n pentru comanda de sortare pentru a sorta ieșirea după numere.,

listați utilizatorii înregistrați în prezent

pentru a lista utilizatorii înregistrați în prezent, avem mai multe modalități de a face acest lucru. Prima metoda putem folosi comanda users:

$ users

acesta va lista utilizatorii cu sesiuni deschise în sistem.

dar această informație este puțin de bază; cu toate acestea, avem o altă comandă care oferă mai multe detalii. Comanda este pur și simplu w.,

$ w

Cu aceasta comanda, putem avea mai multe informații, cum ar fi ora exactă atunci când sesiunea a fost început și sesiune de terminal are disponibile.în cele din urmă, există o comandă numită who. Este disponibil pentru întreaga familie Unix. Deci, îl puteți folosi pe alte sisteme precum FreeBSD.

$ who

cu comanda OMS, avem și câteva informații despre utilizatorii conectați în prezent. Desigur, putem adăuga opțiunea-a și arăta toate detaliile.,

$ who -a

în Acest fel, știi totul despre utilizatorii autentificați.

lista Linux a utilizatorilor care s-au conectat recent la sistem

am văzut cum să obținem utilizatorii conectați în prezent, ce zici de listarea istoricului de conectare al utilizatorilor?,

puteți folosi ultima comandă pentru a obține mai multe informații despre datele de conectare care au avut loc:

$ last

Sau datele de conectare de un anumit utilizator

$ last 

De exemplu:

$ last angelo

Acestea sunt autentificare utilizator de activitate și de când a fost început și cât de mult a durat.

listați autentificările utilizatorilor la o anumită dată sau oră

ce se întâmplă cu listarea autentificărilor utilizatorilor la o anumită dată sau oră?, Pentru a realiza acest lucru, vom folosi ultima comanda, dar cu -t parametru:

$ last -t YYMMDDHHMMSS

De exemplu:

$ last -t 20190926110509

Și acum, tot ce trebuie sa faci este sa alegi o data exacta & timp pentru a lista cine s-a logat la acel moment.

Lista tuturor utilizatorilor într-un grup

Există două moduri de a lista membrilor unui grup în Linux, cel mai simplu și mai direct mod este de a obține utilizatorilor din /etc/group fișierul ca aceasta:

$ cat /etc/group | grep likegeeks

Această comandă va lista utilizatorilor în likegeeks grup.,

un alt mod este prin utilizarea de comenzi, cum ar fi comanda membrilor în distribuții bazate pe Debian. Cu toate acestea, nu este instalat implicit în distribuțiile Linux.,

Să-l instalați în Ubuntu / Linux Mint 19, trebuie doar să utilizați APT:

$ sudo apt install members

Sau, în cazul de CentOS:

$ sudo dnf install members

Odată ce este instalat, puteți rula comanda apoi numele de grupul pe care doriți să lista utilizatorilor să:

$ members 

De exemplu:

$ members avahi

în Acest fel, puteți lista de utilizatori pentru un grup într-o distribuție bazată pe Debian. Ce zici de o distribuție bazată pe RedHat ca CentOS?,

puteți utiliza următoarea comandă:

$ getent group likegeeks

listați utilizatorii cu UID

în sistemele Unix, fiecare utilizator are un identificator de utilizator sau un ID. Servește la gestionarea și administrarea conturilor intern în sistemul de operare.

În general, UID-urile de la 0 la 1000 sunt pentru utilizatorii de sistem. Și, ulterior, pentru utilizatorii obișnuiți. Întotdeauna pe sistemele Unix, UID zero aparține utilizatorilor root (puteți avea mai mult de un utilizator cu UID de zero).deci, acum, vom lista utilizatorii cu UID-ul lor folosind Awk.,

comanda care efectuează sarcina este următoarea:

$ awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd

după Cum puteți vedea, fiecare utilizator cu UID.

listați utilizatorii root

într-un sistem asemănător Unix-ului, cum ar fi Linux, există de obicei un singur utilizator root. Dacă există multe, cum să le enumerăm?

Pentru a face acest lucru, putem folosi această comandă:

$ grep 'x:0:' /etc/passwd

Aici suntem filtrarea fișier pentru a obține utilizatorilor cu UID de zero (utilizatorii de root).,

un Alt mod de verificare /etc/group fișier:

$ grep root /etc/group

Aici suntem obtinerea de utilizatori din grupul root din /etc/grup de fișiere.

de Asemenea, puteți verifica dacă orice utilizator poate executa comenzi ca root prin verificarea /etc/sudoers fișier:

$ cat /etc/sudoers

numărul total de utilizatori

Pentru a obține numărul total de utilizatori în Linux, puteți conta linii în /etc/passwd fișier folosind wc comanda astfel:

$ cut -d: -f1 /etc/passwd | wc -l

Mare! 43 utilizatori., Dar aceasta include sistemul și utilizatorii obișnuiți. Cum rămâne cu obținerea numărului de utilizatori obișnuiți?

ușor! Din moment ce știm de mai sus că utilizatorii obisnuiti au UID de 1000 sau mai mare, putem folosi Awk pentru a le obține:

$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd

Cool!sistemele Linux au un utilitar numit sudo care vă permite să executați comenzi ca și cum ați fi un alt utilizator care este de obicei utilizatorul rădăcină.acest lucru trebuie tratat cu grijă într-un mediu profesional.,de asemenea, este foarte important să știți care utilizatori pot rula comanda sudo. Pentru aceasta, este suficient să enumerați utilizatorii care aparțin grupului sudo.

$ members sudo

Utilizatorii din acest grup poate executa comenzi ca super-utilizatori.

lista utilizatorilor care au acces SSH

SSH permite utilizatorilor să acceseze computere la distanță printr-o rețea. Este destul de sigur și sa născut ca înlocuitor pentru Telnet.

în mod implicit, toți utilizatorii obișnuiți se pot conecta și utiliza SSH., Dacă doriți pentru a limita acest lucru, puteți utiliza SSH fișier de configurare (/etc/ssh/ssh_config) și se adaugă următoarele directive:

AllowUsers user1 user2 user3

de Asemenea, puteți permite grupuri în loc de a permite utilizatorilor folosind doar AllowGroups directivă:

AllowGroups group1 group2 group3

Aceste directive definesc cine poate accesa serviciul. Nu uitați să reporniți serviciul SSH.

lista utilizatorilor care au permisiuni pentru un fișier sau director

putem da mai mult de un utilizator permisiunea de a accesa sau modifica fișiere & directoare în două moduri.,

prima metodă este prin adăugarea de utilizatori la grupul fișierului sau directorului.

în acest fel, putem lista membrii grupului folosind utilitarul membri așa cum se arată mai sus.

bine, dar dacă vrem ca acest utilizator să aibă acces doar la acest fișier specific (nu toate permisiunile de grup)?

Aici putem seta ACL pentru acest fișier folosind setfacl comanda de genul asta:

$ setfacl -m u:newuser:rwx myfile

Aici vom da utilizatorul numit newser permisiunea pentru numește fișierul myfile permisiunile de citire & scrie & executa.,acum, fișierul poate fi accesat sau modificat de către proprietar, iar utilizatorul numit newuser. Deci, cum să le enumerăm?

le putem lista folosind comanda getfacl astfel:

$ getfacl myfile

această comandă va lista Toți utilizatorii care au permisiuni pentru fișier cu permisiunile corespunzătoare.în Linux, ca măsură de securitate, putem bloca utilizatorii. Aceasta ca măsură de precauție dacă se suspectează că utilizatorul face lucruri greșite și nu doriți să îl eliminați complet și să îl blocați doar pentru investigații.,pentru a bloca un utilizator, puteți utiliza următoarea comandă:

$ usermod -L myuser

Acum, utilizatorul numit myuser nu va mai putea să se conecteze sau să utilizeze sistemul.pentru a lista Toți utilizatorii blocați ai sistemului, trebuie doar să folosiți următoarea comandă:

$ cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked

aceasta va imprima toți utilizatorii blocați, inclusiv utilizatorii sistemului. Ce zici de listarea numai a utilizatorilor obișnuiți?așa cum am văzut mai sus, folosind Awk, putem bloca utilizatorii obișnuiți astfel:

$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked

foarte ușor!,

listarea utilizatorilor la distanță (LDAP)

bine, acum pot lista Toți utilizatorii de sistem (utilizatori locali), dar ce se întâmplă cu utilizatorii la distanță sau utilizatorii LDAP? Ei bine, putem folosi un instrument ca ldapsearch, dar există vreo altă cale?

Din fericire da! Puteți lista locală & utilizatorii de la distanță cu o singură comandă numit getent

$ getent passwd

Aceasta comanda listele locale de sistem și utilizatori LDAP sau NIS utilizatori sau orice alți utilizatori de rețea.

puteți trimite rezultatele acestei comenzi la oricare dintre comenzile menționate mai sus în același mod.,

de Asemenea, getent comandă poate listă conturile de grup astfel:

$ getent group

puteți verifica pagina de comanda a cunoaște alte baze de date comanda poate de căutare în.

concluzie

listarea utilizatorilor în sistemul Linux a fost distractiv! Pe lângă aceasta, am învățat câteva sfaturi despre utilizatori și cum să le gestionăm în moduri diferite.în cele din urmă, aceste cunoștințe vor permite o mai bună administrare a utilizatorilor sistemului.sper că veți găsi tutorialul util. Continuă să te întorci.,

Fondator al LikeGeeks. Lucrez ca administrator de sistem Linux din 2010. Sunt responsabil pentru întreținerea, securizarea și depanarea serverelor Linux pentru mai mulți clienți din întreaga lume. Îmi place să scriu scripturi shell și Python pentru a-mi automatiza munca.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *