Linux Benutzer anzeigen: Befehle, Tools und Automatisierungstipps

Linux Benutzer anzeigen: Befehle, Tools und Automatisierungstipps

Die gängigste Methode, um Linux-Benutzer anzuzeigen, ist das Auslesen der Datei /etc/passwd, in der wichtige Informationen zu jedem Benutzerkonto im System gespeichert sind.

Das Auflisten von Benutzern gehört zu den grundlegenden Aufgaben der Systemadministration. So können Sie prüfen, wer angemeldet ist, Konten nach Benutzer-ID filtern und Überprüfungen automatisieren, um die Systemsicherheit zu gewährleisten.

Die folgenden Befehle können Sie verwenden, um Linux-Benutzer aufzulisten:

  1. cat. Eignet sich für einen schnellen, ungefilterten Überblick über alle lokalen Benutzer.
  2. getent. Ideal, um Benutzer aus lokalen und Netzwerkdatenbanken wie LDAP aufzulisten.
  3. compgen. Eignet sich zum Erstellen einer übersichtlichen Liste von Benutzernamen für Skripte und die automatische Vervollständigung.
  4. awk und cut. Eignen sich zum Filtern der Ausgabe, sodass nur Benutzernamen angezeigt werden.
  5. who und users. Zeigen an, welche Benutzer aktuell angemeldet sind.

Voraussetzungen für das Auflisten von Linux-Benutzern

Bevor Sie Benutzer unter Linux auflisten, benötigen Sie Zugriff auf ein Terminal. Das gilt sowohl für einen lokalen Rechner als auch für ein Remote-System wie einen Virtual Private Server (VPS).

Wenn Sie einen VPS verwalten, stellen Sie über einen SSH-Client mit folgender Syntax eine Verbindung her:

ssh username@your_server_ip

Jeder Benutzer kann die Datei /etc/passwd lesen und grundlegende Befehle zum Auflisten von Benutzern ausführen. Administrative Aktionen wie das Erstellen, Ändern oder Löschen von Benutzern erfordern jedoch root– oder sudo-Zugriff.

So listen Sie Benutzer mit dem Befehl cat auf

Am einfachsten lassen sich alle Benutzer auflisten, indem Sie mit dem Befehl cat den Inhalt der Datei /etc/passwd ausgeben. Die Datei enthält Angaben zu jedem Benutzer im System, darunter Systemkonten und reguläre Benutzer.

Führen Sie den folgenden Befehl aus, um die Datei anzuzeigen:

cat /etc/passwd

Die Ausgabe enthält für jedes Benutzerkonto eine eigene Zeile.

Jede Zeile hat folgende Struktur:

username:x:UID:GID:GECOS:home_directory:shell

Die einzelnen Felder haben folgende Bedeutung:

  • username. Der Anmeldename des Kontos.
  • x. Ein Platzhalter, der angibt, dass der Passwort-Hash in /etc/shadow gespeichert ist.
  • UID. Die numerische Benutzer-ID.
  • GID. Die numerische ID der primären Gruppe.
  • GECOS. Optionale Angaben zum Benutzer, beispielsweise der vollständige Name oder eine Beschreibung.
  • home_directory. Der absolute Pfad zum Home-Verzeichnis des Benutzers.
  • shell. Das Programm, das ausgeführt wird, wenn sich der Benutzer anmeldet.

Auf Systemen mit Hunderten von Benutzern kann die Ausgabe von cat schnell unübersichtlich werden. Leiten Sie die Ausgabe in diesem Fall mit einer Pipe an less weiter, um sie leichter lesen zu können, oder verwenden Sie grep, um nach bestimmten Konten zu suchen.

cat /etc/passwd | less
cat /etc/passwd | grep username

Da /etc/passwd für alle Benutzer lesbar ist, sollten Sie beachten, dass die Datei Benutzer-IDs und Pfade zu Home-Verzeichnissen offenlegt. Die Passwörter selbst bleiben jedoch sicher verschlüsselt in /etc/shadow gespeichert. Auf diese Datei kann nur root zugreifen.

So listen Sie Linux-Benutzer mit dem Befehl getent auf

Der Befehl getent ruft Einträge über den Name Service Switch (NSS) des Systems ab. Er eignet sich daher besonders für Systeme, die netzwerkbasierte Benutzerverzeichnisse wie LDAP oder Active Directory verwenden.

Während cat nur die lokale Datei /etc/passwd liest, fragt getent alle in /etc/nsswitch.conf konfigurierten Benutzerdatenbanken ab.

Führen Sie folgenden Befehl aus, um alle Benutzer aus lokalen und Netzwerkquellen aufzulisten:

getent passwd

Wenn Sie die Angaben zu einem bestimmten Benutzer abrufen möchten, fügen Sie den Benutzernamen hinzu:

getent passwd username

Das Ausgabeformat entspricht dem von /etc/passwd. getent zeigt jedoch Benutzerdaten aus allen konfigurierten Quellen an, nicht nur aus lokalen Konten.

So listen Sie Benutzer mit compgen auf

compgen ist ein integrierter Bash-Befehl, der Treffer für die automatische Vervollständigung erzeugt. Mit der Option -u gibt der Befehl alle dem System bekannten Benutzernamen aus, darunter reguläre Benutzer- und Systemkonten.

Führen Sie folgenden Befehl aus, um alle Benutzernamen aufzulisten:

compgen -u

compgen fragt dieselben NSS-Datenbanken wie getent ab, gibt jedoch nur die Benutzernamen ohne weitere Felder aus. Daher eignet sich der Befehl besonders für Shell-Skripte oder zum Einrichten der automatischen Vervollständigung in benutzerdefinierten Tools.

Standardmäßig gibt compgen eine lange vertikale Liste aus. Leiten Sie die Ausgabe an den Befehl column weiter, um sie übersichtlicher darzustellen:

compgen -u | column

Important

Da compgen ein integrierter Bash-Befehl ist, steht er in anderen Shells wie sh oder zsh nicht zur Verfügung.

So passen Sie die Benutzerausgabe mit awk und cut an

Wenn Sie nur Benutzernamen oder bestimmte andere Felder ohne zusätzliche IDs und Verzeichnispfade ausgeben möchten, verwenden Sie Textverarbeitungsprogramme wie awk oder cut.

Diese Tools dienen als Filter: Sie verarbeiten die Rohdaten aus /etc/passwd und geben nur die gewünschten Felder aus.

Die folgende Tabelle vergleicht beide Befehle beim Auflisten von Benutzern:

Merkmalawkcut
Syntaxawk -F: ‘{print $1}’ /etc/passwdcut -d: -f1 /etc/passwd
TrennzeichenMit -F: wird der Doppelpunkt als Trennzeichen festgelegt.Mit -d: wird der Doppelpunkt als Trennzeichen festgelegt.
FeldlogikGibt mit $1 das erste Feld aus.Wählt mit -f1 das erste Feld aus.
Am besten fürKomplexe Formatierungen und bedingte VerarbeitungEinfache, ressourcenschonende Feldextraktion

Verwenden Sie awk, wenn Sie die Daten weiterverarbeiten möchten, beispielsweise um Benutzer nach einem UID-Bereich zu filtern.

Verwenden Sie cut, wenn Sie schnell nur die Benutzernamen extrahieren möchten.

So überprüfen Sie, welche Benutzer aktuell angemeldet sind

Wenn Sie statt aller registrierten Konten die aktuell angemeldeten Linux-Benutzer anzeigen möchten, verwenden Sie die Befehle who oder users.

Mit Tools wie cat listen Sie alle Benutzerkonten auf, während who und users anzeigen, welche Benutzer gerade angemeldet sind. Dieser Unterschied ist besonders relevant, wenn Sie die Aktivitäten auf Servern mit mehreren Benutzern überwachen.

  • users. Gibt eine einfache Zeile mit den Benutzernamen der aktuell angemeldeten Benutzer aus.
users
  • who. Zeigt detaillierte Informationen an, darunter die Terminalzeile, die Anmeldezeit und die IP-Adresse, von der die Anmeldung erfolgte.
who

Für weitere Details, darunter die Leerlaufzeit und laufende Prozesse, verwenden Sie den Befehl w:

w

Welche Best Practices gibt es für das Auflisten von Benutzern?

Für eine effektive Überprüfung von Benutzern sollten Sie die Ausgabe für eine bessere Lesbarkeit filtern, Benutzerdaten schützen und regelmäßige Überprüfungen automatisieren, um die Systemintegrität zu gewährleisten.

Verknüpfen Sie Befehle mit Pipes

Kombinieren Sie Befehle zum Auflisten von Benutzern mit grep, um bestimmte Informationen schnell zu finden. Mit folgendem Befehl können Sie beispielsweise prüfen, ob ein bestimmter Benutzer vorhanden ist, ohne die gesamte Liste durchsuchen zu müssen:

getent passwd | grep username

Sie können die Liste außerdem alphabetisch sortieren, um die manuelle Überprüfung zu erleichtern:

cut -d: -f1 /etc/passwd | sort

Verwenden Sie eine grafische Benutzeroberfläche für die Benutzerverwaltung

Wenn Sie eine grafische Benutzeroberfläche der Befehlszeile vorziehen, verwenden Sie ein Control Panel wie Webmin oder die Benutzerverwaltung Ihrer Desktop-Umgebung.

Diese Tools bieten häufig eine durchsuchbare Benutzertabelle. So können Sie Gruppen, IDs und Shell-Berechtigungen auf einen Blick einsehen, ohne sich die Befehlssyntax merken zu müssen.

Verwalten Sie Benutzerinformationen sicher

Das regelmäßige Auflisten von Benutzern ist eine wichtige Sicherheitsmaßnahme. Achten Sie bei der Überprüfung der Liste auf Folgendes:

  • Unbekannte Konten. Achten Sie auf Benutzerkonten, die Sie nicht erstellt haben.
  • Unerwartete Konten mit UID 0. Nur root sollte die UID 0 haben. Jedes andere Konto mit UID 0 verfügt über vollständige Superuser-Rechte.
  • Shell-Zugriff. Stellen Sie sicher, dass Systembenutzer wie www-data oder nobody /usr/sbin/nologin (Debian/Ubuntu), /sbin/nologin (RHEL/CentOS) oder /bin/false verwenden, um eine interaktive Anmeldung zu verhindern.

So automatisieren Sie das Auflisten von Benutzern mit Bash-Skripten

Um das Auflisten von Benutzern zu automatisieren, erstellen Sie Bash-Skripte, die Befehle wie cut oder awk ausführen, und planen Sie deren Ausführung mit cron.

Befehle wie cat, getent, awk, cut, who und compgen eignen sich gut für schnelle Überprüfungen. Auf großen Linux-Systemen werden wiederholte manuelle Abfragen jedoch schnell ineffizient.

Mit Bash-Skripten können Sie Benutzerinformationen automatisch abrufen, Konten nach bestimmten Kriterien filtern, beispielsweise nach Benutzern mit sudo-Zugriff, und Berichte für eine spätere Überprüfung speichern. So können Sie bei der langfristigen Serververwaltung konsistente und sichere Überprüfungen durchführen.

Anschließend können Sie die Skripte mit Cron-Jobs automatisch ausführen lassen, um verdächtige Kontoänderungen zu erkennen. Ein einfaches Skript kann alle Benutzer in eine mit einem Zeitstempel versehene Textdatei exportieren, sodass Sie die Ergebnisse im Laufe der Zeit vergleichen können.

Das folgende Beispielskript exportiert eine mit cut erstellte Benutzerliste in eine Datei mit Zeitstempel:

#!/bin/bash
# Export user list to a timestamped file

OUTPUT_DIR="$HOME/user_audits"
OUTPUT_FILE="$OUTPUT_DIR/user_audit_$(date +%F).txt"

# Create output directory if it doesn't exist
mkdir -p "$OUTPUT_DIR"

# Generate user list
cut -d: -f1 /etc/passwd | sort > "$OUTPUT_FILE"

echo "User audit saved to $OUTPUT_FILE"

Machen Sie das Skript ausführbar und planen Sie mit cron eine tägliche oder wöchentliche Ausführung:

chmod +x ~/user_audit.sh
crontab -e
# Add: 0 2 * * * ~/user_audit.sh

Wenn Sie Skripte nicht von Grund auf selbst erstellen möchten, können Sie Hostinger Agent, unseren KI-Assistenten, verwenden. Er ist in allen VPS-Tarifen verfügbar und erstellt sofort Automatisierungsskripte für Sie. Geben Sie einfach eine Eingabe ein, die beschreibt, was das Skript tun soll.

Wenn Sie mehr praxisorientiert lernen möchten, können Sie mit weiteren Bash-Skripten experimentieren und so fortgeschrittene Automatisierungsaufgaben Schritt für Schritt umsetzen.

Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.

Author
Erstellt von

Faradilla Ayunindya

Faradilla, auch bekannt als Ninda, ist Content Marketing Specialist bei Hostinger mit über fünf Jahren Erfahrung und einem zehnjährigen Hintergrund als Linguistin. Sie möchte Technologie für alle zugänglich machen, indem sie komplexe Anleitungen in klare und leicht verständliche Schritt-für-Schritt-Guides verwandelt. In ihrer Freizeit interessiert sie sich für Biowissenschaften oder schaut gerne lustige Tiervideos. Vernetzen Sie sich mit ihr auf LinkedIn.

Was unsere Kunden sagen

Comments

0 responses

Write a respond

Please fill the required fields.Bitte akzeptieren Sie die Datenschutzklausel.Bitte füllen Sie die erforderlichen Felder aus und akzeptieren Sie die Datenschutzklausel.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.