Die Datei /etc/shadow speichert die verschlüsselten Passwörter aller Benutzerkonten auf der Kommandozeile. Sie ergänzt die Datei /etc/passwd und ist aus Sicherheitsgründen nur für den Root-Benutzer lesbar.

Warum /etc/shadow?

Früher wurden Passwort-Hashes direkt in /etc/passwd gespeichert. Da diese Datei für alle Benutzer lesbar sein muss (Programme benötigen Zugriff auf Benutzerinformationen), war das ein Sicherheitsrisiko. Die Lösung: Passwörter wanderten in die separate Datei /etc/shadow mit eingeschränkten Leserechten.

Die Datei gehört dem Benutzer root und der Gruppe shadow. Die Berechtigung ist typischerweise 640 (Lesen für root und shadow-Gruppe).

Inhalt anzeigen

Da nur Root Zugriff hat, benötigst du sudo:

sudo cat /etc/shadow

Die erste Zeile gehört in der Regel dem Root-Benutzer, gefolgt von System- und regulären Benutzerkonten.

Aufbau der Einträge

Jede Zeile repräsentiert ein Benutzerkonto. Die neun Felder sind durch Doppelpunkte getrennt:

mark:$6$.n.:17736:0:99999:7:::
FeldBedeutung
1Benutzername
2Verschlüsseltes Passwort
3Letzte Passwortänderung (Tage seit 1.1.1970)
4Mindestalter des Passworts (Tage)
5Maximales Passwortalter (Tage)
6Warnfrist vor Ablauf (Tage)
7Inaktivitätsfrist nach Ablauf (Tage)
8Ablaufdatum des Kontos (Tage seit 1.1.1970)
9Reserviert (unbenutzt)

Das Passwort-Feld

Das verschlüsselte Passwort folgt dem Format $typ$salt$hash:

PräfixHash-Algorithmus
$1$MD5 (veraltet)
$2a$Blowfish
$2y$Eksblowfish
$5$SHA-256
$6$SHA-512 (Standard)

Sonderfälle im Passwort-Feld:

  • * oder ! - Anmeldung per Passwort deaktiviert (SSH-Keys funktionieren weiterhin)
  • !! - Konto wurde erstellt, aber noch kein Passwort gesetzt
  • Leer - Kein Passwort erforderlich (Sicherheitsrisiko)

Beispiel analysieren

webuser:$6$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::

Dieser Eintrag bedeutet:

  • Benutzername: webuser
  • Passwort: SHA-512 verschlüsselt
  • Letzte Änderung: Tag 18009 (23. April 2019)
  • Mindestalter: 0 (sofortige Änderung erlaubt)
  • Maximales Alter: 120 Tage
  • Warnfrist: 7 Tage vor Ablauf
  • Inaktivitätsfrist: 14 Tage nach Ablauf wird das Konto deaktiviert
  • Ablaufdatum: Keines gesetzt

Passwort-Einstellungen ändern

Bearbeite /etc/shadow nie direkt. Verwende stattdessen die vorgesehenen Befehle:

Passwort ändern:

sudo passwd benutzername

Passwort-Richtlinien anzeigen:

sudo chage -l benutzername

Maximales Passwortalter auf 90 Tage setzen:

sudo chage -M 90 benutzername

Warnfrist auf 14 Tage setzen:

sudo chage -W 14 benutzername

Konto zu einem bestimmten Datum ablaufen lassen:

sudo chage -E 2025-12-31 benutzername

Zusammenfassung

Die Datei /etc/shadow trennt sensible Passwort-Informationen von den allgemein lesbaren Benutzerdaten in /etc/passwd. Sie speichert verschlüsselte Passwörter und Richtlinien wie Ablaufzeiten und Warnfristen. Für Änderungen verwendest du die Befehle passwd und chage.