Die /etc/passwd-Dateien enthalten alle wichtigen Informationen, die für die Benutzeranmeldung erforderlich sind. Um es in einfacheren Worten zu erklären, die Datei /etc/passwd speichert die Kontodaten des Benutzers. Diese Datei ist eine reine Textdatei, die eine vollständige Liste aller Benutzer auf Ihrem Linux-System enthält. Es enthält die Informationen über Benutzername, Passwort, UID (Benutzer-ID), GID (Gruppen-ID), Shell und Home-Verzeichnis. Diese Datei sollte über Leseberechtigungen verfügen, da viele Befehlszeilenprogramme verwendet werden, um die Benutzer-IDs dem Benutzernamen zuzuordnen. Sollte jedoch nur eingeschränkte Schreibzugriffsberechtigungen für Superuser- oder Root-Benutzerkonten haben.
In diesem Artikel wird gezeigt, wie und wo Sie die Passwörter von Systembenutzerkonten in einer Linux-Distribution speichern können. Wir haben alle Demonstrationen auf Ubuntu 20 implementiert.04-System. Sie können jedoch die Datei /etc/passwd auf jeder Linux-Distribution finden.
Voraussetzungen
Sie sollten über Root-Rechte verfügen, um Verwaltungsbefehle auszuführen.
Grundlegendes Verständnis der Datei /etc/passwd
Die Datei /etc/passwd enthält die Informationen über das Benutzerkonto Ihres Systems. Alle gespeicherten Felder sind vom Doppelpunkt „:“ getrennt.
Wenn Sie den folgenden Befehl ausführen, sehen Sie jeden Dateieintrag der Datei /etc/passwd:
Der obige Befehl listet alle Benutzer Ihres Linux-Systems auf.
Der folgende Formattyp wird auf Ihrem Terminalbildschirm angezeigt:
Details zum Format von /etc/passwd-Feldern
Aus dem obigen Bild:
Nutzername: Feld eins steht für den Namen des Benutzers. Die Länge des Benutzernamensfelds ist zwischen 1-32 Zeichen definiert. Dies wird verwendet, wenn sich ein Benutzer beim System anmeldet. Im obigen Beispiel ist 'khuzdar' der Benutzername.
Passwort: Im obigen Beispiel zeigt das Zeichen „x“ an, dass das Passwort in verschlüsselter Form in der Datei /etc/shadow gespeichert ist.
Benutzer-ID (UID): Die Benutzer-ID muss jedem Benutzer separat zugewiesen werden. Die UID Null wird dem Root-Benutzer zugewiesen und Benutzer-IDs von 1-99 werden vordefinierten oder Standardkonten zugewiesen assigned. Die weiteren UIDs von 100-999 werden Systemadministratorkonten oder -gruppen zugewiesen. Im obigen Screenshot ist die Benutzer-ID 1001.
Gruppen-ID (GID): Das nächste Feld repräsentiert die Gruppen-ID. Die GID wird in der Datei /etc/group gespeichert. Basierend auf dem obigen Beispiel gehört der Benutzer zur Gruppen-ID 1001.
Informationen zur Benutzer-ID: Das folgende Feld ist für Kommentare vorgesehen. In diesem Feld können Sie einige zusätzliche Informationen zum angegebenen Benutzer hinzufügen, z. B. den vollständigen Namen des Benutzers, die Telefonnummer usw. Im obigen Beispiel wird jedoch keine Telefonnummer vom Benutzer angegeben.
Heimatverzeichnis: Dieses Feld zeigt den Speicherort des Home-Verzeichnisses an, das dem aktuellen Benutzer zugewiesen ist. Wenn das angegebene Verzeichnis nicht existiert, wird „/“ angezeigt. Das obige Bild zeigt den Standort des markierten Benutzers im Home-Verzeichnis, nämlich home/kbuzdar.
Befehl // Shell: Der absolute Standardpfad einer Shell oder eines Befehls ist /bin/bash. Dies ist als die Schale bekannt. Zum Beispiel sysadmin mit der nologin-Shell. Es verhält sich wie die Ersatz-Shell für die Systembenutzerkonten. Wenn sich die Shell im Pfad zu /sbin/nologin befindet und der Benutzer sich direkt am Linux-System anmelden möchte, wird die /sbin/nologin-Shell die Verbindung schließen oder deaktivieren.
Benutzer in der Datei /etc/passwd suchen
Sie können mit der Datei /etc/passwd nach einem bestimmten Benutzer suchen, indem Sie den Befehl grep verwenden. Zum Beispiel möchten wir den Benutzernamen 'kbuzdar' aus der Datei /etc/passwd mit der folgenden Syntax suchen, dann können wir ganz einfach einen bestimmten Benutzer suchen und unsere Zeit sparen:
$ grep-Benutzername /etc/passwdDie obige Syntax ändert sich in die folgende Form:
$ grep kbuzdar /etc/passwd
Oder
Berechtigungen für die Datei /etc/passwd anzeigen
Wie oben erwähnt, sollten alle anderen Benutzer außer root in der Lage sein, die Berechtigungen für die Datei /etc/passwd zu lesen, und der Besitzer muss Superuser oder root sein.
Geben Sie Folgendes ein, um die Leseberechtigungen für die Datei zu überprüfen:
Das folgende Ausgabebeispiel wird auf dem Terminal angezeigt:
/etc/passwd-Datei lesen
Sie können die Datei /etc/passwd auf Ihrem Linux-System lesen, indem Sie das folgende Bash-Skript verwenden oder direkt ausführen, was unten geschrieben ist, während Schleifenbefehle auf dem Terminal.
Erstellen Sie eine Textdatei und fügen Sie den folgenden Code darin ein:
# insgesamt sieben Felder aus /etc/passwd gespeichert als $f1,f2… ,$f7
während IFS=: lese -r f1 f2 f3 f4 f5 f6 f7
tun
echo "Benutzer $f1 verwendet die $f7-Shell und speichert Dateien im $f6-Verzeichnis."
getan < /etc/passwd
Mit der while-Schleife werden alle sieben Felder gelesen und dann iterativ der Dateiinhalt auf dem Terminal angezeigt.
Speichern Sie die obige Datei unter dem Namen 'readfile.Sch'.
Führen Sie nun die obige Datei mit dem folgenden Befehl aus:
$ bash readfile.Sch
/etc/shadow-Datei durchsuchen
Die Datei /etc/shadow enthält alle Ihre verschlüsselten Passwörter, die in dieser Datei gespeichert sind und nur für Root-Benutzer lesbar sind.
Führen wir den folgenden Befehl aus, um den Inhalt anzuzeigen:
Sie können alle Passwörter im verschlüsselten Format sehen:
Fazit
Wir haben aus dem obigen Artikel alle Kontodetails und Passwörter des Benutzers gesehen, die in der Datei /etc/passwd im Linux-System gespeichert sind. Sie können diese Datei lesen, aber nur Root-Benutzer haben die „Schreibrechte“. Darüber hinaus haben wir auch alle verschlüsselten Passwörter gesehen, die in der Datei /etc/shadow gespeichert sind. Sie können auch die Datei /etc/group durchsuchen, um Details über die Gruppe des Benutzers zu erhalten.