Sicherheit

Wo und wie werden Passwörter unter Linux gespeichert?

Wo und wie werden Passwörter unter Linux gespeichert?
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 in das System verifiziert 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 Login-Benutzers 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, wird das eingegebene Passwort mit einem Eintrag in verschiedenen Dateien des Verzeichnisses '/etc' verglichen.

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:

$ cat /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/passwd

Die obige Syntax ändert sich in die folgende Form:

$ grep kbuzdar /etc/passwd


Oder

$ grep -w '^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 -l /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 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:

#!/bin/bash
# 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:

$ sudo katze /etc/shadow

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.

Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...
HD-Remastered-Spiele für Linux, die noch nie zuvor eine Linux-Version hatten
Viele Spieleentwickler und -herausgeber entwickeln HD-Remaster alter Spiele, um die Lebensdauer des Franchise zu verlängern. Bitte Fans, die Kompatibi...