USERDBCTL(1) userdbctl USERDBCTL(1) BEZEICHNUNG userdbctl - Benutzer, Gruppen und Gruppenmitgliedschaften untersuchen UBERSICHT userdbctl [OPTIONEN] {BEFEHL} [NAME] BESCHREIBUNG userdbctl kann zur Untersuchung von Benutzern und Gruppen (sowie Gruppenzugehorigkeiten) des Systems verwandt werden. Dieses Clienthilfswerkzeug fragt die Benutzer-/Gruppen-Informationen ab, die von verschiedenen Systemdiensten bereitgestellt werden, sowohl JSON-Benutzer-/Gruppendatensatze (wie durch JSON-Benutzerdatensatze[1] und JSON-Gruppendatensatze[2] definiert) als auch klassische UNIX NSS/Glibc-Benutzer- und -Gruppendatensatze. Dieses Werkzeug ist primar ein Client fur das Benutzer-/Gruppen-Datensatznachschlage-API uber Varlink[3]. Er kann auch statisch definierte JSON-Benutzer-/Gruppendatensatze von Erweiterungsdateien in /etc/userdb/, /run/userdb/, /run/host/userdb/ und /usr/lib/userdb/ aufnehmen. OPTIONEN Die folgenden Optionen werden verstanden: --output=MODUS Wahlt den Ausgabemodus, akzeptiert entweder >>classic<<, >>friendly<<, >>table<< oder >>json<<. Falls >>classic<<, wird eine Ausgabe erzeugt, die im Format sehr ahnlich zu /etc/passwd oder /etc/group ist. Falls >>friendly<<, wird eine umfangreichere und benutzerfreundlichere, menschenlesbare Ausgabe erstellt; falls >>table<<, wird eine minimale, tabulare Ausgabe erstellt; falls >>json<<, wird eine JSON-formatierte Ausgabe erstellt. Standardmassig >>friendly<<, falls auf der Befehlszeile ein Benutzer/eine Gruppe angegeben ist, ansonsten >>table<<. Beachten Sie, dass die meisten Ausgabeformate nicht samtliche verfugbare Informationen anzeigen. Insbesondere zeigen >>classic<< und >>table<< nur die wichtigsten Felder. Verschiedene Modi zeigen auch nicht die Passwort-Hashes. Verwenden Sie >>json<<, um alle Felder, einschliesslich der Authentifizierungsfelder, anzuzeigen. Hinzugefugt in Version 245. --json=FORMAT Wahlt den JSON-Ausgabemodus (wie --output=json) und wahlte den genauen Anzeigemodus. Akzeptiert entweder >>pretty<< oder >>short<<. Falls >>pretty<<, werden lesefreundliche Leerraumzeichen und Zeilenumbruche in der Ausgabe eingefugt, um die JSON-Daten lesbarer zu machen. Bei >>short<< werden alle uberflussigen Leerraumzeichen unterdruckt. Hinzugefugt in Version 250. --service=DIENST[:DIENST], -s DIENST:DIENST Steuert, welcher Dienst fur Benutzer/Gruppen abzufragen ist. Akzeptiert eine Liste von einem oder mehreren Dienstenamen, getrennt durch >>:<<. Nachfolgend finden Sie eine Liste gut bekannter Dienstenamen. Falls nicht angegeben, werden alle verfugbaren Dienste auf einmal abgefragt. Hinzugefugt in Version 245. --with-nss=LOGISCH Steuert, ob klassisches Glibc/NSS-Benutzer/Gruppen-Nachschlagen in der Ausgabe aufgenommen werden soll. Falls --with-nss=no verwandt wird, werden samtliche Versuche, Benutzer/Gruppen mittels Glibc-NSS aufzulosen oder aufzuzahlen, unterdruckt. Falls --with-nss=yes angegeben ist, werden solche Benutzer/Gruppen in der Ausgabe aufgenommen (dies ist die Vorgabe). Hinzugefugt in Version 245. --with-varlink=LOGISCH Steuert, ob Varlink Benutzer/Gruppen-Nachschlagen in der Ausgabe aufgenommen werden soll, d.h. das mittels Benutzer-/Gruppen-Datensatznachschlage-API uber Varlink[3] erfolgt . Falls --with-varlink=no verwandt wird, werden samtliche Versuche, Benutzer/Gruppen mittels Varlink aufzulosen oder aufzuzahlen, unterdruckt. Falls --with-varlink=yes angegeben ist, werden solche Benutzer/Gruppen in der Ausgabe aufgenommen (dies ist die Vorgabe). Hinzugefugt in Version 249. --with-dropin=LOGISCH Steuert, ob Benutzer/Gruppen-Nachschlagen in der Ausgabe aufgenommen werden soll, das in Erganzungsdateien in /etc/userdb/, /run/userdb/, /run/host/userdb/, /usr/lib/userdb/ definiert ist. . Falls --with-dropin=no verwandt wird, werden diese Datensatze unterdruckt. Falls --with-dropin=yes angegeben ist, werden solche Benutzer/Gruppen in der Ausgabe aufgenommen (dies ist die Vorgabe). Hinzugefugt in Version 249. --synthesize=LOGISCH Steuert, ob Datensatze fur die Benutzer/Gruppen root und nobody kunstlich erstellt werden sollen, falls sie nicht anderweitig definiert sind. Standardmassig (oder >>yes<<) werden solche Datensatze implizit kunstlich erzeugt, falls sie andernfalls ansonsten fehlen wurden, da sie fur das Betriebssystem von besonderer Bedeutung sind. Falls >>no<<, wird diese kunstliche Erzeugung ausgeschaltet. Hinzugefugt in Version 245. -N Diese Option ist die Kurzform von --with-nss=no --synthesize=no. Verwenden Sie diese Option, um nur Datensatze anzuzeigen, die nativ als JSON-Benutzer- oder -Gruppendatensatze definiert sind, wobei alle NSS/Glibc-Kompatibilitat und alle implizit kunstlich erstellten Informationen ausgeschaltet sind. Hinzugefugt in Version 245. --multiplexer=LOGISCH Steuert, ob Nachschlagen uber den Multiplexer-Dienst (falls als wahr angegeben, was die Vorgabe ist) oder ob Nachschlagen im Client erfolgen soll (falls als falsch angegeben). Normalerweise sollte der Multiplexer-Dienst bevorzugt werden, da er in einer verriegelten Sandbox lauft. Hinzugefugt in Version 250. --chain Erlaubt bei der Verwendung mit dem Befehl ssh-authorized-keys die Ubergabe einer zusatzlichen Befehlszeile nach dem Benutzernamen, die dann als nachstes in der Kette ausgefuhrt wird, nachdem das Nachschlagen abgeschlossen wurde. Dies erlaubt die Verkettung mehrerer Werkzeuge, die die autorisierten Schlussel von SSH anzeigen. Hinzugefugt in Version 250. --no-pager Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter. --no-legend Gibt die Legende nicht aus, d.h. die Spaltenkopfe und die Fusszeile mit Hinweisen. -h, --help Zeigt einen kurzen Hilfetext an und beendet das Programm. --version Zeigt eine kurze Versionszeichenkette an und beendet das Programm. BEFEHLE Die folgenden Befehle werden verstanden: user [BENUTZER] Listet alle bekannten Benutzerdatensatze auf oder zeigt Details zu einem oder mehreren angegebenen Benutzerdatensatzen. Verwenden Sie --output=, um den Ausgabemodus anzupassen. Hinzugefugt in Version 245. group [GRUPPE] Listet alle bekannten Gruppendatensatze auf oder zeigt Details zu einem oder mehreren angegebenen Gruppendatensatzen. Verwenden Sie --output=, um den Ausgabemodus anzupassen. Hinzugefugt in Version 245. users-in-group [GRUPPE] Listet Benutzer auf, die Mitglieder der angegebenen Gruppen sind. Falls keine Gruppen angegeben werden, werden alle Benutzer/Gruppenmitgliedschaften aufgelistet. Verwenden Sie --output=, um den Ausgabemodus anzupassen. Hinzugefugt in Version 245. groups-of-user [BENUTZER] Listet Gruppen, in denen der angegebene Benutzer Mitglied ist. Falls kein Benutzer angegeben ist, werden alle definierten Benutzer/Gruppenmitgliedschaften aufgelistet (in diesem Fall sind groups-of-user und users-in-group aquivalent). Verwenden Sie --output=, um den Ausgabemodus anzupassen. Hinzugefugt in Version 245. services Listet alle Dienste auf, die derzeit Benutzer-/Gruppendefinitionen fur das System bereitstellen. Die Liste der gut bekannten Dienste, die Benutzerinformationen bereitstellen, ist weiter unten angegeben. Hinzugefugt in Version 245. ssh-authorized-keys Zeigt autorisierte SSH-Schlussel fur dieses Konto. Dieser Befehl ist dazu gedacht, damit SSH-Daemons autorisierte Schlussel aus Benutzerdatensatzen entnehmen konnen, siehe unten. Hinzugefugt in Version 245. GUT BEKANNTE DIENSTE Der Befehl userdbctl services wird alle derzeit laufenden Dienste auflisten, die dem System Benutzer- oder Gruppendefinitionen bereitstellen. Die folgenden gut bekannten Dienste werden als Teil dieser Liste dargestellt: io.systemd.DynamicUser Dieser Dienst wird vom Systemdiensteverwalter selbst bereitgestellt (d.h. PID 1) und stellt alle Benutzer (und ihre Gruppen) kunstlich generiert durch die Einstellung DynamicUser= in Dienste-Unit-Dateien dem System zur Verfugung (siehe systemd.exec(5) fur Details uber diese Einstellung). Hinzugefugt in Version 245. io.systemd.Home Dieser Dienst wird durch systemd-homed.service(8) bereitgestellt und stellt alle Benutzer (und ihre Gruppen), die zu den durch diesen Dienst verwalteten Home-Verzeichnissen gehoren, dem System zur Verfugung&. Hinzugefugt in Version 245. io.systemd.Machine Dieser Dienst wird durch systemd-machined.service(8) bereitgestellt und stellt unter Verwendung von Benutzer-Namensraumen kunstliche Datensatze fur die durch einen Container verwandten Benutzer/Gruppen bereit. Hinzugefugt in Version 246. io.systemd.Multiplexer Dieser Dienst wird durch systemd-userdbd.service(8) bereitgestellt und verteilt das Nachschlagen von Benutzern/Gruppen auf alle anderen laufenden Nachschlage-Dienste. Dies ist der primare Einstiegspunkt fur alle Benutzer-/Gruppendatensatz-Clients, da es die Client-seitige Implementierung deutlich reduziert, da alle Clients einen einzelnen Dienst zum Nachschlagen abfragen konnen, statt parallel alle laufenden Dienste abzufragen. userdbctl nutzt diesen Dienst auch bevorzugt, ausser --with-nss= oder --service= wird verwandt, wodurch eine genauere Steuerung uber die Dienste, mit denen kommuniziert wird, notwendig ist. Hinzugefugt in Version 245. io.systemd.NameServiceSwitch Dieser Dienst wird (auch) durch systemd-userdbd.service(8) bereitgestellt und konvertiert klassische NSS/Glibc-Benutzer- und Gruppendatensatze in JSON-Benutzer-/Gruppendatensatze, wodurch vollstandige Ruckwartskompatibilitat bereitgestellt wird. Verwenden Sie --with-nss=no, um diese Kompatibilitat zu deaktivieren, siehe oben. Beachten Sie, dass die Kompatibilitat tatsachlich in beide Richtungen bereitgestellt wird: nss-systemd(8) wird automatisch klassische NSS/Glibc-Benutzer-/Gruppendatensatze aus allen dem System zur Verfugung gestellten JSON-Benutzer-/Gruppendatensatzen bereitstellen, daher ist die Verwendung beider APIs grosstenteils aquivalent und stellt den Zugriff auf die gleichen Daten bereit, allerdings legen die NSS/Glibc-APIs notwendigerweise nur eine reduziertere Gruppe an Feldern offen. Hinzugefugt in Version 245. io.systemd.DropIn Dieser Dienst wird (auch) durch systemd-machined.service(8) bereitgestellt und nimmt auch die JSON-Benutzer-/Gruppendatensatze von Erweiterungsdateien in /etc/userdb/, /run/userdb/, /run/host/userdb/ und /usr/lib/userdb/ auf. Hinzugefugt in Version 249. Beachten Sie, dass userdbctl auch interne Unterstutzung fur NSS-basiertes Nachschlagen hat. Dies bedeutet, dass das Nachschlagen in den grundlegenden Benutzer-/Gruppendatenbanken weiterhin funktioniert, falls weder io.systemd.Multiplexer noch io.systemd.NameServiceSwitch laufen. INTEGRATION MIT SSH Das Werkzeug userdbctl kann dem SSH-Daemon zur Authentifizierung eine Liste der freigegebenen SSH-Schlussel, die moglicherweise in einem Benutzerdatensatz enthalten sind, bereitstellen. Dafur ist Folgendes in der sshd_config(5) notwendig: AuthorizedKeysCommand /usr/bin/userdbctl ssh-authorized-keys %u AuthorizedKeysCommandUser root Manchmal ist es nutzlich, die verkettete Ausfuhrung eines anderen Progamms zum Auflisten von autorisierten Schlusseln der SSH zu erlauben. Durch Verwendung von --chain kann solch ein Werkzeug durch userdbctl ssh-authorized-keys in Kette ausgefuhrt werden, sobald das Nachschlagen beendet wurde (unabhangig davon, ob ein SSH-Schlussel gefunden wurde oder nicht). Beispiel: AuthorizedKeysCommand /usr/bin/userdbctl ssh-authorized-keys %u --chain /usr/bin/othertool %u AuthorizedKeysCommandUser root Obige Befehle werden zuerst die userdb-Datenbank nach SSH-Schlussel abfragen und dann in Kette /usr/bin/othertool ausfuhren, um auch abzufragen. EXIT-STATUS Bei Erfolg wird 0 zuruckgegeben, anderenfalls ein Fehlercode ungleich Null. UMGEBUNGSVARIABLEN $SYSTEMD_LOG_LEVEL Die maximale Protokollierstufe ausgesandter Nachrichten (Nachrichten mit einer hoheren Protokollierstufe, d.h. weniger wichtige, werden unterdruckt). Sie muss (in absteigender Reihenfolge) entweder alert, crit, err, warning, notice, info, debug oder eine Ganzzahl im Bereich 07 sein. Siehe syslog(3) fur weitere Informationen. $SYSTEMD_LOG_COLOR Ein logischer Wert. Falls wahr, werden auf das TTY geschriebene Nachrichten gemass ihrer Prioritat eingefarbt. Diese Einstellung ist nur nutzlich, falls die Nachrichten direkt auf das Terminal geschrieben werden, da journalctl(1) und andere Werkzeuge, die Protokolle anzeigen, selbstandig Nachrichten gemass ihrer Protokollierungsstufe einfarben. $SYSTEMD_LOG_TIME Ein logischer Wert. Falls wahr, wird den Protokollnachrichten der Konsole ein Zeitstempel vorangestellt. Diese Einstellung ist nur nutzlich, falls die Nachrichten direkt auf das Terminal oder in eine Datei geschrieben werden, da journalctl(1) und andere Werkzeuge, die Protokolle anzeigen, selbstandig Zeitstempel basierend auf ihren Metadaten den Nachrichten anhangen werden. $SYSTEMD_LOG_LOCATION Ein logischer Wert. Falls wahr, wird den Protokollnachrichten ein Dateinamen und eine Zeilenummer in dem Quellcode, aus dem die Nachrichten stammen, vorangestellt. Beachten Sie, dass der Protokollierort sowieso oft als Metadaten zu den Journal-Eintragen angehangt ist. Die Aufnahme in den Nachrichtentext kann bei der Fehlersuche in Programmen dennoch praktisch sein. $SYSTEMD_LOG_TID Ein logischer Wert. Falls wahr, wird den Nachrichten die aktuelle numerische Thread-Kennung (TID) vorangestellt. Beachten Sie, dass diese Informationen sowieso als Metadaten an Journal-Eintrage angehangt wird. Die Aufnahme direkt im Nachrichtentext kann aber trotzdem bei der Fehlersuche in Programmen praktisch sein. $SYSTEMD_LOG_TARGET Das Ziel fur Protokolliernachrichten. Entweder console (auf das angehangte TTY protokollieren), console-prefixed (auf das angehangte TTY protokollieren, aber die Protokollierstufe und >>Einrichtung<< voranstellen, siehe syslog(3)), kmsg (in den zirkularen Kernel-Protokollpuffer protokollieren), journal (in das Journal protokollieren (journal-or-kmsg (in das Journal protokollieren, falls verfugbar, und andernfalls nach Kmsg), auto (das geeignete Protokollierziel automatisch ermitteln, die Vorgabe) oder null (die Protokollierung deaktivieren). $SYSTEMD_LOG_RATELIMIT_KMSG Ob Kmsg ratenlimitiert werden soll oder nicht. Akzeptiert einen logischen Wert. Standardmassig >>true<<. Falls deaktiviert, wird Systemd die nach Kmsg geschriebenen Meldungen nicht ratenlimitieren. $SYSTEMD_PAGER Zu verwendendes Textanzeigeprogramm, wenn --no-pager nicht angegeben ist; setzt $PAGER ausser Kraft. Falls weder $SYSTEMD_PAGER noch $PAGER gesetzt sind, wird eine Reihe wohlbekannter Implementierungen von Textanzeigeprogrammen der Reihe nach ausprobiert, einschliesslich less(1) und more(1), bis eines gefunden wird. Falls keine Implementierung eines Textanzeigeprogramms gefunden wird, wird keines aufgerufen. Setzen der Umgebungsvariablen auf die leere Zeichenkette oder den Wert >>cat<< ist aquivalent zur Ubergabe von --no-pager. Beachten Sie: Falls $SYSTEMD_PAGERSECURE nicht gesetzt ist, dann wird $SYSTEMD_PAGER (sowie $PAGER) ohne Ruckmeldung ignoriert. $SYSTEMD_LESS Setzt die an less ubergebenen Optionen (standardmassig >>FRSXMK<<) ausser Kraft. Benutzer konnten insbesondere zwei Optionen andern wollen: K Diese Option weist das Textanzeigeprogramm an, sich sofort beim Druck von Strg-C zu beenden. Um less die Handhabung von Strg-C selbst zum Umschalten auf die Eingabeaufforderung zu erlauben, setzen Sie diese Option zuruck. Falls der Wert von $SYSTEMD_LESS kein >>K<< enthalt und less das aufgerufene Textanzeigeprogramm ist, wird Strg+C durch das Programm ignoriert und muss durch das Textanzeigeprogramm selbst gehandhabt werden. X Diese Option weist das Textanzeigeprogramm an, keine Termcap-Initialisierungs- und -Deinitalisierungszeichenketten an das Terminal zu senden. Dies ist standardmassig gesetzt, damit die Darstellung von Befehlen selbst nach dem Beenden des Textanzeigeprogramms sichtbar bleibt. Allerdings stehen dadurch einige Funktionen des Textanzeigeprogramms nicht zur Verfugung; insbesondere ist das Scrollen in der Ausgabe mit der Maus nicht moglich. Siehe less(1) fur weitere Ausfuhrungen. $SYSTEMD_LESSCHARSET Setzt den an less zu ubergebenden Zeichensatz (standardmassig >>utf-8<<, falls das aufrufende Terminal als UTF-8-kompatibel erkannt wurde) ausser Kraft. $SYSTEMD_PAGERSECURE Akzeptiert einen logischen Wert. Wenn wahr, wird der >>sichere<< Modus des Textanzeigeprogramms verwandt, falls falsch, wird dieser deaktiviert. Falls $SYSTEMD_PAGERSECURE uberhaupt nicht gesetzt ist, dann wird der sichere Modus aktiviert, falls die effektive Kennung nicht identisch zu dem Eigentumer der Anmeldesitzung ist, siehe geteuid(2) und sd_pid_get_owner_uid(3). Im sicheren Modus wird LESSSECURE=1 beim Aufruf des Textanzeigeprogramms gesetzt und das Textanzeigeprogramm muss Befehle deaktivieren, die neue Dateien offnen oder erstellen oder die einen neuen Unterprozess starten. Falls $SYSTEMD_PAGERSECURE uberhaupt nicht gesetzt ist, werden Textanzeigeprogramme, bei denen unbekannt ist, ob sie einen sicheren Modus implementieren, nicht verwandt. (Derzeit implementiert nur less(1) einen sicheren Modus.) Hinweis: Wenn Befehle mit erhohten Rechten ausgefuhrt werden, beispielsweise mittels sudo(8) oder pkexec(1), muss Vorsicht walten gelassen werden, um sicherzustellen, dass keine ungeplanten interaktiven Funktionalitaten aktiviert werden. Der >>sichere<< Modus fur das Textanzeigeprogramm kann wie oben beschrieben automatisch aktiviert werden. Durch Setzen von SYSTEMD_PAGERSECURE=0 oder durch Nichtenfernen dieser Einstellung aus der ererbten Umgebung wird es dem Benutzer ermoglicht, beliebige Befehle auszufuhren. Beachten Sie, dass auch $SYSTEMD_PAGERSECURE gesetzt werden muss, falls die Variablen $SYSTEMD_PAGER oder $PAGER berucksichtigt werden sollen. Es kann sinnvoll sein, stattdessen das Textanzeigeprogramm komplett mit --no-pager zu deaktivieren. $SYSTEMD_COLORS Akzeptiert ein logisches Argument. Wenn wahr, werden systemd und verwandte Hilfswerkzeuge Farben in ihrer Ausgabe verwenden, andernfalls wird die Ausgabe einfarbig sein. Zusatzlich kann die Variable eine der folgenden besonderen Werte annehmen: >>16<<, >>256<<, um die Verwendung von Farbe auf die grundlegenden 16 bzw. 256 ANSI-Farben zu beschranken. Dies kann festgelegt werden, um die auf $TERM und der vorliegenden Verbindung der Konsole basierende automatische Entscheidung ausser Kraft zu setzen. $SYSTEMD_URLIFY Dies muss ein logischer Wert sein. Er steuert, ob anklickbare Links fur Terminal-Emulatoren, die dies unterstutzen, erstellt werden sollen. Dies kann angegeben werden, um die Entscheidung, die systemd basierend auf $TERM und anderen Bedingungen trifft, ausser Kraft zu setzen. SIEHE AUCH systemd(1), systemd-userdbd.service(8), systemd-homed.service(8), nss-systemd(8), getent(1) ANMERKUNGEN 1. JSON-Benutzerdatensatze https://systemd.io/USER_RECORD 2. JSON-Gruppendatensatze https://systemd.io/GROUP_RECORD 3. Benutzer-/Gruppen-Datensatznachschlage-API uber Varlink https://systemd.io/USER_GROUP_API UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . systemd 255 USERDBCTL(1)