Laatst geupdate op
Het is belangrijk om te weten wie toegang heeft tot uw Linux-pc (en controle over uw bestanden), maar u kunt eenvoudig gebruikers in Linux vermelden om erachter te komen. Hier is hoe.
De Linux-besturingssysteem biedt opdrachten om gebruikers aan te maken en te verwijderen en te controleren welke zijn ingelogd. Er is echter geen opdracht om gebruikers, ingelogd of niet, op het systeem weer te geven.
Toch zijn er een aantal manieren om dit voor elkaar te krijgen. Als u wilt leren hoe u gebruikers in Linux kunt vermelden, volgt u onze onderstaande stappen.
Waarom u uw Linux-gebruikerslijst moet controleren
Er zijn een aantal redenen waarom u gebruikers in Linux wilt vermelden. Het is bijvoorbeeld een goede gewoonte om ongebruikte accounts te vinden en te verwijderen. Vanuit veiligheidsoogpunt is het ook een goede manier om ervoor te zorgen dat indringers geen gebruikersaccounts maken.
Dit is een administratieve taak die u waarschijnlijk minimaal één keer per maand moet doen. Als u een zakelijke Linux-server gebruikt, wilt u dit misschien vaker doen.
Gebruikers vermeld in /etc/passwd
Alle gebruikersaccounts van uw Linux-server hebben vermeldingen in het bestand /etc/passwd. Elke regel vertegenwoordigt een gebruiker en heeft zeven velden gescheiden door dubbele punten. De velden geven informatie over de gebruiker.
- Gebruikersnaam.
- Versleuteld wachtwoord (x geeft aan dat het wachtwoord daadwerkelijk in /etc/shadow)
- Gebruikers-ID-nummer (UID).
- ID-nummer van de gebruikersgroep (GID).
- Volledige naam van de gebruiker, indien vermeld.
- Thuismap van de gebruiker.
- Inloggen shell
Dus dat brengt ons bij een manier om alle gebruikers op Linux op te sommen. U kunt de minder commando om het hele bestand te zien, één scherm tegelijk.
minder /etc/passwd.
Als je wilt controleren of een bepaalde gebruiker in het Linux-systeem bestaat, is dat een goed gebruik van de opdracht grep:
minder wachtwoord | grep jeff.
Als u geen uitvoer krijgt, bestaat die gebruiker niet op de Linux-server.
Toch is dat veel informatie. U kunt het inkorten tot alleen de gebruikersnaam, bijvoorbeeld met de awk of snee commando's:
awk -F: '{print $1}' /etc/passwd. knip -d: -f1 /etc/passwd.
Dat is meestal veel gemakkelijker te begrijpen, maar u kunt nog steeds alle systeemgebaseerde gebruikersaccounts bekijken, vermengd met uw menselijke gebruikers.
Hoe getent te gebruiken om gebruikers te vermelden
Een ander commando, getent, is veel handiger. Het toont items van elke database geconfigureerd in uw server /etc/nsswitch.conf het dossier. Een daarvan is de passwd databank. Gebruiken getent om een lijst van alle Linux-gebruikers weer te geven, werkt het als volgt:
getent passwd
De uitvoer ziet er precies hetzelfde uit als het gebruik van de minder commando, maar vermeldt alle LDAP-gebruikers op het Linux-systeem. Nogmaals onze awk en snee commando's kunnen helpen om alleen het eerste veld, de gebruikersnamen, te zien.
Als u wilt controleren of een bepaalde gebruiker in het Linux-systeem bestaat, getent maakt het gemakkelijk:
getent passwd jeff.
Nogmaals, geen enkele uitvoer van deze opdracht vertelt u dat de gebruiker niet bestaat.
Nog een geweldig gebruik voor getent is te weten komen hoeveel gebruikersaccounts er op de server bestaan. Dit doe je door middel van piping getent’s output via de wc commando, zoals dit:
getent passwd | wc -l.
Zoals je kunt zien, heeft mijn Linux-systeem in totaal 48 accounts. Best interessant, aangezien ik de enige ben die het gebruikt, maar dat laat alleen maar zien hoeveel systeemaccounts er in Linux zijn gemaakt.
Systeemgebruikers van normale gebruikers verwijderen
In de ogen van Linux is er geen verschil tussen een systeemgebruiker en een menselijke. Telkens wanneer u het besturingssysteem installeert, maakt het een aantal systeemgebruikers aan. Andere systeemgebruikers worden gemaakt voor verschillende pakketten, zoals web- of e-mailservicesoftware.
Dus, hoe kun je alleen de gewone, menselijke gebruikers op het Linux-systeem vermelden? De sleutel hier is om te begrijpen dat wanneer u een gewone gebruiker aanmaakt, de UID wordt toegewezen binnen een bepaald nummerbereik. Door het controleren van de /etc/login.defs bestand, kunnen we het bereik van UID-waarden bepalen die beschikbaar zijn voor gewone gebruikersaccounts.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.
Op basis van de output weet ik dat normale gebruikers een UID tussen 1000 en 60000 moeten hebben. Hieruit kan ik een construeren getent query die alleen normale gebruikers weergeeft.
getent wachtwoord {1000..60000}
Houd in gedachten, getent lijkt te blijven hangen, zelfs nadat de uitvoer wordt weergegeven. U kunt op drukken Ctrl-C om het proces te beëindigen, of wacht tot het is voltooid. Het duurt meestal minder dan 15 seconden om het zoeken naar de passwd databank.
Een meer generieke versie van dit commando houdt rekening met verschillende UID_MIN en UID_MAX waarden die verschillende servers kunnen gebruiken.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
In die opdracht maken we gebruik van het vermogen van Linux om meerdere dingen tegelijk te doen. De awk commando's krijgen de UID_MIN en UID_MAX waarden, gebruik ze dan binnen de getent opdracht.
Laten we nu zeggen dat we alleen de gebruikersnamen willen. Nogmaals, we pijpen onze output door de snee commando, zoals zo:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | knippen -d: -f1.
Het kan 10 tot 15 seconden duren voordat deze opdracht is voltooid, dus wees geduldig.
Effectief uw Linux-gebruikers beheren
Het is belangrijk om bij te houden welke gebruikersaccounts op uw Linux-systeem bestaan. Als u weet dat een medewerker is vertrokken, moet u snel zijn om zijn gebruikersaccount te verwijderen. Door regelmatig uw Linux-gebruikers op te sommen, kunt u ervoor zorgen dat u eventuele accounts opvangt die mogelijk zijn blijven hangen.
Zorg er tegelijkertijd voor dat je op de hoogte blijft wachtwoord beveiligingsbeleid en moedig uw gebruikers aan om hun wachtwoorden wijzigen regelmatig.