Das Linux-Betriebssystem bietet Befehle zum Erstellen und Löschen von Benutzern und zum Überprüfen, welche angemeldet sind. Es gibt jedoch keinen Befehl zum Auflisten von Benutzern, angemeldet oder nicht, auf dem System.
Dennoch gibt es ein paar Möglichkeiten, dies zu erreichen. Wenn Sie erfahren möchten, wie Sie Benutzer unter Linux auflisten, befolgen Sie die nachstehenden Schritte.
Warum Sie Ihre Linux-Benutzerliste überprüfen sollten
Es gibt eine Reihe von Gründen, warum Sie Benutzer in Linux auflisten möchten. Zum einen ist es eine gute Praxis, ungenutzte Konten zu finden und zu löschen. Aus Sicherheitsgründen ist dies auch eine gute Möglichkeit sicherzustellen, dass Sie keine Eindringlinge haben, die Benutzerkonten erstellen.
Dies ist eine administrative Aufgabe, die Sie wahrscheinlich mindestens einmal im Monat erledigen sollten. Wenn Sie einen Unternehmens-Linux-Server betreiben, möchten Sie dies vielleicht öfter tun.
Benutzer, die in /etc/passwd aufgelistet sind
Alle Benutzerkonten Ihres Linux-Servers haben Einträge in der Datei /etc/passwd . Jede Zeile repräsentiert einen Benutzer und hat sieben durch Doppelpunkte getrennte Felder. Die Felder geben Auskunft über den Benutzer.
- Nutzername.
- Verschlüsseltes Passwort ( x zeigt an, dass sich das Passwort tatsächlich in /etc/shadow befindet )
- Benutzer-ID-Nummer (UID).
- Gruppen-ID-Nummer (GID) des Benutzers.
- Vollständiger Name des Benutzers, falls aufgeführt.
- Home-Verzeichnis des Benutzers.
- Login-Shell
Das bringt uns also zu einer Möglichkeit, alle Benutzer unter Linux aufzulisten. Sie können den Befehl less verwenden, um die gesamte Datei Bildschirm für Bildschirm anzuzeigen.
less /etc/passwd

Wenn Sie prüfen möchten, ob ein bestimmter Benutzer im Linux-System existiert, bietet sich dafür der Befehl grep an :
less passwd | grep jeff
![So listen Sie Benutzer unter Linux auf So listen Sie Benutzer unter Linux auf]()
Wenn Sie keine Ausgabe erhalten, existiert dieser Benutzer nicht auf dem Linux-Server.
Trotzdem sind das viele Informationen. Sie können es beispielsweise auf den Benutzernamen reduzieren, indem Sie entweder die Befehle awk oder cut verwenden:
awk -F: '{print $1}' /etc/passwd cut -d: -f1 /etc/passwd
![So listen Sie Benutzer unter Linux auf So listen Sie Benutzer unter Linux auf]()
Das ist in der Regel viel einfacher zu verstehen, aber es lässt Sie immer noch alle systembasierten Benutzerkonten gemischt mit Ihren menschlichen Benutzern anzeigen.
So verwenden Sie getent, um Benutzer aufzulisten
Ein anderer Befehl, getent , ist viel nützlicher. Es zeigt Einträge aus jeder Datenbank an, die in der Datei /etc/nsswitch.conf Ihres Servers konfiguriert ist. Eine davon ist die passwd- Datenbank. Um mit getent eine Liste aller Linux-Benutzer anzuzeigen, funktioniert das folgendermaßen:
getent passwd
Die Ausgabe sieht genauso aus wie bei der Verwendung des Befehls less , listet jedoch alle LDAP-Benutzer auf dem Linux-System auf. Auch hier können unsere awk- und cut -Befehle helfen, nur das erste Feld, die Benutzernamen, zu sehen.
Wenn Sie überprüfen möchten, ob ein bestimmter Benutzer im Linux-System existiert, macht getent es Ihnen leicht:
getent passwd jeff
Auch hier sagt Ihnen keine Ausgabe dieses Befehls, dass der Benutzer nicht existiert.
Eine weitere hervorragende Verwendung für getent ist das Herausfinden, wie viele Benutzerkonten auf dem Server vorhanden sind. Dies geschieht, indem die Ausgabe von getent wie folgt durch den Befehl wc geleitet wird:
getent passwd | wc -l
![So listen Sie Benutzer unter Linux auf So listen Sie Benutzer unter Linux auf]()
Wie Sie sehen können, hat mein Linux-System insgesamt 48 Konten. Ziemlich interessant, da ich der einzige bin, der es verwendet, aber das zeigt nur, wie viele Systemkonten in Linux erstellt werden.
Systembenutzer von normalen Benutzern aussortieren
In den Augen von Linux gibt es keinen Unterschied zwischen einem Systembenutzer und einem Menschen. Jedes Mal, wenn Sie das Betriebssystem installieren, erstellt es eine Reihe von Systembenutzern. Andere Systembenutzer werden für verschiedene Pakete wie Web- oder Mail-Service-Software erstellt.
Wie können Sie also nur die normalen, menschlichen Benutzer des Linux-Systems auflisten? Der Schlüssel hier ist zu verstehen, dass beim Erstellen eines regulären Benutzers dessen UID innerhalb eines bestimmten Zahlenbereichs zugewiesen wird. Durch Überprüfen der Datei /etc/login.defs können wir den Bereich der UID-Werte ermitteln, die für reguläre Benutzerkonten verfügbar sind.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
![So listen Sie Benutzer unter Linux auf So listen Sie Benutzer unter Linux auf]()
Aufgrund der Ausgabe weiß ich, dass normale Benutzer eine UID zwischen 1000 und 60000 haben sollten. Daraus kann ich eine Getent- Abfrage erstellen, die nur normale Benutzer anzeigt.
getent passwd {1000..60000}
![So listen Sie Benutzer unter Linux auf So listen Sie Benutzer unter Linux auf]()
Denken Sie daran, dass getent zu hängen scheint, selbst nachdem es seine Ausgabe angezeigt hat. Sie können Strg-C drücken , um den Vorgang zu beenden, oder warten, bis er abgeschlossen ist. Normalerweise dauert es weniger als 15 Sekunden, um die Suche in der passwd- Datenbank abzuschließen.
Eine allgemeinere Version dieses Befehls berücksichtigt unterschiedliche UID_MIN- und UID_MAX- Werte, die verschiedene Server möglicherweise verwenden.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
In diesem Befehl nutzen wir die Fähigkeit von Linux, mehrere Dinge gleichzeitig zu tun. Die awk - Befehle erhalten die UID_MIN- und UID_MAX- Werte und verwenden sie dann im getent- Befehl.
Nehmen wir an, wir wollen nur die Benutzernamen. Auch hier leiten wir unsere Ausgabe wie folgt durch den cut- Befehl:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1
![So listen Sie Benutzer unter Linux auf So listen Sie Benutzer unter Linux auf]()
Die Ausführung dieses Befehls kann 10 bis 15 Sekunden dauern, seien Sie also geduldig.
Effektive Verwaltung Ihrer Linux-Benutzer
Es ist wichtig, den Überblick darüber zu behalten, welche Benutzerkonten auf Ihrem Linux-System vorhanden sind. Wenn Sie wissen, dass ein Mitarbeiter gegangen ist, löschen Sie umgehend sein Benutzerkonto. Die regelmäßige Auflistung Ihrer Linux-Benutzer hilft sicherzustellen, dass Sie alle Konten finden, die möglicherweise noch vorhanden sind.
Achten Sie gleichzeitig darauf, die Passwortsicherheitsrichtlinien auf dem Laufenden zu halten, und ermutigen Sie Ihre Benutzer, ihre Passwörter regelmäßig zu ändern.