/etc/shadow
100%

Benutzerverwaltung · Lektion 4

/etc/shadow

Erfahre, wie lokale shadow-Einträge Passwort-Hashes und Alterungsrichtlinien darstellen, ohne vertrauliche Daten offenzulegen.

/etc/shadow speichert geschützte lokale Passwort-Hashes und Felder zur Passwortalterung. Die Trennung dieser Werte von der allgemein lesbaren Datenbank /etc/passwd verringert das Risiko, sie für Offline-Angriffe zum Erraten von Passwörtern offenzulegen.

Shadow-Daten schützen

Passwörter werden nicht umkehrbar „verschlüsselt“ gespeichert, um sie später wieder anzuzeigen. Ein lokaler Passworteintrag enthält gewöhnlich einen Einweg-Passwort-Hash, der mit einer Algorithmuskennung, einem Salt und Parametern codiert ist. Ein Angreifer, der solche Hashes erlangt, kann mögliche Passwörter offline ausprobieren. Die Datenbank muss daher geschützt bleiben.

Die genauen Eigentums- und Berechtigungsangaben unterscheiden sich, doch der Zugriff ist gewöhnlich auf root und eng begrenzte autorisierte Systemkomponenten beschränkt. Gib shadow-Inhalte nicht allein zur Prüfung eines Kontostatus aus, kopiere, protokolliere oder teile sie nicht.

Warum sind lokale shadow-Daten gewöhnlich vor allgemeinem Lesezugriff geschützt?

Das Format mit neun Feldern lesen

Ein lokaler shadow-Eintrag enthält neun durch Doppelpunkte getrennte Felder. Ein schematischer Eintrag sieht so aus, wobei der Hash bewusst weggelassen wurde:

alice:<password-field>:20000:0:90:7:14:20500:

Die Felder sind:

  1. Anmeldename.
  2. Passwort-Hash oder besondere Passwortmarkierung.
  3. Letzte Passwortänderung in Tagen seit dem 01.01.1970; 0 fordert bei typischen Werkzeugen eine Änderung bei der nächsten mit einem Passwort authentifizierten Anmeldung an.
  4. Mindestalter des Passworts in Tagen.
  5. Höchstalter des Passworts in Tagen.
  6. Warnzeitraum vor Ablauf des Passworts in Tagen.
  7. Inaktivitätszeitraum nach Ablauf des Passworts in Tagen.
  8. Ablaufdatum des Kontos in Tagen seit dem 01.01.1970.
  9. Reserviertes Feld.

Leere Felder und besondere numerische Werte besitzen festgelegte Bedeutungen, die je nach Feld und Werkzeug variieren können. Verwende Werkzeuge zur Kontoverwaltung, statt Werte nach Augenmaß zu bearbeiten.

Welches shadow-Feld speichert das Ablaufdatum des Kontos als Tage seit dem 01.01.1970?

Das Passwortfeld sorgfältig interpretieren

Ein gültiger Hash in Feld 2 ermöglicht die lokale Prüfung eines Unix-Passworts. Ein mit ! beginnender Wert sperrt gewöhnlich diesen Passwort-Hash, während * oder eine andere ungültige Hash-Markierung eine erfolgreiche Passwortprüfung über dieses Feld verhindert. Ein leerer Wert ist sicherheitskritisch und kann je nach PAM-Richtlinie ein Verhalten ohne Passwort ermöglichen.

Diese Markierungen beschreiben den lokalen Passwortweg und nicht jede mögliche Authentifizierungsmethode. Öffentliche SSH-Schlüssel, Zertifikate, Token und anwendungsspezifische Zugangsdaten können weiter nutzbar bleiben, sofern sie nicht gesondert eingeschränkt werden. Auch der Ablauf eines Kontos in Feld 8 unterscheidet sich von der Passwortsperre.

Was kannst du aus einem shadow-Passwortfeld, das mit ! beginnt, sicher schließen?

Passwort- und Kontodaten unterscheiden

Die Felder 3 bis 7 betreffen die Passwortalterung: wann das Passwort zuletzt geändert wurde, wann eine weitere Änderung erlaubt ist, wann es abläuft, wann Warnungen beginnen und wie lange eine Passwortanmeldung nach dem Ablauf noch möglich bleibt. Feld 8 lässt das Konto an einem absoluten Tag ablaufen, unabhängig vom Alter des Passworts.

Ein Höchstalter des Passworts von 90 Tagen ist beispielsweise nicht dasselbe wie ein Ablaufdatum des Kontos. Ersteres verschiebt sich relativ zur letzten Passwortänderung, letzteres bleibt ein festes Datum, bis ein Administrator es ändert.

Worin unterscheiden sich die shadow-Felder 5 und 8?

Richtlinien mit Werkzeugen prüfen und ändern

Administratoren sollten nur die für eine Aufgabe erforderlichen Informationen abfragen:

$ sudo passwd -S alice
$ sudo chage -l alice

passwd -S fasst den lokalen Passwortstatus zusammen, während chage -l die Alterungsinformationen in lesbarer Form auflistet. Ausgabeformate und Autorisierungsanforderungen können sich je nach Distribution unterscheiden.

Verwende passwd, chage, usermod und verwandte Kontowerkzeuge für Änderungen. Wenn eine manuelle Reparatur der lokalen shadow-Datenbank unvermeidbar ist, bietet vipw -s eine Sperrung; validiere Kontodatenbanken mit pwck. Halte eine Wiederherstellungssitzung aufrecht, bevor du eine entfernte Authentifizierung änderst.

Welcher Befehl ist dafür vorgesehen, lesbare Informationen zur Passwortalterung des lokalen Kontos alice aufzulisten?

PAM und NSS können Authentifizierungs- und Identitätsquellen außerhalb lokaler shadow-Dateien einbinden. Ein Systemkonto kann deshalb keinen lokalen shadow-Eintrag besitzen oder sich über zusätzliche Dienste authentifizieren.

Probiere diese praktischen Labs aus, um Kontostatus und Alterungsrichtlinien in einer kontrollierten Umgebung zu üben:

  1. Linux-Benutzerkonten mit useradd, usermod und userdel verwalten - Übe den vollständigen Lebenszyklus der Benutzerverwaltung, vom Erstellen und Absichern neuer Konten mit useradd und passwd bis zu deren Änderung und Löschung.
  2. Benutzerkonten und sudo-Berechtigungen unter Linux konfigurieren - Lerne grundlegende Techniken zur Verwaltung von Benutzerkonten und sudo-Berechtigungen, einschließlich des Durchsetzens von Passwortrichtlinien und Absicherns von Konten.

Lektion abgeschlossen

Sie haben /etc/shadow abgeschlossen

Du kannst nun shadow-Richtlinien interpretieren, ohne die vollständige Passwortdatenbank offenzulegen.

  • Behandle Passwort-Hashes als geschütztes Authentifizierungsmaterial.

  • Lies die neun shadow-Felder nach ihrem Zweck.

  • Unterscheide eine Passwortsperre von der Deaktivierung jeder Anmeldemethode.

  • Trenne die Passwortalterung vom absoluten Ablauf eines Kontos.

  • Prüfe und ändere Richtlinien mit gezielten Kontowerkzeugen.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Benutzerverwaltung