pam_xdg.so
— PAM
module that manages XDG Base Directories
pam_xdg.so |
[runtime] [notroot]
[track_sessions
[per_user_lock]] |
pam_xdg.so
is a PAM module that manages
creation of the XDG_RUNTIME_DIR
directory, as well
as injection of environment variables denoting all directories specified by
the
XDG
Base Directory Specification 0.8, into user sessions.
When linked into the PAM session system the runtime directory will
be created once a user creates his or her first login session. Unless
runtime was given all XDG related environment
variables will be created in all user sessions with their default or
computed values, otherwise only XDG_RUNTIME_DIR
. If
notroot was given the module will bypass itself for
root account logins and perform no actions for root, except removing any
possibly existing XDG environment variable. Lastly
track_sessions will enable session tracking: once the
last session ends, the user's XDG_RUNTIME_DIR
will
be recursively removed; on high-load servers then setting
per_user_lock will reduce lock file lock
contention.
In order to make use of this module, place the following in the
‘session
’ part of the control file of
desire under /etc/pam.d, on Linux it may be
/etc/pam.d/common-session if that exists, on BSD's
the files /etc/pam.d/system as well as
/etc/pam.d/login,
/etc/pam.d/sshd and
/etc/pam.d/su may be desirable, adjusting paths as
necessary:
session optional pam_xdg.so notroot track_sessions
Steffen Nurpmeso
⟨steffen@sdaoden.eu⟩.
On Unix systems any “daemonized” program or script
is reparented to the program running with PID 1, most likely leaving the PAM
user session without PAM recognizing this. Yet careless such code may hold
or expect availability of resources of the session it just left, truly
performing cleanup when sessions end seems thus unwise. Since so many PAM
modules do support session tracking and cleanup
pam_xdg.so
readded optional support for this.