Shadow im Detail
Zur Navigation springen
Zur Suche springen
Allgemeines
Die Zeichen *, ! und !* im Passwortfeld der Datei /etc/shadow sehen ähnlich aus, bedeuten aber leicht unterschiedliche Zustände.
🧩 Aufbau von /etc/shadow
Eine Zeile sieht etwa so aus:
username:password:lastchg:min:max:warn:inactive:expire:reserved
Das zweite Feld (password) enthält:
- den Hash des Passworts, wenn eines gesetzt ist (z. B.
$6$abc123...) - oder ein Sperrzeichen (
*,!,!*), wenn kein Login über Passwort erlaubt ist
🔒 Bedeutung der einzelnen Zeichen
| Zeichen | Bedeutung | Technischer Effekt |
|---|---|---|
*
|
Nie ein Passwort gesetzt oder absichtlich komplett blockiert | Kein Passwort akzeptiert. Der Account ist nicht verwendbar für Passwort-Login. Typisch bei Systemkonten (daemon, nobody, www-data).
|
!
|
Passwort-Login gesperrt, aber ursprünglicher Hash bleibt erhalten | Wenn du passwd -l user verwendest, wird einfach ein ! vor den vorhandenen Hash gesetzt. So kann man das Konto später leicht mit passwd -u user wieder entsperren.
|
!*
|
Doppelt gesperrt (manuell oder durch mehrfaches Sperren) | Kommt vor, wenn man einen bereits mit * versehenen Eintrag nochmal mit passwd -l sperrt. Das Ergebnis ist !* (also ! vor dem *). Funktional identisch mit „voll gesperrt“. Kein Login möglich.
|
🧠 Beispiel zur Verdeutlichung
| Ausgang | Kommando | Ergebnis in /etc/shadow
|
Bedeutung |
|---|---|---|---|
$6$abc...
|
passwd -l user
|
!$6$abc...
|
Temporär gesperrt, Hash bleibt vorhanden |
!$6$abc...
|
passwd -u user
|
$6$abc...
|
Wieder entsperrt |
*
|
passwd -l user
|
!*
|
Schon vorher gesperrt → bleibt gesperrt |
!*
|
passwd -u user
|
*
|
Entsperren entfernt nur das führende !, bleibt blockiert
|
🧰 Praxis-Tipps
- Dauerhaft blockierte Systemkonten:
*→ sicher, kein versehentliches Entsperren möglich. - Temporär gesperrte Benutzerkonten:
!→ kann mitpasswd -u userleicht rückgängig gemacht werden. !*: eher ein „artefakt“ von wiederholtem Sperren – du kannst es behandeln wie*: vollständig gesperrt.
Befehl: passwd
Usage: passwd [options] [LOGIN]
Options:
-a, --all report password status on all accounts
-d, --delete delete the password for the named account
-e, --expire force expire the password for the named account
-h, --help display this help message and exit
-k, --keep-tokens change password only if expired
-i, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-l, --lock lock the password of the named account
-n, --mindays MIN_DAYS set minimum number of days before password
change to MIN_DAYS
-q, --quiet quiet mode
-r, --repository REPOSITORY change password in REPOSITORY repository
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR directory prefix
-S, --status report password status on the named account
-u, --unlock unlock the password of the named account
-w, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
-x, --maxdays MAX_DAYS set maximum number of days before password
change to MAX_DAYS
Der Befehl passwd -S (unter Linux/Unix) zeigt dir den Status eines Benutzerpassworts in kompakter Form an.
✅ Allgemeine Syntax:
passwd -S [BENUTZERNAME]
📋 Beispiel-Ausgabe:
user1 P 10/01/2023 0 99999 7 -1
🔍 Bedeutung der Felder:
| Feld Nr. | Bedeutung |
|---|---|
| 1 | Benutzername |
| 2 | Passwortstatus: |
- P = Passwort gesetzt (enabled)
| |
- L = Konto gesperrt (locked)
| |
- NP = Kein Passwort gesetzt (No Password)
| |
| 3 | Letztes Passwortänderungsdatum (Format: TT/MM/JJJJ)
|
| 4 | Minimale Anzahl von Tagen, bevor Passwort geändert werden darf |
| 5 | Maximale Anzahl von Tagen, bevor Passwort geändert werden muss |
| 6 | Anzahl der Tage vor Ablauf, an dem der Benutzer gewarnt wird |
| 7 | Inaktiv-Tage nach Ablauf, bevor Konto deaktiviert wird (-1 = nie)
|
🧪 Beispiel erklärt:
user1 P 10/01/2023 0 99999 7 -1
user1→ BenutzernameP→ Passwort ist aktiv10/01/2023→ Letzte Änderung am 10.01.20230→ Sofortige Änderung möglich99999→ Praktisch nie ablaufend7→ 7 Tage vorher wird gewarnt-1→ Konto wird nie automatisch deaktiviert
🔧 Nützlich für:
- Admins, um den Status von Benutzerkonten schnell zu prüfen
- Skripte, die den Passwortstatus abfragen
- Überwachung von Passwort-Richtlinien