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.