PAM_SYSTEMD(8) pam_systemd PAM_SYSTEMD(8) (NAME) pam_systemd - (systemd-logind) (SYNOPSIS) pam_systemd.so (DESCRIPTION) pam_systemd systemd- logind.service(8) (cgroup) . JSON (JSON User Records)[1] ( ) . (login) -- systemd-logind.service -- : 1. /run/user/$UID "tmpfs" (quota) (mount) . 2. $XDG_SESSION_ID . (auditing) pam_loginuid.so ( ) (/proc/self/sessionid) . . 3. (scope unit) . (slice unit) user.slice . user@.service . 4. "$TZ" "$EMAIL" "$LANG" JSON ( ) . (import) umask nice . (logout) : 1. logind.conf(5) (KillUserProcesses=) . (slice) . 2. /run/user/$UID . init PAM_SUCCESS . (OPTIONS) : class= . XDG_SESSION_CLASS ( ) . sd_session_get_class(3) . : 1. +-----------------+----------------------------------+ | | | +-----------------+----------------------------------+ |user | | | | | | | | | | . | | | | | | | | | | | | | | | | | | | | | TTY | | | X | | | . | +-----------------+----------------------------------+ |user-early | user | | | | | | | | | | | | | | | systemd-user-sessions.service(8) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . | | | | | | | | | | | | | | | | | | (root) | | | | | | | | | user | | | | | | . | | | ( | | | | | | .) | +-----------------+----------------------------------+ |user-light | user | | | | | | | | | | | | user@.service(5) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . | | | ( | | | | | | .) | +-----------------+----------------------------------+ |user-early-light | user-early | | | | | | | | | | | | user@.service(5) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . | | | ( | | | | | | .) | +-----------------+----------------------------------+ |user-incomplete | user | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . | | | | | | | | | systemd-homed.service(8) | | | | | | | | | | | | | | | | | | | | | | | | | | | ssh(1) | | | | | | | | | | | | | | | | | | | | | | | | | | | . | | | | | | | | | | | | | | | | | | | | | | | | user | | | . | +-----------------+----------------------------------+ |greeter | user | | | | | | | | | | | | | | | | | | | | | (display | | | manager) | | | | | | | | | | | | | | | | | | | | | . | +-----------------+----------------------------------+ |lock-screen | user | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . | +-----------------+----------------------------------+ |background | | | | | | | | | | | | | | | | | | | | | | cron(8) | | | | | | | | | | | | . | | | | | | | | | | | | | | | | | | | | | TTY | | | X | | | | | | . | +-----------------+----------------------------------+ |background-light | background | | | | | | | | | | | | user@.service(5) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . | | | ( | | | | | | .) | +-----------------+----------------------------------+ |manager | user@.service(5) | | | | | | | | | | | | . | | | ( | | | | | | .) | +-----------------+----------------------------------+ |manager-early | manager | | | | | | | | | (root). | | | user | | | | | | user-early | | | . | | | ( | | | | | | .) | +-----------------+----------------------------------+ |none | | | | logind | | | | | | . | | | (scope) | | | | | | | | | | | | | | | | | | . | | | ( | | | | | | .) | +-----------------+----------------------------------+ PAM $XDG_SESSION_CLASS ( ) TTY X11 . PAM $XDG_SESSION_CLASS . ( crontab(5)) background background-light run0 --setenv=XDG_SESSION_CLASS=user-light user user-light . . type= . XDG_SESSION_TYPE ( ) . unspecified tty x11 wayland mir web. sd_session_get_type(3) . . desktop= . XDG_SESSION_DESKTOP ( ) . : GNOME KDE. / $XDG_CURRENT_DESKTOP (Desktop Entry Specification)[2] . ( $XDG_CURRENT_DESKTOP.) sd_session_get_desktop(3) . . area= . $HOME ~/Areas/ . $XDG_AREA ( ) . . ( pam_systemd_home(8) ) . $HOME . sshd(8) SSH . . area= . . . (area) pam_systemd_home(8) . . default-capability-bounding-set=, default-capability-ambient-set= (process capabilities) ( CAP_WAKE_ALARM CAP_BLOCK_SUSPEND ) . capabilities(7) . (bounding set) ( ). (ambient set) PAM (seat) user@.service CAP_WAKE_ALARM . . . debug[=] . yes . (PROVIDED MODULE TYPES) session . (ENVIRONMENT) : $XDG_SESSION_ID . (opaque) (audit) /proc/self/sessionid . (uptime) . . sd_id128_get_boot(3) . $XDG_RUNTIME_DIR . . $XDG_RUNTIME_DIR . . $XDG_SESSION_ID . AF_UNIX FIFO PID . . XDG (XDG Base Directory Specification)[3] . $XDG_RUNTIME_DIR . $TZ, $EMAIL, $LANG JSON . . $SHELL_PROMPT_PREFIX, $SHELL_PROMPT_SUFFIX, $SHELL_WELCOME (service credentials) "shell.prompt.prefix" "shell.prompt.suffix" "shell.welcome" ( ) . (shell prompt) ( $SHELL_PROMPT_PREFIX $PS1 $SHELL_PROMPT_SUFFIX ) . . PAM (metadata) . PAM . $XDG_SESSION_TYPE . type= . . $XDG_SESSION_CLASS . class= . . $XDG_SESSION_DESKTOP . desktop= . . $XDG_SEAT (seat) ( ). . $XDG_VTNR VT ( ). ( VT "seat0" ). . $XDG_AREA ( ) ( ) . . . . $XDG_SESSION_EXTRA_DEVICE_ACCESS . "ID" "xaccess-ID" udev . . pam_systemd $XDG_SEAT $XDG_VTNR $DISPLAY ( ) . (SESSION LIMITS) PAM pam_systemd.so (context) PAM . C NUL . . user@.service systemd --user . systemd.resource-control(5) . pam_set_data(3) . systemd.memory_max= MemoryMax= . . systemd.tasks_max= TasksMax= . . systemd.cpu_weight= CPUWeight= . . systemd.io_weight= IOWeight= . . systemd.runtime_max_sec= RuntimeMaxSec= . . PAM : 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); (EXAMPLE) PAM systemd-logind.service : #%PAM-1.0 -auth [success=done authtok_err=bad perm_denied=bad maxtries=bad default=ignore] pam_systemd_home.so auth sufficient pam_unix.so auth required pam_deny.so account required pam_nologin.so -account [success=done authtok_expired=bad new_authtok_reqd=bad maxtries=bad acct_expired=bad default=ignore] pam_systemd_home.so account required pam_unix.so -password sufficient pam_systemd_home.so password sufficient pam_unix.so sha512 shadow try_first_pass 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 (SEE ALSO) systemd(1), systemd-user-sessions.service(8), user@.service(5), 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) (NOTES) 1. JSON (JSON User Records) https://systemd.io/USER_RECORD 2. (Desktop Entry Specification) https://standards.freedesktop.org/desktop-entry-spec/latest 3. XDG (XDG Base Directory Specification) https://standards.freedesktop.org/basedir-spec/basedir-spec- latest.html systemd 261.2 PAM_SYSTEMD(8)