Provided by: manpages-de_4.15.0-9_all bug

BEZEICHNUNG

       pam_systemd - Benutzersitzungen beim Systemd-Anmeldeverwalter registrieren

ÜBERSICHT

       pam_systemd.so

BESCHREIBUNG

       pam_systemd registriert Benutzersitzungen beim Systemd-Anmeldeverwalter
       systemd-logind.service(8) und damit in der Systemd-Control-Gruppen-Hierarchie.

       Das Modul wendet auch verschiedene Ressourcenverwaltungs- und Laufzeitparameter auf die
       neue Sitzung an, wie dies in dem JSON-Benutzerdatensätze[1] des Benutzers, falls dieser
       definiert ist, konfiguriert wurde.

       Bei der Anmeldung stellt dieses Modul in Zusammenarbeit mit systemd-logind.service
       Folgendes sicher:

        1. Falls es noch nicht existiert, wird das Benutzerlaufzeitverzeichnis /run/user/$UID
           entweder erstellt oder als neues »tmpfs«-Dateisystem mit Quota angewandt und dessen
           Eigentümerschaft auf den sich anmeldenden Benutzer geändert.

        2. Die Umgebungsvariable $XDG_SESSION_ID wird initialisiert. Falls Auditierung verfügbar
           ist und pam_loginuid.so vor diesem Modul ausgeführt wurde (was nachdrücklich empfohlen
           wird), wird die Variable aus der Auditierungssitzungskennung (/proc/self/sessionid)
           initialisiert. Andernfalls wird ein unabhängiger Sitzungszähler verwandt.

        3. Für die Sitzung wird eine neue Systemd-Bereichs-Unit erstellt. Falls dies die erste
           parallele Sitzung des Benutzer ist, wird automatisch eine implizite benutzerbezogene
           Scheiben-Unit unterhalb user.slice erstellt und die Bereichs-Unit dorthinein gelegt.
           Es wird eine Instanz des Systemdienstes user@.service, der als
           Systemd-Benutzerverwalterinstanz läuft, gestartet.

        4. Die Umgebungsvariablen »$TZ«, »$EMAIL« und »$LANG« werden für den Benutzer basierend
           auf den entsprechenden Daten aus dem JSON-Benutzerdatensatz (falls dieser definiert
           ist), konfiguriert. Desweiteren werden alle Umgebungsvariablen, die in dem
           Benutzerdatensatz explizit konfiguriert sind, importiert und die Umask, die Nice-Stufe
           sowie die Ressourcenbegrenzungen initialisiert.

       Bei der Abmeldung stellt dieses Modul Folgendes sicher:

        1. Falls in logind.conf(5) (KillUserProcesses=) aktiviert, werden alle Prozesse der
           Sitzung beendet. Falls die letzte parallele Sitzung eines Benutzers endet, wird auch
           die Systemd-Instanz sowie die Scheiben-Unit des Benutzer beendet.

        2. Falls die letzte parallele Benutzersitzung endet, wird auch das
           Benutzerlaufzeitverzeichnis und alle seine Inhalte entfernt.

       Falls das System nicht mit Systemd als Init-System hochgefahren wurde, wird dieses Modul
       nichts machen und sofort PAM_SUCCESS zurückliefern.

OPTIONEN

       Die folgenden Optionen werden verstanden:

       class=
           Akzeptiert ein Zeichenkettenargument, das die Sitzungsklasse setzt. Die
           Umgebungsvariable XDG_SESSION_CLASS (siehe unten) hat Vorrang. Entweder »user«,
           »greeter«, »lock-screen« oder »background«. Siehe sd_session_get_class(3) für Details
           über die Sitzungsklasse.

       type=
           Akzeptiert ein Zeichenkettenargument, das den Sitzungstyp setzt. Die Umgebungsvariable
           XDG_SESSION_TYPE (siehe unten) hat Vorrang. Entweder »unspecified«, »tty«, »x11«,
           »wayland« oder »mir«. Siehe sd_session_get_type(3) für Details über den Sitzungstyp.

       desktop=
           Akzeptiert eine einzelne, kurze Identifikationszeichenkette für die Desktop-Umgebung.
           Die Umgebungsvariable XDG_SESSION_DESKTOP (siehe unten) hat Vorrang. Dies kann zum
           Hinweis auf die eingesetzte Desktop-Sitzung verwandt werden, auf die dies zutrifft und
           falls die Information verfügbar ist. Beispielsweise »GNOME« oder »KDE«. Es wird
           empfohlen, die gleichen Kennzeichner und die gleiche Groß-/Kleinschreibung wie für
           $XDG_CURRENT_DESKTOP, wie dies durch die Desktop-Eintragsspezifikation[2] festgelegt
           ist, zu verwenden. (Beachten Sie allerdings, dass die Option nur einen einzelnen
           Eintrag und keine durch Doppelpunkt getrennte Liste wie $XDG_CURRENT_DESKTOP
           akzeptiert.) Siehe sd_session_get_desktop(3) für weitere Details.

       debug[=]
           Akzeptiert ein optionales logisches Argument. Falls »yes« oder ohne Argument, wird das
           Modul Fehlersuchinformationen beim Betrieb protokollieren.

BEREITGESTELLTE MODULTYPEN

       Es wird nur session bereitgestellt.

UMGEBUNGSVARIABLEN

       Die folgenden Umgebungsvariablen werden durch das Modul initialisiert und stehen den
       Prozessen der Sitzung des Benutzers zur Verfügung:

       $XDG_SESSION_ID
           Ein kurzer, zur Verwendung in Dateinamen geeigneter Sitzungskennzeichner. Die
           Zeichenkette selbst sollte als opak betrachtet werden, obwohl es oft nur die durch
           /proc/self/sessionid gemeldete Auditsitzungskennung ist. Jede Kennung wird während der
           Maschinenlaufzeit nur einmal vergeben. Sie kann daher zur eindeutigen Kennzeichnung
           von Dateien oder anderer Ressourcen während dieser Sitzung verwandt werden.
           Kombinieren Sie diese Kennzeichnung mit der durch sd_id128_get_boot(3)
           zurückgelieferten Systemstartkennzeichnung, um eine global eindeutige Kennzeichnung zu
           erhalten.

       $XDG_RUNTIME_DIR
           Pfad zu einem für den Benutzer privaten und beschreibbaren Verzeichnis, das nur
           während der Anmeldezeit des Benutzers an der Maschine existiert. Es wird beim
           erstmaligen Anmelden eines Benutzers an der Maschine automatisch erstellt und bei der
           letzten Abmeldung entfernt. Falls der Benutzer sich zweimal zur gleichen Zeit
           anmeldet, werden beide Sitzungen die gleiche $XDG_RUNTIME_DIR und die gleichen Inhalte
           sehen. Falls sich ein Benutzer einmal anmeldet und dann wieder abmeldet und wieder
           anmeldet, werden die Inhalte des Verzeichnisses dazwischen verloren gehen; Anwendungen
           sollten sich aber nicht auf dieses Verhalten verlassen und müssen mit verbliebenen
           alten Dateien umgehen können. Um sitzungsbezogene Daten in diesem Verzeichnis zu
           speichern, sollte der Benutzer den Wert von $XDG_SESSION_ID im Dateinamen
           einschließen. Dieses Verzeichnis muss für Laufzeitsystemobjekte wie AF_UNIX-Sockets,
           FIFOs, PID-Dateien und Ähnliches verwandt werden. Es wird garantiert, dass dieses
           Verzeichnis lokal ist und die größtmögliche Menge an Dateisystemfunktionalitäten
           bereitstellt, die das Betriebssystem anbietet. Für weitere Details siehe die
           XDG-Basisverzeichnisspezifikation[3]. $XDG_RUNTIME_DIR wird nicht gesetzt, falls der
           aktuelle Benutzer nicht der ursprüngliche Benutzer der Sitzung ist.

       $TZ, $EMAIL, $LANG
           Falls für den anmeldenden Benutzer ein JSON-Benutzerdatensatz bekannt ist, werden
           diese Variablen aus den entsprechenden Einträgen in dem Datensatz initialisiert.

       Die folgenden Umgebungsvariablen werden vom Modul gelesen und können vom PAM-Dienst
       verwandt werden, um Metadaten an das Modul zu übergeben. Falls diese Variablen nicht beim
       Aufruf des PAM-Moduls gesetzt sind, aber anderweitig bestimmt werden können, werden sie
       vom Modul gesetzt, so dass diese Variablen für die Sitzung und Anwendungen initialisiert
       sind, falls sie überhaupt bekannt sind.

       $XDG_SESSION_TYPE
           Der Sitzungstyp. Dies kann anstelle von type= auf der Modulparameterzeile verwandt
           werden und wird normalerweise bevorzugt.

       $XDG_SESSION_CLASS
           Die Sitzungsklasse. Dies kann anstelle von class= auf der Modulparameterzeile verwandt
           werden und wird normalerweise bevorzugt.

       $XDG_SESSION_DESKTOP
           Der Desktop-Kennzeichner. Dieser kann statt desktop= auf der Modulparameterzeile
           verwandt werden und wird normalerweise bevorzugt.

       $XDG_SEAT
           Der Name des Sitzes, für den die Sitzung registriert werden soll, falls vorhanden.

       $XDG_VTNR
           Die Nummer des VTs, für das die Sitzung registriert werden soll, falls vorhanden.
           (Gilt nur für Sitze mit einem verfügbaren VT, wie »seat0«.)

       pam_systemd wird $XDG_SEAT und $XDG_VTNR basierend auf der Variablen $DISPLAY (falls
       letztere gesetzt ist) initialisieren, falls sie nicht gesetzt sind.

SITZUNGSBEGRENZUNGEN

       PAM-Module, die früher im Stapel, d.h. vor pam_systemd.so kommen, können mittels
       PAM-Kontextobjekten Sitzungsbereichsbegrenzungen setzen. Die Daten für diese Objekte
       werden als NUL-begrenzte C-Zeichenketten bereitgestellt und direkt in die zugehörigen
       Unit-Ressourcensteuerungsdirektiven eingeblendet. Beachten Sie, dass diese Begrenzungen
       für individuelle Sitzungen des Benutzers gelten, sie gelten nicht für alle
       Benutzerprozesse zusammengenommen. Insbesondere wird die benutzerbezogene
       user@.service-Unit-Instanz, die innerhalb des systemd --user-Verwalterprozesses und seiner
       Kinder läuft, außerhalb jeglicher Sitzung nachverfolgt, von allen Benutzersitzungen
       gemeinsam benutzt und ist nicht von diesen Begrenzungen betroffen.

       Siehe systemd.resource-control(5) für weitere Informationen über die Ressourcen. Siehe
       auch pam_set_data(3) für zusätzliche Informationen über die Arten, Kontextobjekte zu
       setzen.

       systemd.memory_max=
           Setzt Unit MemoryMax=.

       systemd.tasks_max=
           Setzt Unit TasksMax=.

       systemd.cpu_weight=
           Setzt Unit CPUWeight=.

       systemd.io_weight=
           Setzt Unit IOWeight=.

       systemd.runtime_max_sec=
           Setzt Unit RuntimeMaxSec=.

       Beispieldaten können von einem anderen PAM-Modul bereitgestellt werden:

           pam_set_data(handle, "systemd.memory_max", (void *)"200M", cleanup);
           pam_set_data(handle, "systemd.tasks_max",  (void *)"50",   cleanup);
           pam_set_data(handle, "systemd.cpu_weight", (void *)"100",  cleanup);
           pam_set_data(handle, "systemd.io_weight",  (void *)"340",  cleanup);
           pam_set_data(handle, "systemd.runtime_max_sec", (void *)"3600", cleanup);

BEISPIEL

       Hier ist ein Beispiel-PAM-Konfigurationsfragment, das die Verwaltung von Benutzersitzungen
       durch systemd-logind.service erlaubt:

           #%PAM-1.0
           auth      sufficient pam_unix.so
           -auth     sufficient pam_systemd_home.so
           auth      required   pam_deny.so

           account   required   pam_nologin.so
           -account  sufficient pam_systemd_home.so
           account   sufficient pam_unix.so
           account   required   pam_permit.so

           -password sufficient pam_systemd_home.so
           password  sufficient pam_unix.so sha512 shadow try_first_pass use_authtok

           password  required   pam_deny.so

           -session  optional   pam_keyinit.so revoke
           -session  optional   pam_loginuid.so
           -session  optional   pam_systemd_home.so
           -session  optional   pam_systemd.so
           session   required   pam_unix.so

SIEHE AUCH

       systemd(1), systemd-logind.service(8), logind.conf(5), loginctl(1), pam_systemd_home(8),
       pam.conf(5), pam.d(5), pam(8), pam_loginuid(8), systemd.scope(5), systemd.slice(5),
       systemd.service(5)

ANMERKUNGEN

        1. JSON-Benutzerdatensätze
           https://systemd.io/USER_RECORD

        2. Desktop-Eintragsspezifikation
           http://standards.freedesktop.org/desktop-entry-spec/latest/

        3. XDG-Basisverzeichnisspezifikation
           http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann
       <debian@helgefjell.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License
       Version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ oder neuer bezüglich der Copyright-
       Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an die Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.