i det här inlägget kommer du att lära dig om att lista användare i Linux. Förutom detta kommer du att veta andra knep om Linux-användarnas egenskaper.
det finns två typer av användare i Linux, systemanvändare som skapas som standard med systemet. Å andra sidan finns det vanliga användare som skapas av systemadministratörer och kan logga in på systemet och använda det.
Innehållsförteckning
vilken fil innehåller listan över användare på Linux?,
innan vi börjar lista användare måste vi veta var dessa användare sparade på Linux?
användarna lagras i en textfil i systemet som heter passwd-filen. Den här filen finns i katalogen / etc.
filen finns på följande sökväg:
$ /etc/passwd
i den här filen kan du hitta all information om användarna i systemet.
lista alla användare
lista användare är det första steget för att hantera dem. På så sätt kommer vi att veta hur många de är och vilka de är. I Linux kan nästan allt göras på olika sätt, och det här är inget undantag.,
för att lista alla användare kan du använda kommandot cat:
$ cat /etc/passwd
som du kan se i bilden finns all information om användarna.
1 – i det första fältet ser du användarnamnet.
2 – det andra fältet (X-tecknet) är en representation av det krypterade lösenordet. Det krypterade lösenordet lagras i/etc / shadow-filen.
3 – UID eller användar-ID.
4 – nästa fält refererar till användarens primära grupp.
5 – Sedan, det visar användar-ID info som adress, e-post, etc.,
6 – Efter detta kommer du att se användarens hemkatalog.
7 – det sista fältet är det skal som användaren använder.
även om informationen är ganska användbar, om du bara vill lista användarnas namn på ett grundläggande sätt, kan du använda det här kommandot:
$ cut -d: -f1 /etc/passwd
nu har vi bara namnen genom att skriva ut det första fältet i filen.
lista& Sortera användare efter namn
ovanstående kommando tjänar till att lista användare på Linux. Men vad sägs om att lista användarna i alfabetisk ordning?,
för att göra detta använder vi föregående kommando, men vi lägger till sorteringskommandot.
så kommer kommandot att vara så här:
$ cut -d: -f1 /etc/passwd | sort
som du kan se i bilden visas användarna sorterade.
Linux list-användare utan lösenord
det är viktigt att känna till användare som inte har något lösenord och att vidta lämpliga åtgärder. För att lista användare som inte har ett lösenord, använd bara följande kommando:
$ sudo getent shadow | grep -Po '^*(?=:.?:)'
den använda regex listar alla användare utan lösenord.,
Listanvändare efter diskanvändning
om du har en stor katalog och du vill veta vilken användare som översvämmar den kan du använda du-kommandot för att få diskanvändningen.
med detta kan du upptäcka vilka av dessa användare som missbrukar diskutrymme.
För det är det tillräckligt att använda följande kommando:
$ sudo du -smc /home/* | sort -n
På så sätt får du användarna beställda av diskanvändningen för katalogen /home.
vi använde-n för sorteringskommandot för att sortera utdata efter siffror.,
lista de för närvarande loggade användarna
för att lista de inloggade användarna har vi flera sätt att göra det på. Den första metoden vi kan använda kommandot användare:
$ users
det kommer att lista användarna med öppna sessioner i systemet.
men den här informationen är lite grundläggande; vi har dock ett annat kommando som ger mer information. Kommandot är helt enkelt w.,
$ w
med det här kommandot kan vi få mer information, till exempel den exakta tiden när sessionen startades och terminalsessionen han har tillgänglig.
slutligen finns det ett kommando som heter who. Den är tillgänglig för hela Unix-familjen. Så du kan använda den på andra system som FreeBSD.
$ who
med vem kommandot, vi har också lite information om för närvarande inloggade användare. Naturligtvis kan vi lägga till alternativet – A och visa alla detaljer.,
$ who -a
På så sätt vet du allt om de inloggade användarna.
Linux lista över användare som nyligen loggat in i systemet
vi såg hur man får de inloggade användarna, vad sägs om att lista användarnas inloggningshistorik?,
Du kan använda det sista kommandot för att få mer information om inloggningarna som ägde rum:
$ last
eller inloggningarna för en viss användare
$ last
till exempel:
$ last angelo
$ last angelo
det här är användarinloggningsaktiviteten och när den startades och hur lång tid det tog.
lista användarnas inloggningar på ett visst datum eller en viss tid
vad sägs om att lista användarnas inloggningar på ett visst datum eller en viss tid?, För att uppnå detta använder vi det sista kommandot men med parametern-t:
$ last -t YYMMDDHHMMSS
till exempel:
$ last -t 20190926110509
och nu är allt du behöver göra att välja ett exakt datum & tid för att lista vem som ska inloggad vid den tiden.
lista alla användare i en grupp
det finns två sätt att lista medlemmarna i en grupp i Linux, det enklaste och mest direkta sättet är att få användarna från/etc/gruppfilen så här:
$ cat /etc/group | grep likegeeks
det här kommandot listar användare i likegeeks-gruppen.,
det andra sättet är att använda kommandon som kommandot medlemmar i Debianbaserade distributioner. Det är dock inte installerat som standard i Linux-distributioner.,
för att installera den i Ubuntu / Linux Mint 19, använd bara APT:
$ sudo apt install members
eller i fallet med CentOS:
$ sudo dnf install members
När det är installerat kan du köra kommandot och sedan namnet på den grupp du vill lista användarna till:
$ members
till exempel:
$ members avahi
på så sätt kan du lista användare för en grupp i en Debianbaserad distro. Vad sägs om en RedHat – baserad distro som CentOS?,
Du kan använda följande kommando:
$ getent group likegeeks
Listanvändare med UID
i Unix-system har varje användare en användaridentifierare eller ett ID. Det tjänar till att hantera och administrera konton internt i operativsystemet.
i allmänhet är UIDs från 0 till 1000 för systemanvändare. Och därefter för vanliga användare. Alltid på Unix-system hör UID zero till rotanvändarna (du kan ha mer än en användare med uid på noll).
så nu kommer vi att lista användarna med sina respektive UID med Awk.,
kommandot som utför uppgiften är följande:
$ awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd
som du kan se, varje användare med sin UID.
lista root-användare
i ett Unix-liknande system som Linux finns det vanligtvis bara en root-användare. Om det finns många, hur man listar dem?
för att göra detta kan vi använda det här kommandot:
$ grep 'x:0:' /etc/passwd
här filtrerar vi filen för att få användare med uid of zero (root-användare).,
ett annat sätt genom att kontrollera/etc / gruppfilen:
$ grep root /etc/group
Här får vi användare i grupprotet från /etc/gruppfilen.
Du kan också kontrollera om någon användare kan köra kommandon som root genom att kontrollera /etc/sudoers-filen:
$ cat /etc/sudoers
få det totala antalet användare
för att få det totala antalet användare i Linux kan du räkna rader i /etc/passwd-filen med wc-kommandot så här:
$ cut -d: -f1 /etc/passwd | wc -l
$ cut -d: -f1 /etc/passwd | wc -l
bra! 43 användare., Men detta inkluderar system och vanliga användare. Vad sägs om att få antalet vanliga användare bara?
lätt! Eftersom vi vet från ovan att vanliga användare har uid 1000 eller mer, kan vi använda Awk för att få dem:
$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Cool!
lista sudo-användare
Linux-system har ett verktyg som heter sudo som låter dig utföra kommandon som om du var en annan användare som vanligtvis är rotanvändaren.
detta bör hanteras med försiktighet i en professionell miljö.,
det är också mycket viktigt att veta vilka användare som kan köra sudo-kommandot. För detta är det tillräckligt att lista de användare som tillhör sudo-gruppen.
$ members sudo
användare i den här gruppen kan utföra kommandon som superanvändare.
lista användare som har SSH-åtkomst
SSH tillåter användare att komma åt fjärrdatorer via ett nätverk. Det är ganska säkert och föddes som ersättning för Telnet.
som standard kan alla vanliga användare logga in och använda SSH., Om du vill begränsa detta kan du använda SSH-konfigurationsfilen (/etc/ssh/ssh_config) och lägga till följande direktiv:
AllowUsers user1 user2 user3
Du kan också tillåta grupper istället för att tillåta användare endast med hjälp av direktivet AllowGroups:
AllowGroups group1 group2 group3
i dessa direktiv definieras vem som kan komma åt tjänsten. Glöm inte att starta om SSH-tjänsten.
lista användare som har behörighet till en fil eller katalog
Vi kan ge mer än en användare behörighet att komma åt eller ändra filer& kataloger på två sätt.,
den första metoden är att lägga till användare i gruppen av filen eller katalogen.
På så sätt kan vi lista gruppmedlemmarna med hjälp av medlemmarnas verktyg som visas ovan.
okej, men vad händer om vi bara vill att den här användaren ska ha tillgång till den här specifika filen endast (inte alla gruppbehörigheter)?
Här kan vi ställa in ACL för den här filen med setfacl-kommandot så här:
$ setfacl -m u:newuser:rwx myfile
här ger vi användaren som heter newser behörigheten för filen som heter myfile behörigheterna för read & skriv & kör.,
Nu kan filen nås eller ändras av ägaren och användaren heter newuser. Så hur man listar dem?
Vi kan lista dem med kommandot getfacl så här:
$ getfacl myfile
det här kommandot listar alla användare som har behörighet för filen med sina motsvarande behörigheter.
list locked (disabled) users
i Linux, som säkerhetsåtgärd, kan vi låsa användare. Detta som en försiktighetsåtgärd om det misstänks att användaren gör saker fel, och du vill inte helt ta bort användaren och bara låsa honom för utredning.,
för att låsa en användare kan du använda följande kommando:
$ usermod -L myuser
Nu kan användaren som heter myuser inte längre logga in eller använda systemet.
för att lista alla låsta användare av systemet, använd bara följande kommando:
$ cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked
detta kommer att skriva ut alla låsta användare, inklusive systemanvändare. Vad om notering regelbundna användare?
som vi såg ovan, med hjälp av Awk, kan vi få låsta vanliga användare så här:
$ awk -F: '$3 >= 1000 {print $1}' /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }' | grep locked
mycket enkelt!,
lista fjärranvändare (LDAP)
Okej, nu kan lista alla systemanvändare (lokala användare), men hur fjärranvändare eller LDAP-användare? Tja, vi kan använda ett verktyg som ldapsearch, men finns det något annat sätt?
lyckligtvis ja! Du kan lista lokala& fjärranvändare med ett kommando som heter getent
$ getent passwd
det här kommandot listar både lokala systemanvändare och LDAP-eller NIS-användare eller andra nätverksanvändare.
Du kan leda resultaten av detta kommando till någon av de ovan nämnda kommandona på samma sätt.,
kommandot getent kan också lista gruppkonton så här:
$ getent group
Du kan kontrollera mansidan för kommandot för att känna till de andra databaserna som kommandot kan söka i.
slutsats
notering användare i Linux-systemet var kul! Förutom detta har vi lärt oss några tips om användare och hur man hanterar dem på olika sätt.
slutligen kommer denna kunskap att möjliggöra en bättre administration av systemets användare.
Jag hoppas att du hittar handledningen användbar. Kom tillbaka.,
grundare av LikeGeeks. Jag arbetar som Linux systemadministratör sedan 2010. Jag är ansvarig för att upprätthålla, säkra och felsöka Linux-servrar för flera kunder runt om i världen. Jag älskar att skriva shell och Python skript för att automatisera mitt arbete.