Was ist die Linux / etc / shadow-Datei und was macht sie?

Beim Stöbern in Ihren Linux-Systemdateien sind Sie möglicherweise auf eine Datei im Verzeichnis / etc mit dem Namen shadow gestoßen. Es mag gruselig klingen, aber es ist wirklich eine sichere, notwendige und nützliche Datei für die Systemadministration.

Heute werden wir uns den Inhalt der Datei / etc / shadow genauer ansehen und herausfinden, was sie über Ihr System aussagen kann.

Was ist / etc / shadow?

So mysteriös es klingt, die Funktion der Datei ist recht einfach. Die Datei / etc / shadow enthält Informationen zu den Benutzern eines Linux-Systems, deren Kennwörtern und Zeitvorschriften für ihre Kennwörter.

Wenn Sie ein Kennwort unter Linux erstellen oder ändern , wird es vom System gehasht und in der Schattendatei gespeichert. Alle vom Administrator zugewiesenen Kennwortregeln wie Ablaufdaten und Inaktivitätszeiträume bleiben ebenfalls hier erhalten. Die Schattendatei kann dann Authentifizierungsprotokollen mitteilen, ob beispielsweise das Kennwort eines Benutzers korrekt ist oder wann es abgelaufen ist.

Sie sollten die Schattendatei niemals direkt bearbeiten. Es wird von automatisierten Prozessen verwaltet und ist nicht für normale Benutzer zum Ändern gedacht. Trotzdem können die darin enthaltenen Informationen für Sie wertvoll sein, daher ist es einen Blick wert.

Was ist in der Linux-Schattendatei?

Um den Inhalt der Schattendatei anzuzeigen, öffnen Sie ein Terminal und geben Sie den Befehl cat ein :

 sudo cat /etc/shadow

Sie werden aufgefordert, nach Ihrem Passwort zu fragen. Angenommen, Sie verfügen über Administratorrechte, wird ein Ausdruck von Textzeichenfolgen angezeigt, die ähnlich aussehen (Ellipsen markieren, wo die Zeichenfolge auf Ihren Bildschirm zugeschnitten wurde):

 muo1:$6$IK2...$20a...:18731:0:99999:7:::

Es sieht kryptisch aus, und tatsächlich ist ein Teil davon verschlüsselter Text. Die Zeichenfolge folgt eine besondere Konstruktion, aber, und Häuser spezifische Bits an Informationen, abgegrenzt durch den Doppelpunkt (:) Zeichen.

Hier ist ein vollständiges Layout der Zeichenfolge:

 [username]:[password]:[date of last password change]:[minimum password age]:[maximum password age]:[warning period]:[inactivity period]:[expiration date]:[unused]

Schauen wir uns jedes dieser Felder genauer an:

1. Benutzername

Alles, was in der Zeichenfolge folgt, ist diesem Benutzernamen zugeordnet.

2. Passwort

Das Passwortfeld besteht aus drei zusätzlichen Feldern, die durch Dollarzeichen gekennzeichnet sind: $ id $ salt $ hash .

  • id: Hiermit wird der Verschlüsselungsalgorithmus definiert, mit dem Ihr Kennwort verschlüsselt wird. Die Werte können 1 (MD5), 2a (Blowfish), 2y (Eksblowfish), 5 (SHA-256) oder 6 (SHA-512) sein.
  • Salt: Dies ist das Salt, das zum Verschlüsseln und Authentifizieren des Passworts verwendet wird.
  • Hash: Dies ist das Passwort des Benutzers, wie es nach dem Hashing angezeigt wird. Die Schattendatei enthält eine Hash-Version Ihres Passworts, sodass das System jeden Versuch, Ihr Passwort einzugeben, überprüfen kann.

Weitere Informationen: Grundlegende Verschlüsselungsbedingungen definiert

Manchmal enthält das Passwortfeld nur ein Sternchen ( * ) oder ein Ausrufezeichen ( ! ). Dies bedeutet, dass das System das Benutzerkonto deaktiviert hat oder dass der Benutzer sich mit anderen Mitteln als einem Kennwort authentifizieren muss. Dies ist häufig bei Systemprozessen (auch als Pseudo-Benutzer bezeichnet) der Fall, die Sie wahrscheinlich auch in der Schattendatei finden.

3. Datum der letzten Passwortänderung

Hier finden Sie das letzte Mal, als dieser Benutzer sein Passwort geändert hat. Beachten Sie, dass das System das Datum im Unix-Zeitformat anzeigt.

4. Mindestalter für das Passwort

Hier finden Sie die Anzahl der Tage, die der Benutzer nach dem Ändern seines Kennworts warten muss, bevor er es erneut ändert.

Wenn das Minimum nicht festgelegt ist, ist der Wert hier 0.

5. Maximales Passwortalter

Dies definiert, wie lange ein Benutzer gehen kann, ohne sein Passwort zu ändern. Das häufige Ändern Ihres Passworts hat seine Vorteile , aber standardmäßig wird der Wert auf großzügige 99.999 Tage festgelegt. Das sind fast 275 Jahre.

6. Warnzeitraum

Dieses Feld bestimmt die Anzahl der Tage, bevor ein Passwort sein maximales Alter erreicht hat. Während dieser Zeit erhält der Benutzer Erinnerungen, sein Passwort zu ändern.

7. Inaktivitätszeitraum

Dies ist die Anzahl der Tage, die vergehen können, nachdem das Kennwort des Benutzers sein maximales Alter erreicht hat, bevor das System das Konto deaktiviert. Stellen Sie sich dies als eine "Nachfrist" vor, in der der Benutzer eine zweite Chance hat, sein Kennwort zu ändern, obwohl es technisch abgelaufen ist.

8. Ablaufdatum

Dieses Datum ist das Ende des Inaktivitätszeitraums, in dem das System das Benutzerkonto automatisch deaktiviert. Nach der Deaktivierung kann sich der Benutzer erst anmelden, wenn ein Administrator sie erneut aktiviert.

Dieses Feld ist leer, wenn es nicht festgelegt ist. Wenn es festgelegt ist, wird das Datum in der Epochenzeit angezeigt.

9. Nicht verwendet

Dieses Feld hat derzeit keinen Zweck und ist für eine mögliche zukünftige Verwendung reserviert.

Die Schattendatei erklärt

Die Schattendatei ist wirklich überhaupt nicht mysteriös. Denken Sie jedoch daran, dass Sie, wenn Sie Kennwörter und Kennwortregeln ändern möchten, die direkte Bearbeitung der Schattendatei vermeiden und stattdessen Tools verwenden sollten, die für diesen Zweck vorgesehen sind.

Wenn Sie Ihrem Linux-System einen neuen Benutzer hinzufügen, wird die Datei / etc / shadow automatisch geändert, um die Authentifizierungsinformationen über den Benutzer zu speichern.