Die Datei /etc/shadow
gehört mit den Dateien /etc/passwd
und /etc/group
zum Benutzerverwaltungssystem. Die Datei /etc/shadow
bildet hierbei die Kernkomponente bzgl. der Passwörter. Hier werden neben dem gehashten Passwort auch Informationen bzgl. der Passwortrichtlinien pro User untergebracht. Früher wurde das gehashte Passwort zusammen mit dem Useraccout in der Datei /etc/passwd
untergebracht, was allerdings zunehmend als Sicherheitsproblem wahrgenommen wurde, weil die /etc/passwd
für jeden User lesbar sein muss. Deshalb wurden die sicherheistrelevanten Informationen in die /etc/shadow
verlegt, welche nur vom Benutzer root
gelesen werden darf.
Der Aufbau der Datei »/etc/shadow«:
pronto:$1$hCmMb2Ix$bAGVIJKYfBKavZt5Ee9ZL/:15050:0:99999:7:::
Der verwendete Algorithmus, das verwendete Salt und der Passworthash werden mit einem $
-Zeichen als Delimiter getrennt, bei den übrigen Werten wird der Doppelpunkt (:
) als Delimiter verwendet.
Wert | Parameter | Bedeutung |
---|---|---|
pronto | Entspricht dem Username, wie er auch in der /etc/passwd zu finden ist | |
1 | ENCRYPT_METHOD | Entspricht dem Algorithmus, welcher für die Erstellung des Hashwertes verwendet wurde. 1 steht für md5 ; 2 → Blowfish ; 5 → SHA-256 ; 6 → SHA-512 als verwendeten Algorithmus. |
hCmMb2Ix | Dies ist das Salt welches verwendet wird, um dem Algorithmus zum Erstellen des Hash Wertes eines Passworts eine zufällige Komponente mitzugeben. Andernfalls würde der Algorithmus bei gleichem Passwort auch immer den gleichen Hash Wert erzeugen, was ebenfalls ein Sicherheitsproblem wäre. | |
bAGVIJKYfBKavZt5Ee9ZL/ | Der eigentliche Hashwert des Passworts | |
15050 | Die Anzahl der Tage seit dem 01.01.1970 wo das Passwort zum letzten Mal geändert wurde. | |
0 | PASS_MAX_DAYS | Die Anzahl der Tage bevor das Passwort geändert werden kann. Eine 0 bedeutet, es kann jederzeit geändert werden. |
99999 | PASS_MIN_DAYS | Die Anzahl der Tage nachdem das Passwort geändert werden muss. Eine 99999 bedeutet, dass das Passwort nie abläuft. |
7 | PASS_WARN_AGE | Die Anzahl der Tage nachdem ein Account deaktiviert wird, wenn der ggf. eingestellte Zeitraum für den Passwortwechsel nicht eingehalten wurde. |
:: | Die Anzahl der Tage, welcher der Account bereits gesperrt ist. Hier im Beispiel ein leeres Feld welches signalisiert, dass der Account aktiv ist. | |
:: | Ein Reservefeld |
Die Parameter ENCRYPT_METHOD
, PASS_MAX_DAYS
, PASS_MIN_DAYS
, PASS_WARN_AGE
werden in der Datei /etc/login.defs
eingestellt.
--Pronto