NSS-SYSTEMD(8) nss-systemd NSS-SYSTEMD(8) BEZEICHNUNG nss-systemd, libnss_systemd.so.2 - UNIX-Benutzer- und -Gruppennamensauflosung zum Nachschlagen von Benutzern/Gruppen mittels Varlink UBERSICHT libnss_systemd.so.2 BESCHREIBUNG nss-systemd ist ein Erweiterungsmodul fur die GNU >>Name Service Switch<< (NSS)-Funktionalitat der GNU-C-Bibliothek (glibc). Es stellt eine UNIX-Benutzer- und -Gruppennamensauflosung fur Dienste bereit, die das Nachschlagen von Benutzern-/Gruppendatensatzen mittels Varlink[1] implementieren (fur seine Funktionalitat DynamicUser=, siehe systemd.exec(5) fur Details), systemd-homed.service(8) oder systemd-machined.service(8). Dieses Modul stellt auch sicher, dass die Benutzer und Gruppen >>root<< und >>nobody<< (d.h. die Benutzer/Gruppen mit den UIDs/GIDs 0 und 65534) zu allen Zeiten aufgelost werden konnen, selbst wenn sie in /etc/passwd oder /etc/group nicht aufgefuhrt sind oder diese Dateien fehlen. Dieses Modul verwendet bevorzugt systemd-userdbd.service(8) zur Auflosung von Benutzern und Gruppen, funktioniert aber auch, wenn dieser Dienst nicht lauft. Um das NSS-Modul zu aktivieren, fugen Sie >>systemd<< zu den mit >>passwd:<<, >>group:<<, >>shadow:<< und >>gshadow:<< in /etc/nsswitch.conf beginnenden Zeilen hinzu. Es wird empfohlen, >>systemd<< nach dem >>files<<-Eintrag in den /etc/nsswitch.conf-Zeilen abzulegen, um sicherzustellen, dass /etc/passwd-, /etc/group-, /etc/shadow- und /etc/gshadow-basierte Abbildungen Vorrang haben. STATISCHE ERGANZUNGS-JSON-BENUTZER/GRUPPEN-DATENSATZE Neben den Benutzer-/Gruppendatensatzen, die uber die vorgenannten Varlink-IPC-Schnittstellen erlangt werden und die synthetisierten Konten von root und nobodoy, stellt dieses Modul auch Benutzer- und Gruppenkonten dem System zur Verfugung, die in statischen Erganzungsdateien in den Verzeichnissen /etc/userdb/, /run/userdb/, /run/host/userdb/ und /usr/lib/userdb/ definiert sind. Dies ist ein einfacher Mechanismus, statische Benutzer- und Gruppendatensatze mittels JSON-Erganzungsdateien bereitzustellen. Solche Benutzerdatensatze sollten in dem in der Spezifikation JSON-Benutzerdatensatze[2] beschriebenen Format bereitgestellt werden und in eines der vorgenannten Verzeichnisse unter einem Dateinamen abgelegt werden, der aus dem Benutzernamen mit angehangtem .user besteht; die Datei sollte fur alle lesbar sein. Es sollte auch ein Symlink, der nach der UID des Benutzerdatensatzes benannt, dezimal formatiert und mit angehangtem .user versehen ist, erstellt werden, der auf die primare Datensatzdatei zeigt, um Nachschlagen nach sowohl dem Benutzer als auch der UID zu ermoglichen. Es konnen optional auch privilegierte Benutzerdaten (z.B. gehashte UNIX-Passworter) bereitgestellt werden und zwar als Paar von getrennten Begleiterdateien mit der Endung .user-privileged. Die Daten sollten in einer regularen Datei gespeichert werden, die nach dem Benutzernamen benannt ist und die Endung .user-privileged tragt und einem Symlink, der darauf zeigt, der nach der verwandten numerischen UID, dezimal formatiert, benannt ist und die gleiche Endung hat. Diese Begleiterdateien sollten nur fur root lesbar sein. Beispiel: -rw-r--r--. 1 root root 723 May 10 foobar.user -rw-------. 1 root root 123 May 10 foobar.user-privileged lrwxrwxrwx. 1 root root 19 May 10 4711.user -> foobar.user lrwxrwxrwx. 1 root root 19 May 10 4711.user-privileged -> foobar.user-privileged Ahnlich konnen Gruppendatensatze, die dem in JSON-Gruppendatensatz[3] beschriebenen Format folgen, definiert werden. Sie verwenden die Endungen .group und .group-privileged. Die primaren Benutzer-/Gruppendatensatze (d.h. solche, mit der Endung .user und .group) sollten keinen >>privilegierten<< Abschnitt enthalten, wie das in der Spezifikation beschrieben ist. Ausschliesslich die privilegierten Benutzer-/Gruppendatensatzdateien (d.h. die mit den Endungen .user-privileged und .group-privileged) sollten diesen Abschnitt enthalten. Zusatzlich zu den zwei Arten von Benutzerdatensatzdateien und den zwei Arten von Gruppendatensatzdateien gibt es einen funften Dateityp, der in den Such-Verzeichnissen abgelegt werden kann: Dateien, die die Mitgliedschaft von Benutzern in Gruppen anzeigen. Konkret fur jedes Paar von Benutzer und Gruppe, bei denen der Benutzer ein Mitglied einer Gruppe sein soll, muss eine Datei mit Namen >>Benutzernamen:Gruppennamen.membership<< erstellt werden, d.h. dem UNIX-Benutzernamen in Textform, gefolgt von einem Doppelpunkt, gefolgt von dem UNIX-Gruppenname in Textform und angehangt >>.membership<<. Der Inhalt dieser Dateien wird aktuell nicht ausgelesen, es wird allerdings empfohlen, sie als ein leeres JSON-Objekt zu erstellen (d.h. "{}"). Die reine Existenz der Dateien reicht aus, um eine Benutzer/Gruppenmitgliedschaft zu betreffen. Falls ein Programm Benutzer- und/oder Gruppendatensatzdateien in den durchsuchten Verzeichnissen bereitstellt, muss es immer auch solche Dateien erstellen, sowohl fur die primaren, als auch fur die Nebengruppenmitgliedschaften. Beachten Sie, dass die statischen Benutzer-/Gruppendatensatze im Allgemeinen dazu in Konflikt stehende Datensatze /etc/passwd oder/etc/group oder anderen Kontodatenbanken nicht ausser Kraft setzen. Bevor diese Dateien entfernt werden, sollte vernunftige Sorgfalt walten gelassen werden, Konflikte bei Benutzer-/Gruppennamen und UIDs/GIDs zu vermeiden. Der Dienst systemd-userdb-load-credentials.service wird beim Systemstart automatisch ausgefuhrt und installiert diese Dateien aus den mittels System-Zugangsberechtigungen hereingereichten Benutzerdatensatzen. Weitere Details finden Sie in userdbctl(1) und systemd.system-credentials(7). KONFIGURATION IN /ETC/NSSWITCH.CONF Hier ist ein Beispiel fur eine /etc/nsswitch.conf-Datei, die nss-systemd korrekt aktiviert: passwd: files systemd group: files [SUCCESS=merge] systemd shadow: files systemd gshadow: files systemd hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis BEISPIEL: DURCH SYSTEMD-MACHINED.SERVICE BEREITGESTELLTE ABBILDUNGEN Der Container >>rawhide<< wird mittels systemd-nspawn(1) erzeugt: # systemd-nspawn -M rawhide --boot --network-veth --private-users=pick Spawning container rawhide on /var/lib/machines/rawhide. Selected user namespace base 20119552 and range 65536. $ machinectl --max-addresses=3 MACHINE CLASS SERVICE OS VERSION ADDRESSES rawhide container systemd-nspawn fedora 30 169.254.40.164 fe80::94aa:3aff:fe7b:d4b9 $ getent passwd vu-rawhide-0 vu-rawhide-81 vu-rawhide-0:*:20119552:65534:vu-rawhide-0:/:/usr/sbin/nologin vu-rawhide-81:*:20119633:65534:vu-rawhide-81:/:/usr/sbin/nologin $ getent group vg-rawhide-0 vg-rawhide-81 vg-rawhide-0:*:20119552: vg-rawhide-81:*:20119633: $ ps -o user:15,pid,tty,command -e|grep '^vu-rawhide' vu-rawhide-0 692 ? /usr/lib/systemd/systemd vu-rawhide-0 731 ? /usr/lib/systemd/systemd-journald vu-rawhide-192 734 ? /usr/lib/systemd/systemd-networkd vu-rawhide-193 738 ? /usr/lib/systemd/systemd-resolved vu-rawhide-0 742 ? /usr/lib/systemd/systemd-logind vu-rawhide-81 744 ? /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only vu-rawhide-0 746 ? /usr/sbin/sshd -D ... vu-rawhide-0 752 ? /usr/lib/systemd/systemd --user vu-rawhide-0 753 ? (sd-pam) vu-rawhide-0 1628 ? login -- zbyszek vu-rawhide-1000 1630 ? /usr/lib/systemd/systemd --user vu-rawhide-1000 1631 ? (sd-pam) vu-rawhide-1000 1637 pts/8 -zsh SIEHE AUCH systemd(1), systemd.exec(5), nss-resolve(8), nss-myhostname(8), nss-mymachines(8), systemd-userdbd.service(8), systemd-homed.service(8), systemd-machined.service(8), userdbctl(1), systemd.system-credentials(7), nsswitch.conf(5), getent(1) ANMERKUNGEN 1. Benutzer-/Gruppen-Datensatznachschlage-API uber Varlink https://systemd.io/USER_GROUP_API 2. JSON-Benutzerdatensatze https://systemd.io/USER_RECORD 3. JSON-Gruppendatensatz https://systemd.io/GROUP_RECORD 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 260.2 NSS-SYSTEMD(8)