
Alle Benutzer in Linux aufzulisten ist Grundlagenwissen für Sysadmins, Security-Auditoren und Entwickler. Da Linux als Mehrbenutzersystem gebaut ist, können mehrere Personen oder Dienste gleichzeitig auf das System zugreifen. Den Überblick über diese Konten zu behalten stellt sicher, dass nur Berechtigte Zugang zu sensiblen Daten und Systemressourcen haben.
Ob du ein Routine-Audit durchführst oder Rechteproblemen auf den Grund gehst – wenn du weißt, wie du Benutzer effizient auflistest, machst du dir das Leben leichter. Diese Anleitung führt dich von der einfachen Dateiabfrage bis zu erweiterten Filteroptionen und Automatisierungsskripten, die auf jeder Linux-Distribution funktionieren.
Linux-Benutzertypen verstehen
Bevor es zu den Befehlen geht, kurz zu den verschiedenen Benutzertypen auf einem typischen System. Nicht jeder Eintrag in der Benutzerliste steht für eine echte Person – die meisten Konten gehören zu Hintergrundprozessen.
Reguläre Benutzer vs. Systemkonten
Linux kategorisiert Konten danach, was sie tun, und nach ihrer UID oder GID:
- Root-Benutzer: Der Superuser mit UID 0. Dieses Konto kann ohne Einschränkungen auf Befehle und Dateien zugreifen.
- Systemkonten: Diese nutzt das OS, um bestimmte Dienste wie
sshd,messagebusodernginxauszuführen. Sie haben üblicherweise UIDs zwischen 1 und 999 und oft keine Login-Shell. - Reguläre Benutzer: Diese werden für echte Personen angelegt. Auf den meisten modernen Distributionen beginnen diese Konten ab UID 1000.
Benutzerdateien: /etc/passwd und /etc/shadow
Die zentrale Datenbank für Benutzerinformationen liegt in /etc/passwd. Wenn du cat /etc/passwd ausführst, siehst du eine durch Doppelpunkte getrennte Benutzerliste. Jede Zeile hat sieben Felder: Benutzername, Passwort-Platzhalter (x), UID, GID, Benutzerinfo, Heimverzeichnis und Login-Shell.
Während /etc/passwd für alle lesbar ist, damit das System Namen auflösen kann, liegen die eigentlichen verschlüsselten Passwörter in /etc/shadow. Auf diese Datei haben nur der Root-Benutzer und Personen mit sudo-Rechten Zugriff.
Voraussetzungen
Bevor du Benutzer auf deinem System überprüfst, vergewissere dich, dass du die nötigen Zugriffsrechte hast. Die grundlegende Benutzerliste erfordert keine besonderen Rechte; das Anlegen von Benutzern oder der Zugriff auf /etc/shadow setzt jedoch sudo– oder Root-Rechte voraus. Die meisten der hier beschriebenen Werkzeuge sind auf Debian, Ubuntu, CentOS und Fedora standardmäßig vorinstalliert.
Alle Linux-Benutzer mit cat auflisten
Der direkteste Weg, alle auf dem System registrierten Konten einzusehen, ist das direkte Lesen der lokalen Passwortdatei.
Die /etc/passwd-Datei lesen
cat /etc/passwdDieser Befehl gibt die gesamte Benutzerdatenbank im Terminal aus. Die Rohausgabe kann schnell unübersichtlich werden, da alle Systemdienstkonten zusammen mit den menschlichen Benutzern erscheinen.
Benutzer mit grep und less filtern
Um Benutzer gezielter zu durchsuchen, leite die Ausgabe an andere Werkzeuge weiter. So suchst du nach einem bestimmten Benutzernamen:
grep "benutzername" /etc/passwdZum seitenweisen Durchscrollen der langen Liste:
cat /etc/passwd | lessBenutzer mit getent auflisten
Während cat eine bestimmte Datei liest, ist getent für moderne Systeme die robustere Wahl.
Lokale und LDAP-Datenbanken abfragen
getent passwdDieser Befehl schlägt nicht nur in /etc/passwd nach, sondern fragt die NSS-Konfiguration (Name Service Switch) ab. Das bedeutet: Er listet Benutzer aus lokalen Dateien und aus vernetzten Datenbanken wie LDAP oder NIS. Auf Systemen in einem Unternehmensnetzwerk ist das die zuverlässigste Methode.
Details zu einem bestimmten Benutzer abrufen
getent passwd benutzernameDieser Befehl gibt nur den Datensatz des angegebenen Benutzers zurück – die sauberste Methode, um ein Konto zu überprüfen, ohne Hunderte von Zeilen zu durchsuchen.
Benutzernamen mit compgen auflisten
Wenn du nur eine einfache Namensliste ohne UID oder Heimverzeichnis brauchst, ist compgen ideal:
compgen -uDie Ausgabe ist eine saubere Liste aller Benutzernamen. Besonders praktisch für Shell-Skripte, die Benutzer durchlaufen müssen, ohne komplexe Strings zu parsen.
Benutzerdefinierte Ausgabe mit awk und cut
Manchmal brauchst du nur bestimmte Spalten, zum Beispiel Benutzername und Login-Shell.
Benutzernamen mit awk extrahieren
awk eignet sich gut für durch Doppelpunkte getrennte Dateien. So listest du nur das erste Feld (Name) und das dritte Feld (UID):
awk -F: '{ print $1 " " $3 }' /etc/passwdDas hilft dir, Benutzerrechte schnell zu prüfen und zu erkennen, welche UIDs zu welchen Benutzergruppen gehören.
Benutzernamen mit cut extrahieren
Der cut-Befehl ist einfacher als awk. So gibst du nur die Benutzernamen aus:
cut -d: -f1 /etc/passwdIdeal, wenn du die Namen schnell abrufen und in einen anderen Prozess weiterleiten möchtest.
Angemeldete Benutzer überprüfen
Die vollständige Benutzerliste zeigt dir, wer Zugang hat. Wer gerade aktiv ist, erfährst du so:
Die Befehle who und users
whoDieser Befehl listet aktive Sitzungen mit Terminal und Anmeldezeit auf. Für eine platzsparende Liste nur der aktuell angemeldeten Benutzernamen:
usersBenutzeraktivität mit w überwachen
wDieser Befehl zeigt angemeldete Benutzer, ihre aktuelle Aktivität (JCPU- und PCPU-Zeiten) und ihre Remote-IP-Adresse bei SSH-Verbindungen. Unverzichtbar, wenn du Systemlast und Sicherheit im Blick behalten möchtest.
Benutzer nach UID, Gruppe und Shell filtern
Eine fortgeschrittene Benutzerverwaltung erfordert oft die Filterung nach bestimmten Attributen.
Benutzer nach UID-Bereich filtern
Um nur reguläre Benutzer (UID 1000+) anzuzeigen:
awk -F: '$3 >= 1000 {print $1}' /etc/passwdSo unterscheidest du menschliche Konten auf einen Blick von Systemdienstkonten.
Benutzer nach Gruppe auflisten
Um zu sehen, welche Benutzer einer bestimmten Gruppe angehören, überprüfe /etc/group oder nutze:
getent group gruppennameDas Verständnis von Gruppen und deren Mitgliedern ist wichtig für eine saubere, abteilungsbasierte Zugriffskontrolle.
Benutzer mit sudo-Rechten finden
Wer mit administrativen Rechten ausgestattet ist, sollte kein Geheimnis sein:
getent group sudoBest Practices für die Benutzerverwaltung
Ein sicheres System erfordert regelmäßige Audits und die Einhaltung bewährter Praktiken.
Befehle mit Pipes kombinieren
Die Stärke von Linux liegt im Kombinieren von Werkzeugen. So listest du alle Benutzer und zählst sie gleichzeitig:
cut -d: -f1 /etc/passwd | wc -lDas gibt dir einen schnellen Überblick, ob die Anzahl deinen Erwartungen entspricht.
GUI für die Benutzerverwaltung nutzen
Auf Desktop-Umgebungen wie GNOME oder KDE kannst du Benutzerrechte über „Einstellungen“ oder „Benutzer“ verwalten. Weniger flexibel als die Kommandozeile, aber für Einsteiger eine solide Option.
Benutzerkonten absichern und auditieren
Auditiere regelmäßig deine Systemdienstkonten und den Root-Benutzer. Stelle sicher, dass kein nicht autorisierter Benutzer eine UID von 0 hat, und setze für Dienstkonten die Shell auf /sbin/nologin, um unbefugten Zugriff zu verhindern.
Benutzerverwaltung mit Bash-Skripten automatisieren
Bei großen Serverlandschaften sind manuelle Checks ineffizient. Skripte helfen dir, Benutzer über mehrere Server hinweg aufzulisten.
Ein Benutzeraudit-Skript schreiben
Ein einfaches Skript kann die /etc/passwd durchlaufen und Konten mit weitreichenden Berechtigungen markieren. So liefert dir dein Benutzeraudit verwertbare Daten statt reinen Text.
Audits mit Cron-Jobs planen
Wenn du diese Skripte per Cron planst, automatisierst du deine Benutzerverwaltung und erhältst Benachrichtigungen, wenn ein neuer Benutzer angelegt wird.
FAQ
Du kannst getent passwd oder cat /etc/passwd verwenden, um alle Benutzer aufzulisten.
Nutze who oder w, um angemeldete Benutzer und ihre aktuelle Aktivität anzuzeigen.
Mit getent group siehst du alle Gruppen des Systems inklusive ihrer Mitglieder.
Der einfachste Befehl für eine saubere Namensliste ist cut -d: -f1 /etc/passwd.
Führe id benutzername oder getent passwd benutzername aus.
Nutze getent passwd oder cat /etc/passwd, um die vollständige Benutzerdatenbank anzuzeigen.
Linux-Benutzersicherheit umfasst die Zugriffskontrolle über korrekte Berechtigungen, regelmäßige Audits und die Sicherstellung, dass nur autorisierte Konten erhöhte Rechte besitzen.