Zum Hauptinhalt springen

Wo werden die Passwörter der Benutzer im Linux-Betriebssystem gespeichert

Das Linux-Betriebssystem ermöglicht die sichere Speicherung von Benutzerkennwörtern durch einen speziellen Mechanismus. Die Kennwörter werden in der Datei /etc/shadow gespeichert, die nur für den Systemadministrator verfügbar ist. Dies ist der Hauptort, an dem sich die verschlüsselten Passwörter der Benutzer befinden. Die Datei /etc/shadow enthält Informationen über jeden Benutzer, einschließlich seiner Anmeldeinformationen wie Benutzername, verschlüsseltes Passwort und andere Kontoeinstellungen.

In der Datei /etc/shadow werden die Passwörter der Benutzer verschlüsselt gespeichert. Wenn Sie ein Passwort eingeben, vergleicht das System es mit der verschlüsselten Version, die in der Datei gespeichert ist. Wenn das Kennwort mit dem verschlüsselten Wert übereinstimmt, wird dem Benutzer Zugriff auf das System gewährt. Diese Speicherung von Kennwörtern bietet eine hohe Sicherheit, denn selbst wenn ein Angreifer Zugriff auf die Datei /etc/shadow erhält, kann er die entschlüsselten Kennwörter nicht lesen.

Neben der Datei /etc/shadow verwendet das Linux-Betriebssystem auch die Datei /etc/passwd, um Benutzerinformationen zu speichern. Die Datei /etc/passwd enthält Informationen zu jedem Benutzer, einschließlich dessen Name, Benutzer-ID (UID), Gruppen-ID (GID), Home-Verzeichnis und Befehlsshell. Die Datei /etc/passwd enthält jedoch keine verschlüsselten Passwörter. Stattdessen enthält es ein «x», um anzuzeigen, dass sich das Passwort des Benutzers in der Datei /etc/shadow befindet.

Insgesamt ist der Schutz von Benutzerpasswörtern auf einem Linux-Betriebssystem einer der wichtigsten Sicherheitsaspekte. Mit kryptografischen Verschlüsselungsmethoden und korrekter Speicherung von Kennwörtern können Sie die Vertraulichkeit und den Schutz der Benutzeranmeldeinformationen sicherstellen.

Wie und wo werden die Benutzerpasswörter unter Linux gespeichert?

Im Linux-Betriebssystem werden die Passwörter der Benutzer verschlüsselt gespeichert. Sie werden in der Datei /etc/shadow gespeichert, die für den Root-Benutzer schreibgeschützt ist.

Die Datei /etc/shadow enthält Informationen über jeden Benutzer, einschließlich seines Namens, des verschlüsselten Passworts sowie Informationen über das Ablaufdatum des Passworts und anderer Sicherheitseinstellungen. Passwörter werden mit einer Hash-Funktion gespeichert, die verhindert, dass sie gelesen oder wiederhergestellt werden.

Bei der Anmeldung wird das vom Benutzer eingegebene Passwort mit dem in der Datei /etc/shadow gespeicherten Hash verglichen. Wenn die Hashes übereinstimmen, greift der Benutzer auf das System zu.

Es ist wichtig zu beachten, dass die Datei /etc/shadow für den Superuser schreibgeschützt ist, sodass die Passwörter der Benutzer nicht direkt gelesen werden können.

SpalteDie Beschreibung
AnmeldungBenutzername
Verschlüsseltes PasswortKennworthash-Wert
Datum der KennwortänderungDatum der letzten Kennwortänderung
Mindestdauer des KennwortsDie minimale Zeit in Tagen, die der Benutzer nach der Installation des Kennworts nicht ändern kann
Maximale Gültigkeitsdauer des KennwortsDie maximale Zeit in Tagen, für die der Benutzer das aktuelle Kennwort verwenden kann
Warnung zum Ändern des KennwortsDie Zeit in Tagen, für die der Benutzer aufgefordert werden muss, sein Passwort zu ändern
Zeitraum der InaktivitätDie Zeit in Tagen, in der das Kennwort möglicherweise inaktiv ist, bevor es als veraltet gilt
Gültigkeitsdauer des KontosDas Datum, an dem das Benutzerkonto gesperrt wird

Daher sind das verschlüsselte Speichern von Benutzerpasswörtern und das Einschränken des Zugriffs auf die Datei /etc/shadow nur für den Superuser die wichtigsten Sicherheitsmaßnahmen unter Linux.

Dateien, die für die Speicherung von Kennwörtern zuständig sind

/etc/passwd: Diese Datei enthält Informationen über alle Benutzer des Systems, einschließlich ihrer Namen, IDs und Home-Verzeichnisse. Die Kennwörter der Benutzer selbst werden hier jedoch nicht gespeichert, stattdessen werden hier Kennworthashes gespeichert. Der Passwort-Hash ist das Ergebnis der Anwendung einer Hash-Funktion auf das Passwort des Benutzers und wird verwendet, um zu überprüfen, ob das eingegebene Passwort korrekt ist.

/etc/shadow: diese Datei enthält die verschlüsselten Passwörter aller Benutzer des Systems. Darüber hinaus werden Informationen zum Zeitpunkt der letzten Änderung des Kennworts, zu Einschränkungen bei der Verwendung des Kennworts und anderen damit verbundenen Daten gespeichert. Die Datei /etc/shadow ist selbst vom Systemverwalter vor dem Lesen geschützt.

/etc/group: Diese Datei enthält Informationen zu Benutzergruppen. Jede Zeile in der Datei enthält den Gruppennamen, das Gruppenkennwort, die Gruppen-ID und eine Liste der Benutzer, die zu dieser Gruppe gehören.

Anmerkung: Alle oben beschriebenen Dateien erfordern spezielle Berechtigungen, um auf die darin enthaltenen Daten zuzugreifen und diese zu ändern.

Hashing von Kennwörtern

Der Hauptzweck des Kennworthashings besteht darin, zu verhindern, dass Angreifer Passwörter lesen und verwenden, falls eine Datenbank mit Passwörtern in ihre Hände fällt. Durch Hashing können Sie Passwörter verschlüsselt speichern, ohne dass sie entschlüsselt werden können.

Beim Hashing eines Kennworts wird ein Hashing-Algorithmus verwendet, der das Kennwort in einen unverständlichen Hash-Code umwandelt. Ein Hash-Code ist eine eindeutige Folge von Zeichen, die das Ergebnis eines Hashalgorithmus darstellt. Hash-Codes sind eine einseitige Funktion, was bedeutet, dass es nicht möglich ist, das ursprüngliche Passwort aus seinem Hash-Code wiederherzustellen.

Das Linux-Betriebssystem verwendet verschiedene Algorithmen zum Hashing von Passwörtern wie MD5, SHA-1, SHA-256 und andere. Jeder Algorithmus hat seine eigene einzigartige Eigenschaft und Sicherheitsstufe. Je komplexer der Algorithmus ist, desto sicherer sind die gespeicherten Passwörter.

Wenn Sie ein Benutzerkonto auf einem Linux-System erstellen, wird das Kennwort des Benutzers mithilfe des ausgewählten Hashalgorithmus in einen Hash-Code konvertiert. Der resultierende Hash wird dann in einer sicheren Systemdatenbank gespeichert. Wenn Sie versuchen, einen Benutzer beim System zu authentifizieren, wird das eingegebene Passwort ebenfalls gehasht und mit dem in der Datenbank gespeicherten Hash verglichen. Wenn die Hashes übereinstimmen, ist die Authentifizierung erfolgreich.

Das Hashing von Kennwörtern ist ein wichtiger Sicherheitsmechanismus, der es ermöglicht, Benutzerkonten zu schützen und unbefugten Zugriff auf das System zu verhindern. Es wird jedoch empfohlen, eine Kombination aus einem starken Passwort und einem ausgeklügelten Hash-Algorithmus zu verwenden, um maximale Sicherheit zu gewährleisten.

Wo befinden sich die Passwort-Hashes der Benutzer?

Die Passwörter der Benutzer im Linux-Betriebssystem werden verschlüsselt in speziellen Dateistrukturen gespeichert. Der spezifische Speicherort der Dateien mit Kennworthashes hängt von der Betriebssystemkonfiguration ab.

Bei den meisten Linux-Distributionen werden Passworthashes in der Datei /etc/shadow gespeichert. Diese Datei ist schreibgeschützt für den Root-Benutzer und enthält Informationen zu jedem Benutzer des Systems, einschließlich dessen Name, Passwort-Hash, Metadaten und anderen Informationen.

Das Dateiformat /etc/shadow lautet wie folgt:

Das FeldDie Beschreibung
BenutzernameName des Benutzerkontos
Passwort-HashVerschlüsselter Hash des Benutzerpassworts
Datum der letzten KennwortänderungDatum der letzten Änderung des Benutzerpassworts
Mindestdauer des KennwortsDie Mindestanzahl an Tagen, die bis zur Änderung des Kennworts vergehen müssen
Maximale Gültigkeitsdauer des KennwortsDie maximale Anzahl von Tagen, nach denen ein Benutzer gezwungen wird, sein Passwort zu ändern
KündigungsfristDie Anzahl der Tage, in denen ein Benutzer eine Warnung erhalten muss, wenn das Kennwort geändert werden muss
Zeitraum der InaktivitätDie Anzahl der Tage, in denen ein Benutzer inaktiv ist, nach denen sein Konto gesperrt wird
Todesdatum des KontosDas Datum, nach dem das Benutzerkonto gesperrt wird
ReserviertReserviertes Feld

Neben der Datei /etc/shadow können bei einigen Linux-Distributionen Benutzerpasswörter in anderen Dateien oder Datenbanken wie /etc/passwd, /etc/gshadow oder einem LDAP-Server gespeichert werden. Die Verwendung von /etc/shadow ist jedoch die gebräuchlichste und empfohlene Option.