/etc/passwd
100%

Benutzerverwaltung · Lektion 3

/etc/passwd

Erfahre, wie du lokale passwd-Einträge liest und sie von der vollständigen NSS-Kontoansicht unterscheidest.

/etc/passwd speichert lokale Kontoeinträge in einem durch Doppelpunkte getrennten Textformat. Die Datei ordnet Anmeldenamen numerischen UIDs zu und erfasst eine primäre GID, ein Beschreibungsfeld, den Home-Pfad und das Anmeldeprogramm.

Lokale Einträge und aufgelöste Konten

Zeige die lokale Datei mit einem schreibgeschützten Befehl an:

$ cat /etc/passwd

Dies sind nicht unbedingt alle dem System bekannten Konten. Der Name Service Switch (NSS) kann Konten aus Dateien, Verzeichnisdiensten, Systemdatenbanken oder anderen konfigurierten Quellen auflösen. Verwende getent, um die aufgelöste passwd-Datenbank abzufragen:

$ getent passwd
$ getent passwd root

Der erste Befehl kann Kontonamen und Metadaten offenlegen. Prüfe die Ausgabe daher, bevor du sie öffentlich teilst.

Welcher Befehl fragt die durch NSS aufgelöste passwd-Datenbank ab, statt nur die lokale Datei zu lesen?

Die sieben Felder lesen

Ein lokaler Eintrag sieht häufig so aus:

root:x:0:0:root:/root:/bin/bash

Die sieben durch Doppelpunkte getrennten Felder sind:

  1. Anmeldename: Der menschenlesbare Kontoname, beispielsweise root.
  2. Passwortfeld: Auf einem System mit Shadow-Passwörtern gewöhnlich x; dies weist darauf hin, dass geschützte Passwortdaten getrennt gespeichert sind.
  3. UID: Die numerische Benutzeridentität. Die UID 0 wird traditionell als Superuser behandelt.
  4. Primäre GID: Die numerische Kennung der primären Gruppe des Kontos.
  5. GECOS/Kommentar: Beschreibende Kontoinformationen, die intern häufig durch Kommas getrennt sind.
  6. Home-Verzeichnis: Der als Home-Einstellung des Kontos verwendete Pfad; er muss auf dem Datenträger nicht vorhanden sein.
  7. Anmelde-Shell/-Programm: Das für geeignete Anmeldesitzungen angeforderte Programm, beispielsweise /bin/bash oder ein Programm, das Anmeldungen verhindert.

Der Kernel verlangt bei fehlerhaften oder absichtlich doppelten Einträgen keine eindeutigen UID-Werte. Konten mit derselben UID sind jedoch bei vielen Eigentums- und Berechtigungsentscheidungen nicht voneinander zu unterscheiden. Administratoren sollten Konto-UIDs gewöhnlich eindeutig halten.

Welches Feld enthält in root:x:0:0:root:/root:/bin/bash die UID?

Welches Feld eines passwd-Eintrags speichert die primäre GID des Kontos?

Den Passwortplatzhalter interpretieren

Auf typischen Systemen mit Shadow-Passwörtern verweist x in Feld 2 passwortbewusste Werkzeuge auf geschützte Daten in /etc/shadow. Werte wie * oder ! sind keine gültigen Passwort-Hashes und verhindern im Allgemeinen die Authentifizierung mit einem Unix-Passwort über diesen Eintrag.

Das beweist nicht, dass sich das Konto mit überhaupt keiner Methode authentifizieren kann. SSH-Schlüssel, Zertifikate, Token oder dienstspezifische Mechanismen können davon unabhängig sein. Ebenso besitzt ein leeres Passwortfeld sicherheitsrelevantes Verhalten, das vom Authentifizierungsstapel abhängt. Erstelle oder „repariere“ es nicht manuell.

Was bedeutet x gewöhnlich in Feld 2 eines lokalen /etc/passwd-Eintrags?

Dienstkonten erkennen

Viele Einträge repräsentieren Dienste und keine Menschen. Getrennte Dienstidentitäten helfen dabei, Dateien und Prozesse auf die für einen bestimmten Daemon erforderlichen Befugnisse zu beschränken. Ihre Home-Pfade können ungewöhnlich oder nicht vorhanden sein, und ihr Anmeldeprogramm kann /usr/sbin/nologin, /bin/false oder ein anderes einschränkendes Programm sein.

Leite den Zweck eines Kontos nicht allein aus seinem UID-Bereich ab, ohne die Richtlinien der Distribution zu prüfen. Die Zuweisungsbereiche unterscheiden sich, und zentral verwaltete Konten können anderen Konventionen folgen.

Was ist ein häufiger Zweck eines Anmeldeprogramms wie /usr/sbin/nologin in Feld 7?

Kontoeinträge sicher ändern

Bevorzuge Werkzeuge zur Kontoverwaltung wie useradd, usermod und userdel, da sie zusammengehörige Einträge koordinieren und Systemvoreinstellungen anwenden. Ihr genaues Verhalten kann von der Distribution konfiguriert werden. Prüfe daher die Optionen, bevor du ein Konto änderst.

Wenn eine lokale passwd-Datenbank tatsächlich manuell repariert werden muss, verwende vipw statt eines gewöhnlichen Editors. Es sperrt die Datei, um gleichzeitige Bearbeitungen zu vermeiden. Validiere Datenbanken mit Werkzeugen wie pwck und halte eine Wiederherstellungssitzung aufrecht, bevor du Authentifizierungsdateien aus der Ferne änderst.

Probiere diese praktischen Labs aus, um Benutzer- und Gruppeneinträge 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 bis zu deren Änderung und Löschung.
  2. Linux-Gruppen mit groupadd, usermod und groupdel verwalten - Sammle praktische Erfahrung mit den zentralen Befehlszeilenwerkzeugen zur Gruppenverwaltung, darunter das Erstellen neuer Gruppen und das Ändern von Benutzermitgliedschaften.

Lektion abgeschlossen

Sie haben /etc/passwd abgeschlossen

Du kannst nun lokale passwd-Einträge interpretieren, ohne sie mit der vollständigen Identitätsdatenbank zu verwechseln.

  • Frage durch NSS aufgelöste Konten mit getent passwd ab.

  • Lies die sieben durch Doppelpunkte getrennten passwd-Felder.

  • Bestimme die Felder für UID und primäre GID.

  • Interpretiere Passwortplatzhalter, ohne zu weitreichende Aussagen über den Anmeldestatus zu treffen.

  • Verwende Kontowerkzeuge oder vipw statt eines gewöhnlichen Editors.

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