Wie Linux Benutzerpasswörter speichert und verwaltet

Haben Sie sich gefragt, wie Linux eine Mehrbenutzerumgebung effizient verwaltet? In diesem Artikel erklären wir, wie Linux Benutzerpasswörter und Logins speichert und verwaltet.

Untersuchen der /etc/passwd-Datei

Wenn ein Benutzer einen Benutzernamen und ein Kennwort eingibt, überprüft Linux das eingegebene Kennwort mit einem Eintrag in mehreren Dateien im Verzeichnis „/etc“.

Die „/etc/passwd“ ist eine der wichtigsten Dateien, die Benutzerdetails speichert.

Der letzte Eintrag in dieser Datei entspricht „carbon“-Benutzern. Es gibt mehrere Informationsfelder, die durch Doppelpunkte (:) getrennt sind.

  • carbon : Name des Benutzers, dem dieser Eintrag entspricht.
  • x : zeigt an, dass für den Benutzer ein Kennwort vorhanden ist. Das Passwort wird jedoch in der Datei „/etc/shadow“ gespeichert. Wenn statt x es zeigt a ! Symbol zeigt an, dass kein Passwort existiert.
  • 1000 : Benutzer-ID dieses Benutzers.
  • 1000: Gruppen-ID der Gruppe, zu der dieser Benutzer gehört.
  • carbon, , , : Zeigt mehrere Informationsfelder an, einschließlich des vollständigen Namens und der Telefonnummern. Hier wurden keine Telefonnummern angegeben.
  • /home/carbon : Speicherort des Home-Verzeichnisses, das diesem Benutzer zugewiesen ist.
  • /bin/bash : diesem Benutzer zugewiesene Standard-Shell.

Lassen Sie uns einen weiteren Benutzer anlegen, für den einige Telefonnummern gespeichert wurden. Der Benutzer „pluto“ wird dem System mit dem . hinzugefügt adduser Befehl.

Linux-Benutzer GECOS-Feld

Wenn wir uns die Datei „etc/passwd“ erneut ansehen, können wir die vollständigen Informationen für den Benutzer „pluto“ anzeigen. Das Feld, das eine durch Kommas getrennte Liste mit vollständigem Namen und Zahlen enthält, wird als „GECOS-Feld“ bezeichnet.

/etc/passwd mit Telefondetails anzeigen

Immer wenn ein Benutzer erstellt wird, werden die Werte des Home-Verzeichnisses und der Standard-Shell, die zugewiesen werden müssen, in der Datei „/etc/adduser.conf“ angegeben.

adduser.conf

Benutzer-IDs für erstellte Benutzer beginnen bei 1000 und reichen bis 59999.

Der Benutzer „carbon“ konnte sich die Einträge der Datei „/etc/passwd“ einfach über die cat Befehl. Werfen wir einen Blick auf seine Berechtigungen.

/etc/passwd Dateiberechtigung

Nur der Benutzer „root“ kann in die Datei schreiben. Andere Benutzer können die Datei nur lesen. Da diese Datei für jeden lesbar ist, ist es nicht ideal, hier Passwörter zu speichern. Stattdessen wird es in einer anderen Datei namens „/etc/shadow“ gespeichert.

Durchsuchen der /etc/shadow-Datei

Versuchen wir nun, das gespeicherte Passwort für die Benutzer „carbon“ und „pluto“ in der Datei „/etc/shadow“ anzuzeigen.

/etc/shadow-Berechtigung verweigert

Wenn wir uns die Berechtigungen für die Datei „/etc/shadow“ ansehen, können wir sehen, dass nur der Benutzer „root“ die Datei lesen und schreiben kann. Auch können nur Mitglieder der Gruppe „Schatten“ die Datei lesen. In Wirklichkeit ist die Gruppe „Schatten“ leer, wird aber syntaktisch für diese Datei benötigt.

Verwandt :  So erhalten Sie das Nachrichten- und Wetter-Widget auf Microsoft Edge
/etc/shadow-Dateiberechtigung

Wenn wir uns als „root“ anmelden, können wir die letzten zehn Zeilen von „/etc/shadow“ anzeigen. Für jeden Eintrag in „/etc/passwd“ gibt es einen entsprechenden Eintrag in dieser Datei. Das Format wird wie folgt aussehen:

/etc/shadow-Einträge anzeigen

Auch in dieser Datei hat jeder Eintrag mehrere Felder, die durch Doppelpunkte (:) getrennt sind. Lassen Sie uns den Eintrag für den Benutzer „pluto“ entziffern.

  • pluto : Name des Benutzers, dem dieser Eintrag entspricht.
  • $6$JvWfZ9u.$yGFIqOJ.... : Das gehashte Benutzerkennwort, das zusammen mit Informationen zum verwendeten Hashing-Algorithmus gespeichert wird. Außerdem wird ein Salt-Wert zusammen mit dem Klartext-Passwort verwendet, um den Passwort-Hash zu generieren.

Lassen Sie uns den Inhalt in diesem Feld verarbeiten. Die $ Symbol wird als Trennzeichen verwendet, um drei Felder zu trennen.

  • $6 : der verwendete Hash-Algorithmus. Hier ist die Liste möglicher Hashing-Algorithmen.
    • $1: MD5
    • $2a : Kugelfisch
    • $2y : Eksblowfish
    • $ 5: SHA-256
    • $6: SHA-512
  • $JvWfZ9u. : Salzwert.
  • $yGFIqOJ.... : gehashtes Passwort.

Der resultierende Hashwert wird als verschlüsseltes Passwort für einen Benutzer gespeichert. Der Salt-Wert ist für jeden Benutzer einzigartig. Selbst wenn zwei Benutzer das gleiche Klartext-Passwort haben, würde die Verwendung eines eindeutigen Salts einen eindeutigen Hash-Wert erzeugen.

Folgend mit den restlichen Feldern in diesem Eintrag,

  • 18283: Gibt die Anzahl der Tage seit dem 1. Januar 1970 an, die das Passwort zuletzt geändert wurde
  • : Dieses Feld wird verwendet, um die Anzahl der Tage anzugeben, nach denen das Passwort geändert werden kann. Ein Wert von 0 bedeutet, dass das Passwort jederzeit geändert werden kann.
  • 99999 : Dieses Feld gibt die Anzahl der Tage an, nach denen das Passwort geändert werden muss. Ein Wert von 99999 gibt an, dass ein Benutzer das Passwort beliebig lange aufbewahren kann.
  • 7 : Wenn das Kennwort auf Ablauf gesetzt ist, gibt dieses Feld die Anzahl der Tage an, um den Benutzer vor dem Ablauf des Kennworts zu warnen.
  • : : : Zu diesem Eintrag gehören noch drei weitere Felder, die hier jedoch leer sind. Der erste gibt die Anzahl der Tage an, die nach Ablauf des Passworts gewartet werden muss, nach denen das Konto deaktiviert wird. Der zweite gibt an, wie viele Tage seit dem 1. Januar 1970 ein Konto deaktiviert wurde. Das dritte Feld ist für die zukünftige Verwendung reserviert. Die leeren Felder zeigen an, dass das vorhandene Kennwort für diesen Benutzer noch nicht abgelaufen ist und nicht bald abläuft.

Die letzten sieben Felder zur Passwortgültigkeit enthalten zusammenfassend Informationen zur „Password Aging Policy“.

Die der „Password Aging Policy“ entsprechenden Standardwerte sind in der Datei „/etc/login.defs“ angegeben. Diese Werte können für einen Benutzer mit dem . geändert werden change Befehl.

login.defs

Wie sieht es mit Gruppeninformationen aus?

Benutzerinformationen und Passwörter werden in den Dateien „/etc/passwd“ und „/etc/shadow“ gespeichert. Ebenso werden Gruppeninformationen in der Datei „/etc/group“ gespeichert.

Verwandt :  Hinzufügen und Entfernen von benutzerdefinierten Beschriftungsbezeichnungen in Word 2013
/etc/Gruppeneinträge anzeigen

Oben hervorgehoben sind Gruppen, die zu den Benutzern „carbon“ und „pluto“ gehören. Wenn ein Benutzer unter Linux erstellt wird, wird dieser Benutzer sofort einer Gruppe mit demselben Namen wie der Benutzername zugewiesen.

Mitglieder einer Gruppe können auch ein Gruppenpasswort für gruppenbezogene Aktivitäten teilen. Der Wert von x gibt an, dass sich die Kennwortinformationen für diese Gruppe in der Datei „/etc/gshadow“ befinden.

Der Zugriff auf „/etc/gshadow“ ist jedoch auf den „root“-Benutzer beschränkt.

/etc/gshadow-Berechtigung verweigert

Der „root“-Benutzer kann die Einträge von „/etc/gshadow“ anzeigen, die ähnlich wie „/etc/shadow“ sind. Wenn wir uns den Eintrag für die Gruppe „Kohlenstoff“ ansehen, sehen wir, dass das zweite Feld einen Wert von hat !, was darauf hinweist, dass für diese Gruppe kein Kennwort vorhanden ist.

Passwort 11

Alles zusammenfügen

Wenn sich ein Benutzer anmelden möchte, wird der Hash des eingegebenen Passworts anhand des Salt-Werts dieses Benutzers in „/etc/shadow“ gefunden. Dann wird es mit dem gespeicherten Hash verglichen. Wenn die Werte übereinstimmen, wird dem Benutzer der Zugriff gewährt.

  • So setzen Sie das Root-Passwort unter Linux zurück
  • So verwalten Sie Ihr Benutzerkennwort über das Terminal unter Linux

Moyens Staff
Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.