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 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. 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.