Wo und wie werden Passwörter unter Linux gespeichert?

Where How Are Passwords Stored Linux



Der Benutzername mit entsprechendem Passwort für ein bestimmtes Konto ist die primäre Voraussetzung, über die ein Benutzer auf ein Linux-System zugreifen kann. Das Passwort aller Benutzerkonten wird in einer Datei oder Datenbank gespeichert, damit ein Benutzer während des Anmeldeversuchs im System überprüft werden kann. Jeder Benutzer verfügt nicht über ausreichende Fähigkeiten und Kenntnisse, um diese Datei auf seinem System zu finden. Wenn Sie jedoch Zugriff auf die Datenbank oder eine Datei erhalten, die alle Passwörter des Anmeldebenutzers enthält, können Sie problemlos auf das Linux-System zugreifen. Wenn ein Benutzer unter Linux einen Benutzernamen und ein Passwort für die Anmeldung eingibt, prüft er das eingegebene Passwort mit einem Eintrag in verschiedenen Dateien des Verzeichnisses ‚/etc‘.

Die /etc/passwd-Dateien enthalten alle wichtigen Informationen, die für die Benutzeranmeldung erforderlich sind. Um es einfacher zu erklären, speichert die Datei /etc/passwd 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 Informationen zu Benutzername, Passwort, UID (Benutzer-ID), GID (Gruppen-ID), Shell und Home-Verzeichnis. Diese Datei sollte über Leseberechtigungen verfügen, da viele Befehlszeilendienstprogramme verwendet werden, um die Benutzer-IDs dem Benutzernamen zuzuordnen. Sollte jedoch nur über eingeschränkte Schreibzugriffsberechtigungen für Superuser- oder Root-Benutzerkonten verfügen.







In diesem Artikel wird gezeigt, wie und wo Sie die Passwörter von Systembenutzerkonten in der Linux-Distribution speichern können. Wir haben alle Demonstrationen auf dem Ubuntu 20.04-System implementiert. 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 : Zeichen getrennt.
Wenn Sie den folgenden Befehl ausführen, sehen Sie jeden Dateieintrag der Datei /etc/passwd:





$Katze /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 repräsentiert den Namen des Benutzers. Die Länge des Benutzernamensfeldes ist zwischen 1-32 Zeichen definiert. Dies wird verwendet, wenn sich ein Benutzer am System anmeldet. Im obigen Beispiel ist „khuzdar“ der Benutzername.
Passwort: Im obigen Beispiel zeigt das x-Zeichen 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. Die weiteren UIDs von 100-999 werden Systemadministratorkonten oder -gruppen zugewiesen. Im obigen Screenshot lautet 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 wird als Schale bezeichnet. 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 einfach einen bestimmten Benutzer suchen und unsere Zeit sparen:

$GriffNutzername/etc/passwd

Die obige Syntax ändert sich in die folgende Form:

$Griffquietschend/etc/passwd


Oder

$Griff -in '^kbuzdar' /etc/passwd

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:

$ls -das /etc/passwd

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 die unten geschriebenen while-Schleifenbefehle auf dem Terminal ausführen.
Erstellen Sie eine Textdatei und fügen Sie den folgenden Code darin ein:

#!/bin/bash
# insgesamt sieben Felder aus /etc/passwd gespeichert als $f1,f2...,$f7

während IFS=:lesen -Rf1 f2 f3 f4 f5 f6 f7
tun
rauswerfen 'Benutzer$ f1verwenden$f7Shell und speichert Dateien in$f6Verzeichnis.'
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.sh‘.

Führen Sie nun die obige Datei mit dem folgenden Befehl aus:

$bashreadfile.sh

/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:

$sudo Katze /etc/Schatten

Sie können alle Passwörter im verschlüsselten Format sehen:

Abschluss

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 Schreibberechtigung. 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 zur Gruppe des Benutzers zu erhalten.