Benutzerverwaltung unter Linux: Eine vollständige Anleitung zum Auflisten von Benutzern

Foto des Autors

By Jan

Befehl ‚Linux list users‘: Syntax und Optionen

Unter Linux kannst du den Befehl users verwenden, um eine Liste der aktuell angemeldeten Benutzer anzuzeigen. Dieser Befehl bietet eine einfache Möglichkeit, die aktive Nutzung des Systems zu überwachen und zu ermitteln, wer auf das System zugreift.

Syntax:

users [Optionen]

Optionen:

  • -a, –all: Zeigt alle Benutzer an, einschließlich derer, die keine Shell ausführen.
  • -w, –who: Zeigt detailliertere Informationen zu den angemeldeten Benutzern an, einschließlich des Hostnamens, über den die Verbindung hergestellt wurde.
  • -h, –heading: Fügt der Ausgabe eine Überschrift hinzu.
  • -s, –sort: Sortiert die Ausgabe nach Benutzername, Anmeldezeit oder Hostname.
  • -t, –time: Zeigt die Zeit an, zu der sich die Benutzer angemeldet haben.
  • -i, –idle: Zeigt die Leerlaufzeit der Benutzer an.

Beispiel:

Um eine Liste aller angemeldeten Benutzer anzuzeigen, führe folgenden Befehl aus:

users

Ausgabe:

root     pts/0        2023-03-08 17:01 (172.16.254.1)
johndoe  pts/1        2023-03-08 17:05 (192.168.1.100)

Weitere Hinweise:

  • Der Befehl users ist in den meisten Linux-Distributionen vorinstalliert.
  • Der Befehl benötigt keine erhöhten Berechtigungen zur Ausführung.
  • Die Ausgabe des Befehls kann in Skripten und automatisierten Überwachungssystemen verwendet werden.
  • Durch die Angabe der entsprechenden Optionen kannst du die Ausgabe des Befehls an deine spezifischen Anforderungen anpassen.

Verschiedene Möglichkeiten zum Auflisten von Benutzern unter Linux

Zum Auflisten von Benutzern unter Linux steht dir eine Vielzahl von Befehlen und Tools zur Verfügung. Jede Option bietet unterschiedliche Funktionen und Flexibilität. Hier sind einige gängige Möglichkeiten, um Benutzer in deinem Linux-System aufzulisten:

Befehl getent passwd

Der Befehl getent passwd ist ein vielseitiges Tool, mit dem du Benutzer aus der Datei /etc/passwd abrufen kannst. Du kannst ihn wie folgt verwenden:

getent passwd

Dies listet alle Benutzer und ihre zugehörigen Informationen auf, einschließlich Benutzername, Benutzer-ID (UID), Gruppen-ID (GID), Heimatverzeichnis und Shell.

Befehl cat /etc/passwd

Eine einfachere Möglichkeit, Benutzer aufzulisten, besteht darin, die Datei /etc/passwd direkt zu lesen:

cat /etc/passwd

Dies gibt dir eine tabulatorgetrennte Liste mit Benutzerinformationen, ähnlich der Ausgabe von getent passwd.

Befehl finger

Der Befehl finger kann verwendet werden, um Informationen über einen einzelnen Benutzer abzurufen. Du kannst ihn wie folgt verwenden:

finger username

Er ersetzt username durch den Benutzernamen, dessen Informationen du abrufen möchtest. Dies gibt dir eine ausführlichere Ausgabe, die neben anderen Details auch den Status und die zuletzt angemeldete Zeit des Benutzers enthält.

Befehl lastlog

Der Befehl lastlog zeigt eine Liste aller Benutzer an, die sich in letzter Zeit bei deinem System angemeldet haben:

lastlog

Dies kann hilfreich sein, um festzustellen, wer auf dein System zugegriffen hat und wann.

Befehl w

Der Befehl w listet alle aktuell angemeldeten Benutzer auf:

w

Dies gibt dir Informationen wie Benutzernamen, Terminaltyp, Login-Zeit und Auslastung.

Befehlszeilentools für die Benutzerverwaltung

Neben den oben genannten Befehlen stehen auch spezifischere Tools zur Verfügung, die für die Benutzerverwaltung entwickelt wurden. Beispiele hierfür sind:

  • adduser: Benutzer hinzufügen, löschen und bearbeiten
  • useradd: Benutzer hinzufügen
  • userdel: Benutzer löschen
  • chpasswd: Benutzerpasswörter ändern

Auflistung von Benutzern mit speziellen Attributen

Um Benutzer mit bestimmten Attributen aufzulisten, kannst du den Befehl cut zusammen mit dem Befehl grep verwenden. Mit cut kannst du eine bestimmte Spalte aus der Ausgabe eines Befehls extrahieren, während grep die Ausgabe nach einem bestimmten Muster filtert.

Filterung nach Shell

Um beispielsweise eine Liste aller Benutzer aufzulisten, die die Bash-Shell verwenden, kannst du Folgendes ausführen:

cat /etc/passwd | cut -d: -f1,7 | grep /bin/bash

Hier filtert cut die Felder 1 (Benutzername) und 7 (Shell) aus der Datei /etc/passwd und grep filtert dann die Ergebnisse nach Zeilen, die /bin/bash enthalten.

Filterung nach Gruppenmitgliedschaft

Du kannst auch nach Benutzern filtern, die Mitglied einer bestimmten Gruppe sind. Dies ist hilfreich, um Benutzer mit spezifischen Berechtigungen zu identifizieren. Verwende dazu den folgenden Befehl:

groups | grep sudo

Dieser Befehl listet alle Benutzer auf, die Mitglied der Gruppe sudo sind, die administrative Berechtigungen gewährt.

Auflistung von Benutzern mit UID/GID

Du kannst auch Benutzer anhand ihrer User-ID (UID) oder Group-ID (GID) auflisten. Dies ist nützlich, wenn du die numerischen IDs der Benutzer kennen musst. Verwende dazu den folgenden Befehl:

id -u USERNAME

Ersetze USERNAME durch den Benutzernamen, für den du die UID erhalten möchtest.

Um die GID eines Benutzers abzurufen, verwende den folgenden Befehl:

id -g USERNAME

Filtern von Benutzerlisten nach bestimmten Kriterien

Mit den Befehlen aus dem vorherigen Abschnitt kannst du eine umfassende Liste aller Benutzer auf deinem Linux-System abrufen. Allerdings kann es hilfreich sein, die Liste zu filtern, um nur die Benutzer anzuzeigen, die bestimmte Kriterien erfüllen.

Filtern nach Benutzername

Um Benutzer nach ihrem Benutzernamen zu filtern, kannst du den Befehl grep verwenden. Beispielsweise listet der folgende Befehl alle Benutzer auf, deren Benutzername "user" enthält:

cat /etc/passwd | grep user

Filtern nach Benutzer-ID

Du kannst auch nach Benutzer-ID filtern, indem du den Befehl awk verwendest. Der folgende Befehl listet beispielsweise alle Benutzer mit einer Benutzer-ID größer als 1000 auf:

cat /etc/passwd | awk -F: '$3 > 1000'

Filtern nach Gruppenmitgliedschaft

Um Benutzer nach ihrer Gruppenmitgliedschaft zu filtern, kannst du den Befehl groups verwenden. Der folgende Befehl listet beispielsweise alle Benutzer auf, die Mitglied der Gruppe "admin" sind:

groups admin

Filtern nach Shell

Du kannst auch nach der von Benutzern verwendeten Shell filtern. Der folgende Befehl listet beispielsweise alle Benutzer auf, die die Bash-Shell verwenden:

cat /etc/passwd | awk -F: '$7 ~ /bash$/'

Filtern nach Home-Verzeichnis

Ebenso kannst du nach dem Home-Verzeichnis von Benutzern filtern. Der folgende Befehl listet beispielsweise alle Benutzer auf, deren Home-Verzeichnis "/home/user" lautet:

cat /etc/passwd | awk -F: '$6 ~ /\/home\/user$/'

Weitere Filteroptionen

Diese sind nur einige Beispiele, um dir zu zeigen, wie du die Ausgabe des Befehls cat /etc/passwd filtern kannst. Weitere Filteroptionen findest du in der Dokumentation zu grep, awk, groups und anderen relevanten Befehlen.

Best Practices

Denke daran, dass einige der oben genannten Befehle root-Rechte erfordern. Verwende diese Befehle daher mit Vorsicht und teste sie in einer Testumgebung, bevor du sie auf einem Produktionssystem ausführst.

Abrufen detaillierter Benutzerinformationen

Manchmal benötigst du mehr Informationen über einen Benutzer als nur seinen Benutzernamen. In solchen Fällen kannst du den Befehl finger verwenden, um detaillierte Informationen über einen Benutzer zu erhalten.

Grundlagen

Der Befehl finger zeigt standardmäßig grundlegende Informationen wie den vollständigen Namen des Benutzers, den Anmeldungszeitpunkt und die Leerlaufzeit an. Du kannst jedoch weitere Informationen abrufen, indem du Optionen verwendest:

  • -l: Zeigt den vollständigen Eintrag des Benutzers einschließlich Heimverzeichnis, Shell und Finger-Nachricht an.
  • -m: Zeigt die Mailbox-Nachrichten des Benutzers an.
  • -p: Zeigt die Prozesse an, die vom Benutzer ausgeführt werden.

Beispiele

Angenommen, du möchtest detaillierte Informationen über den Benutzer "john" anzeigen. So kannst du vorgehen:

finger -l john

Dadurch wird eine Ausgabe wie diese angezeigt:

Login: john     Name: John Doe
Directory: /home/john
Shell: /bin/bash
On since Thu Sep 15 15:34 (PDT) on pts/0
Idle since Thu Sep 15 16:02 (PDT)
No Mail.
No Plan.

Um die Mailbox-Nachrichten von "john" anzuzeigen, kannst du den Befehl finger -m john verwenden.

Weitere Optionen

Der Befehl finger bietet weitere Optionen, mit denen du die angezeigten Informationen anpassen kannst:

  • -s: Zeigt nur den Anmeldestatus an.
  • -a: Zeigt alle Benutzer an, die derzeit angemeldet sind.
  • -g: Sucht nach Benutzern mit einem bestimmten Gruppennamen.
  • -f: Sucht nach Benutzern mit einem bestimmten vollständigen Namen.

Verwendung mit Skripten

Der Befehl finger kann auch in Skripten verwendet werden, um Benutzerinformationen automatisiert abzurufen. Dies kann für Aufgaben wie die Überwachung von Benutzeraktivitäten oder die Bereitstellung von Benutzerberichten nützlich sein.

Best Practices

Bei der Verwendung des Befehls finger solltest du folgende Best Practices beachten:

  • Sei vorsichtig bei der Anzeige von Informationen über andere Benutzer.
  • Verwende die Option -a mit Bedacht, da dadurch eine große Menge an Informationen angezeigt werden kann.
  • Verwende Skripts, um die Benutzerverwaltung zu automatisieren und die Effizienz zu steigern.

Auflistung inaktiver oder gelöschter Benutzer

Wie man inaktive Benutzer auflistet

Inaktive Benutzer sind solche, die seit einem bestimmten Zeitraum nicht mehr bei ihrem System angemeldet waren. Um sie aufzulisten, kannst du den Befehl last -w verwenden:

last -w -n 10  # listet inaktive Nutzer der letzten 10 Tage auf

Wie man gelöschte Benutzer auflistet

Gelöschte Benutzer sind solche, deren Benutzerkonto aus dem System entfernt wurde. Um sie aufzulisten, kannst du den Befehl find verwenden:

find /home -type d -printf '%P\n'  # listet Verzeichnisse gelöschter Nutzer auf, die im /home-Verzeichnis angelegt waren

Wie man gelöschte Benutzer anhand ihrer UID auflistet

Alternativ kannst du gelöschte Benutzer auch anhand ihrer User ID (UID) auflisten. Hierfür verwendest du den Befehl grep:

grep -R -i "uid=1000" /etc/passwd  # listet Nutzer mit der spezifischen UID '1000' auf

Weitere Überlegungen

Beim Auflisten inaktiver oder gelöschter Benutzer ist es wichtig, folgende Überlegungen zu berücksichtigen:

  • Regelmäßige Überwachung: Überwache dein System regelmäßig, um inaktive oder gelöschte Benutzer zu identifizieren und entsprechend darauf zu reagieren.
  • Sicherheit: Stelle sicher, dass du die Berechtigungen hast, um inaktive oder gelöschte Benutzer aufzulisten.
  • Datenschutz: Gehe sensibel mit den Daten inaktiver oder gelöschter Benutzer um und lösche sie sicher, wenn sie nicht mehr benötigt werden.

Auflistung von Benutzern und ihren Gruppenmitgliedschaften

Neben dem Anzeigen der grundlegenden Benutzerinformationen kannst du auch die Gruppenmitgliedschaften deiner Benutzer auflisten. Dies kann hilfreich sein, um die Berechtigungen und den Zugriff der Benutzer auf Ressourcen zu verstehen.

groups-Befehl

Der groups-Befehl ist ein praktisches Tool zum Auflisten der Gruppenmitgliedschaften eines bestimmten Benutzers.

Syntax

groups [OPTIONEN] BENUTZERNAME

Optionen

  • -a: Alle Gruppenmitgliedschaften, einschließlich der indirekten, auflisten
  • -m: Nur die primäre Gruppenmitgliedschaft auflisten

Beispiel

Um die Gruppenmitgliedschaften des Benutzers jdoe aufzulisten, führe Folgendes aus:

groups jdoe

Dies gibt eine Ausgabe wie die folgende zurück:

jdoe : users staff sudo

/etc/passwd-Datei

Die /etc/passwd-Datei enthält Informationen über alle Benutzer im System, einschließlich ihrer Gruppenmitgliedschaft.

Syntax

Öffne die /etc/passwd-Datei in einem Texteditor.

Beispiel

Suche nach der Zeile, die dem Benutzer jdoe entspricht:

jdoe:x:1000:1000:John Doe:/home/jdoe:/bin/bash

Das dritte Feld (1000) repräsentiert die Gruppen-ID der primären Gruppe des Benutzers. Das vierte Feld (1000) repräsentiert die Gruppen-ID der sekundären Gruppen des Benutzers.

getent-Befehl

Der getent-Befehl kann auch verwendet werden, um Gruppenmitgliedschaften aufzulisten.

Syntax

getent group BENUTZERNAME

Beispiel

Um die Gruppenmitgliedschaften des Benutzers jdoe aufzulisten, führe Folgendes aus:

getent group jdoe

Dies gibt eine Ausgabe wie die folgende zurück:

jdoe:users:100
jdoe:staff:101
jdoe:sudo:102

Best Practices für die Benutzerverwaltung unter Linux

Die Implementierung solider Best Practices für die Benutzerverwaltung ist entscheidend für die Aufrechterhaltung der Sicherheit und Kontrolle über dein Linux-System. Hier sind einige wichtige Richtlinien, die du beachten solltest:

Benutzerberechtigungen minimieren

Weise Benutzern nur die Berechtigungen zu, die sie für ihre Aufgaben unbedingt benötigen. Vermeide es, Benutzern "root"-Zugriff zu gewähren, es sei denn, dies ist unbedingt erforderlich.

Regelmäßige Überprüfungen durchführen

Überprüfe regelmäßig deine Benutzerliste, um inaktive oder nicht mehr benötigte Konten zu identifizieren. Entferne diese Konten, um unbefugten Zugriff zu verhindern.

Sichere Passwörter erzwingen

Setze starke Passwortrichtlinien durch, einschließlich der Verwendung von Groß- und Kleinbuchstaben, Sonderzeichen und Mindestlängen. Ermutige Benutzer, ihre Passwörter regelmäßig zu ändern.

Zugriffskontrolle implementieren

Verwende Tools wie sudo und SELinux, um den Zugriff auf sensible Befehle und Dateien zu beschränken. Gewähre Benutzern nur die Berechtigungen, die sie benötigen, um ihre Aufgaben auszuführen.

Regelmäßige Sicherheitsaudits durchführen

Führe regelmäßig Sicherheitsaudits durch, um Schwachstellen in deiner Benutzerverwaltungskonfiguration zu identifizieren. Überprüfe Protokolle auf verdächtige Aktivitäten und aktualisiere dein System regelmäßig mit Sicherheitspatches.

Zentralisierte Benutzerverwaltung verwenden (optional)

Wenn du mehrere Linux-Systeme verwendest, erwäge die Verwendung eines zentralisierten Benutzerverwaltungssystems wie LDAP oder Active Directory. Dies vereinfacht die Verwaltung von Benutzern und ihren Berechtigungen über mehrere Systeme hinweg.

Schulung und Sensibilisierung

Stelle sicher, dass alle Benutzer in Best Practices für die Benutzerverwaltung geschult sind. Ermutige sie, verdächtige Aktivitäten zu melden und sich vor Phishing-Angriffen zu schützen.

Compliance und rechtliche Aspekte beachten

Befolge alle relevanten Compliance- und rechtlichen Anforderungen für die Benutzerverwaltung in deiner Organisation. Dies kann die Aufbewahrung von Benutzerdaten, die Einrichtung von Audit-Trails und die Einhaltung von Datenschutzbestimmungen beinhalten.

Schreibe einen Kommentar