So listen Sie Benutzer unter Linux auf

Veröffentlicht: 2022-06-25
Linux-Laptop mit einer Bash-Eingabeaufforderung
fatmawati achmad zaenuri/Shutterstock.com

Linux ist ein Mehrbenutzer-Betriebssystem, daher ist das Erstellen zahlreicher Benutzerkonten einfach. Mit der Zeit verliert man leicht den Überblick darüber, welche Konten benötigt werden. Das Auflisten von Benutzerkonten hilft Ihnen bei der Verwaltung.

Benutzerkonten

Technologische Fortschritte bringen oft ihre eigenen neuen Probleme mit sich. Sobald Computer mehrere Benutzer unterstützen konnten, wurde die Notwendigkeit deutlich, die Arbeit jeder Person von allen anderen abzugrenzen und zu kapseln. Dies führte zum Konzept der Benutzerkonten. Jeder Benutzer hat eine benannte ID und ein Passwort. Dies sind die Anmeldeinformationen, mit denen sie sich bei ihrem Konto anmelden können. Ihre Dateien werden in einem Bereich aufbewahrt, der für jeden Benutzer privat ist.

Auf einem ausgelasteten System kann man leicht aus den Augen verlieren, welche Konten Sie erstellt haben und welche nicht mehr benötigt werden. Aus Sicherheitsgründen ist es eine schlechte Praxis, Benutzerkonten, die Sie nicht mehr benötigen, auf Ihrem Computer zu konfigurieren und zugänglich zu halten. Sie sollten diese Benutzer entfernen.

Auch wenn Sie keine anderen Personen haben, die Ihren Computer verwenden, haben Sie möglicherweise einige Konten erstellt, nur um zu lernen, wie es geht, oder um Verwaltungsprozesse zu lernen und zu üben.

So löschen Sie einen Benutzer unter Linux (und entfernen alle Spuren)
RELATED So löschen Sie einen Benutzer unter Linux (und entfernen alle Spuren)

Der erste Schritt besteht darin, die Benutzerkonten aufzulisten, die auf Ihrem Computer konfiguriert sind. Auf diese Weise können Sie sie überprüfen und eine Entscheidung treffen, die gelöscht werden kann. Es gibt mehrere Methoden, um Benutzer aufzulisten. Unabhängig davon, welche Distribution Sie verwenden, sollten diese Techniken für Sie funktionieren, ohne dass Sie Anwendungen oder Dienstprogramme installieren müssen.

Listen Sie Benutzer mit dem cat-Befehl auf

Eine Liste der konfigurierten Benutzer wird zusammen mit Informationen zu jedem Benutzer in der Datei „/etc/passwd“ geführt. Dies ist eine Textdatei, die normale Benutzer im Terminalfenster auflisten können. Sie müssen sudo nicht verwenden, um in die Datei „/etc/passwd“ zu schauen.

So ändern Sie Benutzerdaten mit chfn und usermod unter Linux
RELATED So ändern Sie Benutzerdaten mit chfn und usermod unter Linux

Wir können den cat -Befehl verwenden, um den Inhalt der Datei „/etc/passwd“ an das Terminalfenster zu senden. Dadurch wird der gesamte Inhalt der Datei aufgelistet. Das bedeutet, dass Sie auch die Einträge für Benutzerkonten sehen, die Prozessen und dem System gehören, nicht Personen.

 cat /etc/passwd 

Senden des Inhalts der Datei /etc/passwd an das Terminalfenster mit cat

Für jedes Benutzerkonto wird eine Reihe dichter Informationen gemeldet.

Der Inhalt der Datei /etc/passwd

Die Informationen für das Benutzerkonto „dave“ enthalten diese Informationen, mit Doppelpunkten „ : “ dazwischen.

  • dave : Der Name des Benutzerkontos. Normalerweise der Name der Person, der das Konto gehört.
  • x : Früher enthielt dies das Passwort für das Konto. Heutzutage werden Passwörter in der Datei „/etc/shadow“ gespeichert. Das „x“ bedeutet, dass sich das Passwort in dieser Datei befindet.
  • 1000 : Die Benutzer-ID für dieses Konto. Alle Benutzerkonten haben eine eindeutige numerische ID. Reguläre Benutzerkonten beginnen normalerweise bei 1000, wobei jedes neue Konto die nächste freie ID verwendet, z. B. 1001, 1002 usw.
  • 1000 : Die Gruppen-ID der Standardgruppe, zu der der Benutzer gehört. Unter normalen Umständen hat die Standardgruppe denselben Wert wie die Benutzer-ID.
  • dave,,, : Eine Sammlung optionaler Zusatzinformationen über den Benutzer. Dieses Feld enthält Daten mit Kommas „ , “ dazwischen. Sie können Dinge wie den vollständigen Namen des Benutzers, seine Büronummer und seine Telefonnummer enthalten. Der Eintrag für das Benutzerkonto „mary“ zeigt, dass ihr vollständiger Name Mary Quinn ist.
  • /home/dave : Der Pfad zum Home-Ordner des Benutzers.
  • /bin/bash : Die Standard-Shell für diesen Benutzer.

Wenn wir die Ausgabe dieses Befehls durch das Dienstprogramm wc leiten und die Option -l (Zeilen) verwenden, können wir die Zeilen in der Datei zählen. Dadurch erhalten wir die Anzahl der auf diesem Computer konfigurierten Konten.

 cat /etc/passwort | WC-l 

Zählen der Anzahl der Konten in der Datei /etc/passwd

Diese Zahl umfasst die von Anwendungen erstellten Systemkonten und Benutzer. Auf diesem Computer sind ungefähr 400 normale Benutzer konfiguriert. Ihr Ergebnis wird wahrscheinlich viel geringer sein.

Bei so vielen Konten ist es bequemer, less zu verwenden, um die Datei „/etc/passwd“ anzuzeigen.

 weniger /etc/passwd 

Öffnen der /etc/passwd-Datei in weniger

Mit less können Sie auch innerhalb der Ausgabe suchen, wenn Sie nach einem bestimmten Benutzerkonto suchen möchten.

Suche nach dem Mary-Konto in der Datei /etc/passwd in less

Der awk-Befehl

Mit dem awk Befehl können wir nur den Benutzernamen anzeigen. Dies kann nützlich sein, wenn Sie ein Skript schreiben, das mit vielen Benutzerkonten etwas tun muss. Das Auflisten der Benutzerkontonamen und deren Umleitung in eine Textdatei kann viel Zeit sparen. Alles, was Sie dann tun müssen, ist, den Rest des Befehls zu kopieren und in jede Zeile einzufügen.

So verwenden Sie den awk-Befehl unter Linux
VERWANDTE Verwendung des awk-Befehls unter Linux

Wir weisen awk an, den Doppelpunkt „:“ als Feldtrenner zu verwenden und das erste Feld auszugeben. Wir verwenden die Option -F (Feldtrennzeichen).

 awk -F: '{print $1}' /etc/passwd 

Ein awk-Befehl, um nur die Benutzernamen aus der /etc/passwd

Die Benutzerkontonamen werden ohne andere Kontoinformationen in das Terminalfenster geschrieben.

Die im Terminalfenster angezeigten Benutzerkontonamen

Der Cut-Befehl

Dasselbe können wir mit dem cut Befehl erreichen. Wir müssen die Option -d (Trennzeichen) verwenden und sie bitten, nur das erste Feld auszuwählen, indem wir die Option -f (Felder) verwenden.

 cutr -d: -f1 

Verwenden des cut-Befehls, um nur die Benutzernamen aus der /etc/passwd-Datei anzuzeigen

Dies listet alle Benutzerkonten auf, einschließlich des Systems und anderer nicht menschlicher Konten.

Der compgen-Befehl

Der Befehl compgen kann mit der Option -u (Benutzer) verwendet werden, um die Benutzerkonten aufzulisten. Wir leiten die Ausgabe durch den column , um die Benutzerkonten in Spalten aufzulisten, anstatt in einer langen Liste mit einem einzelnen Benutzernamen pro Zeile.

 compgen -u | Säule 

Verwenden der Befehle compgen und column zum Auflisten der Benutzerkontonamen aus der Datei /etc/passwd in Spalten

Auch hier gehören die ersten aufgelisteten Benutzerkonten zu Prozessen, nicht zu Menschen.

UID-MIN und UID-MAX

Benutzerkonten erhalten eine numerische ID, die wir zuvor gesehen haben. Normalerweise beginnen die regulären menschlichen Benutzerkonten bei 1000 und die nicht-menschlichen Systembenutzerkonten beginnen bei 0. Die ID des Root-Kontos ist 0.

Wenn wir die niedrigste und höchstmögliche Benutzer-ID verifizieren können, können wir diese Informationen verwenden, um die Benutzerkonten auszuwählen, die zwischen diesen beiden Werten liegen. Dadurch können wir nur die Benutzerkonten auswählen, die echten Personen gehören.

Linux verfolgt diese beiden Werte mithilfe von Konfigurationsparametern namens UID_MIN und UID_MAX . Diese werden in der Datei „/etc/login.defs“ gespeichert. Wir können diese Werte leicht mit grep sehen.

Wir werden die Option -E (erweiterte Regex) verwenden. Unser Suchstring sucht in der Datei „/etc/login.defs“ nach Zeilen, die mit „UID_MIN“ oder „UID_MAX“ beginnen. Das Caretzeichen „ ^ “ steht für den Beginn einer Zeile.

 grep -E '^UID_MIN|^UID_MAX' /etc/login.defs 

Der Bereich für Benutzer-IDs auf diesem Computer reicht von 1000 bis 60.000.

VERWANDT: So verwenden Sie reguläre Ausdrücke (Regexes) unter Linux

Der getent-Befehl

Der Befehl getent liest Informationen aus Systemdatenbanken. Wir können es anweisen, die Einträge in der Datei „/etc/passwd“ aufzulisten, indem wir „passwd“ als Parameter verwenden.

 Passwort erhalten 

Verwenden von getent, um die Datei /etc/passwd im Terminalfenster auszugeben

Dies gibt uns die gleiche Anzeige, die wir mit cat erhalten können. Aber wo getent glänzt, ist das Akzeptieren von Werten, die als „Schlüssel“ bekannt sind. Ein Schlüssel bestimmt, über welche Informationen getent berichtet. Wenn wir den Eintrag für einen einzelnen Benutzer sehen möchten, können wir seinen Benutzerkontonamen in der Befehlszeile übergeben.

 Getent passwd Sarah

Beachten Sie, dass beim Namen des Benutzerkontos zwischen Groß- und Kleinschreibung unterschieden wird.

 passwort erhalten sarah 

Auf der Suche nach einem einzelnen Benutzerkonto bei getent

Wir können auch die Ober- und Untergrenzen der Benutzerkonto-IDs übergeben, die wir sehen möchten. Um absolut alle regulären Benutzerkonten zu sehen, können wir die Werte von UID_MIN und UID_MAX .

 getent passwd {1000..60000} 

Obere und untere Konto-IDs mit getent verwenden

Das dauert einige Zeit. Schließlich kehren Sie zur Eingabeaufforderung zurück.

Der Inhalt der Datei /etc/passwd, die von getent an das Terminalfenster gesendet wird

Der Grund für die lange Ausführungszeit ist, dass getent versucht, Übereinstimmungen für alle Benutzerkontowerte bis hin zu 60000 zu finden.

Mal sehen, was die höchste Benutzerkonto-ID ist. Wir verwenden den cut -Befehl, aber dieses Mal fragen wir nach Feld drei, dem Benutzer-ID-Feld. Wir leiten die Ausgabe durch sort und verwenden die Option -g (allgemeine numerische Sortierung).

 cut -d: -f3 /etc/passwd | sortieren -g 

Der Befehl, um die Ausgabe von cut in den sort-Befehl zu leiten

Der höchste ID-Wert eines Benutzerkontos im Besitz eines Menschen ist 1401.

Eine sortierte Liste von Benutzerkonto-IDs

Die Benutzer-ID 65534 ist dem Systemkonzept „niemand“ zugewiesen.

 Passwort abrufen {65534..65534} 

Der Systembenutzer niemand mit der ID 65534

Wir wissen also, dass wir auf diesem Computer anstelle des UID_MAX Werts von 60000 einen realistischeren Wert wie 1500 verwenden können. Das wird die Dinge erheblich beschleunigen. Wir werden die Ausgabe auch durch cut leiten, um nur die Namen der Benutzerkonten zu extrahieren.

getent passwd {1000..1500} | Schnitt -d: -f1

Die Ausgabe von getent wird durch cut geleitet, um Benutzerkontonamen aufzulisten

Die Benutzer werden aufgelistet und wir kehren sofort zur Eingabeaufforderung zurück.

Anstatt die Ausgabe durch cut zu leiten, leiten wir die Ausgabe durch wc und zählen die Zeilen noch einmal. Das gibt uns die Anzahl der „echten“ Benutzerkonten.

 getent passwd {1000..1500} | WC-l 

Zählen der regulären Benutzerkonten mit getent und wc

Wir können jetzt sehen, dass es auf diesem Computer definitiv 400 konfigurierte, von Menschen besessene Benutzerkonten gibt.

Kraft und Einfachheit

Eine dieser Techniken wird Ihren Anforderungen sicherlich entsprechen, wenn Sie die Benutzerkonten auf einem Linux-Computer überprüfen müssen. Diese Befehle sollten auf allen Distributionen vorhanden sein, und keiner von ihnen erfordert sudo Zugriff, sodass sie alle für jeden Benutzer verfügbar sind.

VERWANDT: So steuern Sie den sudo-Zugriff unter Linux