Sidst opdateret den
Det er vigtigt at vide, hvem der har adgang til din Linux-pc (og kontrol over dine filer), men du kan nemt liste brugere i Linux for at finde ud af det. Sådan gør du.
Det Linux styresystem tilbyder kommandoer til at oprette og slette brugere og kontrollere, hvilke der er logget ind. Der er dog ingen kommando til at vise brugere, logget ind eller ej, på systemet.
Alligevel er der et par måder at løse dette på. Hvis du ønsker at lære, hvordan du angiver brugere i Linux, skal du følge vores trin nedenfor.
Hvorfor du bør tjekke din Linux-brugerliste
Der er en række grunde til, at du måske ønsker at angive brugere i Linux. Det er en god praksis med hensyn til at finde og slette ubrugte konti. Fra et sikkerhedssynspunkt er det også en god måde at sikre, at du ikke har ubudne gæster, der opretter brugerkonti.
Dette er en administrativ opgave, som du nok bør udføre mindst en gang om måneden. Hvis du kører en virksomheds Linux-server, vil du måske gøre det oftere.
Brugere opført i /etc/passwd
Alle din Linux-servers brugerkonti har poster i filen /etc/passwd. Hver linje repræsenterer en bruger og har syv felter adskilt af koloner. Felterne giver information om brugeren.
- Brugernavn.
- Krypteret adgangskode (x angiver, at adgangskoden faktisk er i /etc/shadow)
- Bruger-id-nummer (UID).
- Brugerens gruppe-id-nummer (GID).
- Brugerens fulde navn, hvis angivet.
- Bruger hjemmemappe.
- Login shell
Så det bringer os til én måde at liste alle brugere på Linux. Du kan bruge mindre kommando for at se hele filen, én skærm ad gangen.
mindre /etc/passwd.
Hvis du vil kontrollere, om en bestemt bruger findes i Linux-systemet, er det en god brug for kommandoen grep:
mindre passwd | grep jeff.
Hvis du ikke får noget output, eksisterer denne bruger ikke på Linux-serveren.
Alligevel er det meget information. Du kan trimme det ned til kun brugernavnet, for eksempel ved at bruge enten awk eller skære kommandoer:
awk -F: '{print $1}' /etc/passwd. cut -d: -f1 /etc/passwd.
Det plejer at være meget nemmere at forstå, men det lader dig stadig se alle de systembaserede brugerkonti blandet med dine menneskelige brugere.
Sådan bruges getent til at liste brugere
En anden kommando, dygtig, er meget mere nyttig. Den viser poster fra enhver konfigureret database på din server /etc/nsswitch.conf fil. En af dem er passwd database. At bruge dygtig for at vise en liste over alle Linux-brugere, fungerer det sådan her:
getent passwd
Outputtet ser nøjagtigt det samme ud som at bruge mindre kommando, men viser alle LDAP-brugere på Linux-systemet. Endnu en gang vores awk og skære kommandoer kan hjælpe med at se kun det første felt, brugernavnene.
Hvis du vil kontrollere, om der findes en bestemt bruger i Linux-systemet, dygtig gør det nemt:
getent passwd jeff.
Igen, intet output fra denne kommando fortæller dig, at brugeren ikke eksisterer.
Endnu en fantastisk brug for dygtig er at finde ud af, hvor mange brugerkonti der findes på serveren. Dette gøres ved hjælp af rør dygtig's output gennem Toilet kommando, sådan her:
getent passwd | wc -l.
Som du kan se, har mit Linux-system i alt 48 konti. Ret interessant, da jeg er den eneste der bruger det, men det viser bare hvor mange systemkonti der er oprettet i Linux.
Luge systembrugere ud fra normale brugere
I Linux øjne er der ingen forskel mellem en systembruger og en menneskelig. Hver gang du installerer operativsystemet, opretter det et antal systembrugere. Andre systembrugere bliver oprettet til forskellige pakker, såsom web- eller mailservicesoftware.
Så hvordan kan du kun liste de almindelige, menneskelige brugere på Linux-systemet? Nøglen her er at forstå, at når du opretter en almindelig bruger, tildeles dens UID inden for et bestemt antal numre. Ved at kontrollere /etc/login.defs fil, kan vi bestemme rækkevidden af UID-værdier, der er tilgængelige for almindelige brugerkonti.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.
Baseret på outputtet ved jeg, at normale brugere skal have et UID mellem 1000 og 60000. Ud fra dette kan jeg konstruere en dygtig forespørgsel, der kun viser normale brugere.
getent adgangskode {1000..60000}
Husk på, dygtig ser ud til at hænge, selv efter at den viser sit output. Du kan trykke på Ctrl-C for at afslutte processen, eller vent, indtil den er færdig. Det tager normalt mindre end 15 sekunder at fuldføre søgningen passwd database.
En mere generisk version af denne kommando tager højde for forskellige UID_MIN og UID_MAX værdier, som forskellige servere kan bruge.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
I den kommando udnytter vi Linuxs evne til at gøre flere ting på én gang. Det awk kommandoer få UID_MIN og UID_MAX værdier, og brug dem derefter inden for dygtig kommando.
Lad os nu sige, at det eneste, vi ønsker, er brugernavnene. Endnu en gang rører vi vores output gennem skære kommando, som sådan:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | skære -d: -f1.
Denne kommando kan tage 10 til 15 sekunder at fuldføre, så vær tålmodig.
Effektiv administration af dine Linux-brugere
Det er vigtigt at holde styr på, hvilke brugerkonti der findes på dit Linux-system. Når du ved, at en medarbejder er gået, skal du være hurtig til at slette deres brugerkonto. Med jævne mellemrum en liste over dine Linux-brugere vil du være sikker på, at du fanger konti, der måtte have siddet fast.
Sørg samtidig for at holde på toppen adgangskodesikkerhedspolitikker og opfordre dine brugere til det ændre deres adgangskoder regelmæssigt.