Linux / Befehl getent: Benutzer, Gruppen und andere NSS-Datenbanken abfragen
getent fragt Einträge in Datenbanken für Konten, Gruppen, Hosts usw. ab, die vom Name Service Switch (NSS) verwendet werden. Es ist nützlich, wenn Sie nicht nur lokale Dateien, sondern auch externe Authentifizierungs- oder Namensdienste überprüfen möchten, die auf dem System über denselben Abfragepfad konfiguriert sind.
Es folgt der in /etc/nsswitch.conf angegebenen Lookup-Reihenfolge, sodass die Ergebnisse von einem simplen Lesen der /etc/passwd-Datei abweichen können. Geben Sie zuerst den Datenbanknamen und dann den erforderlichen Schlüssel an. Wenn der Schlüssel weggelassen wird, versucht es eine Aufzählung, aber eine vollständige Aufzählung ist nicht in allen Datenbanken möglich.
Grundlegende Syntax
getent database [key...]
Installierte Implementierungen und Optionen können je nach Distribution unterschiedlich sein. Überprüfen Sie die Beschreibung für Ihr aktuelles System mit man getent.
Beispiele
Abfrage von Benutzerkonten
Suche nach Benutzern in lokalen Dateien oder NSS-konfigurierten Quellen.
getent passwd alice
Abfragen von Gruppeninformationen
Überprüfen von Gruppennamen und Mitgliedern.
getent group editors
Hostname überprüfen
Abfragen des Namens über die NSS-Einstellungen des aktuellen Systems.
getent hosts localhost
Lesen von NSS-Datenbank-Abfrageergebnissen
getent passwd username kann nicht nur das lokale /etc/passwd nachschlagen, sondern auch Konten, die über die NSS (Name Service Switch)-Konfiguration des Systems bereitgestellt werden.
getent passwd root
Beispielausgabe (Home-Verzeichnis und Shell variieren je nach System):
root:x:0:0:root:/root:/bin/bash
In den durch Doppelpunkte getrennten Feldern ist das dritte die UID und das vierte die primäre GID. x zeigt nicht das tatsächliche Passwort an. Wenn kein Ergebnis vorliegt, kann es sein, dass das Konto nicht existiert oder das NSS-Backend nicht verfügbar ist. Eine getent-Abfrage ist nicht dasselbe wie nur in /etc/passwd zu suchen.
Hauptoptionen und Format
| Optionen/Format | Beschreibung |
|---|---|
passwd |
Abfrage der Benutzerkontendatenbank. |
group |
Abfrage der Gruppendatenbank. |
hosts |
Abfrage der Hostnamen- und Adressdatenbank. |
-s service |
Geben Sie den Nachschlageservice einer bestimmten Datenbank in der glibc-Implementierung an. |
Vorsichtsmaßnahmen bei der Verwendung
Auch wenn ein Konto nicht in /etc/passwd vorhanden ist, kann es in externen NSS-Quellen wie LDAP existieren. Umgekehrt kann ein getent-Fehler entweder auf ein Dienstproblem oder einen fehlenden Schlüssel hinweisen, daher sollten sowohl der Exit-Status als auch die NSS-Einstellungen überprüft werden. Das Auflisten aller Schlüssel wird möglicherweise in einigen Datenbanken nicht unterstützt oder kann eine große Ausgabe erzeugen.
Häufig gestellte Fragen
Was ist der Unterschied zwischen getent passwd alice und grep alice /etc/passwd?
getent verwendet den konfigurierten NSS-Suchpfad, während grep nur den Text in der lokalen Datei durchsucht. Wenn ein externes Benutzungsverzeichnis vorhanden ist, können die Ergebnisse unterschiedlich sein.
Offizielle Dokumentation
Das genaue Verhalten von Optionen und Unterschiede je nach Implementierung finden Sie in der offiziellen getent-Dokumentation.




