So listen Sie Benutzer unter Linux auf
Veröffentlicht: 2022-06-25Linux 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.
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.
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
Für jedes Benutzerkonto wird eine Reihe dichter Informationen gemeldet.
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
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
Mit less
können Sie auch innerhalb der Ausgabe suchen, wenn Sie nach einem bestimmten Benutzerkonto suchen möchten.
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.
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
Die Benutzerkontonamen werden ohne andere Kontoinformationen in das Terminalfenster geschrieben.
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
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
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
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
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}
Das dauert einige Zeit. Schließlich kehren Sie zur Eingabeaufforderung zurück.
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 höchste ID-Wert eines Benutzerkontos im Besitz eines Menschen ist 1401.
Die Benutzer-ID 65534 ist dem Systemkonzept „niemand“ zugewiesen.
Passwort abrufen {65534..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 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
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