Die /etc/shadow-Datei enthält verschlüsselte Passwörter für Benutzerkonten auf dem Linux-System. Im Gegensatz zur/etc/passwd-Datei, die grundlegende Informationen über Benutzerkonten enthält, speichert die /etc/shadow-Datei die Passwörter (genauer gesagt den Hash des Passworts), das Datum der letzten Änderung und das Ablaufdatum und Informationen zur Passwort-Policy. Die Datei ist nur User mit Root-Rechten les- und schreibbar, was sicherstellt, dass nur privilegierte Benutzer Zugriff auf die darin enthaltenen Informationen haben.

    Syntax

    Ein Eintrag in der /etc/shadow könnte wie folgt aussehen:

    root:$6$salt$encryptedpassword:18070:0:99999:7:::

    Ein Eintrag aus sieben Felder, die durch Doppelpunkte getrennt sind. Diese Felder enthalten die folgenden Informationen:

    1. root (Benutzername): Der erste Eintrag ist der Benutzername, für den das Passwort gilt. In diesem Fall handelt es sich um den Root-Benutzer, der die höchsten Zugriffsrechte auf einem Linux-System hat.
    2. $6$salt$encryptedpassword (Verschlüsseltes Passwort): Das zweite Feld enthält den verschlüsselten Hash-Wert des Benutzerpassworts. Das Passwort wird mit einem bestimmten Algorithmus (hier SHA-512) und einem zufälligen Salt-Wert verschlüsselt. Das genaue Verschlüsselungsverfahren kann durch den Präfix vor dem Salt-Wert bestimmt werden.
    3. 18070 (Datum der letzten Passwortänderung): Das dritte Feld gibt das Datum der letzten Passwortänderung an. Es wird als Anzahl der Tage seit dem 1. Januar 1970 dargestellt. In diesem Beispiel bedeutet dies, dass das Passwort vor 18.070 Tagen zuletzt geändert wurde, also am 7. Mai 2019.
    4. 0 (Minimale Gültigkeitsdauer): Das vierte Feld gibt an, wie viele Tage das Passwort mindestens gültig sein muss, bevor es geändert werden kann. Ein Wert von 0 bedeutet, dass es keine Einschränkung gibt.
    5. 99999 (Maximale Gültigkeitsdauer): Das fünfte Feld gibt die maximale Gültigkeitsdauer des Passworts an. Nach Ablauf dieses Zeitraums muss der Benutzer sein Passwort ändern.
    6. 7 (Warnzeit vor Ablauf): Das sechste Feld gibt die Anzahl der Tage an, bevor das Passwort abläuft, zu denen der Benutzer gewarnt wird. In diesem Beispiel erhält der Benutzer 7 Tage vor dem Ablauf eine Warnung.
    7. leer (Inaktivitätszeit): Das siebte Feld gibt an, wie viele Tage ein Konto inaktiv sein kann, bevor es deaktiviert wird. In diesem Fall ist das Feld leer, was bedeutet, dass diese Funktion nicht aktiviert ist.
    8. leer (Account-Ablaufdatum): Das achte Feld gibt das Datum an, an dem das Benutzerkonto abläuft und deaktiviert wird. Ein leerer Wert bedeutet, dass das Konto nicht automatisch abläuft.

    Shadow-Passwort-Methoden

    Die /etc/shadow verwendet sogenannte “Shadow-Passwort-Methoden” um die Passwörter sicher zu speichern. Diese Methoden sorgen dafür, dass die Passwörter nicht in Klartextform in der /etc/shadow-Datei gespeichert werden.

    Eine der gebräuchlichsten Methoden ist die Verwendung von Hashfunktionen, wie beispielsweise SHA-512. Bei diesem Verfahren wird das Passwort mit einem Salt-Wert (zufällig generierte Zeichenfolgen) kombiniert und dann durch die Hashfunktion geleitet, um einen eindeutigen Hash-Wert zu erzeugen. Der Salt-Wert ist ein zufällig generierter Wert, der für jedes Benutzerkonto einzigartig ist und zur Erhöhung der Sicherheit beiträgt.

    Der generierte Hash-Wert wird dann in der /etc/shadow-Datei gespeichert. Wenn ein Benutzer sein Passwort eingibt, wird das eingegebene Passwort mit dem Salt-Wert kombiniert und durch die gleiche Hashfunktion geleitet. Der erzeugte Hash-Wert wird dann mit dem in der /etc/shadow-Datei gespeicherten Hash-Wert verglichen. Wenn die beiden Hash-Werte übereinstimmen, wird das eingegebene Passwort als korrekt akzeptiert.

    Links