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.