Descriptionpam_systemd registers user
- sessions in the systemd login manager
+ sessions with the systemd login manager
systemd-logind.service8,
and hence the systemd control group hierarchy.
@@ -80,29 +80,32 @@
an independent session counter is
used.
- A new control group
- /user/$USER/$XDG_SESSION_ID
- is created and the login process moved into
- it.
+ A new systemd scope unit is
+ created for the session. If this is the first
+ concurrent session of the user, an implicit
+ slice below user.slice is
+ automatically created and the scope placed in
+ it. In instance of the system service
+ user@.service which runs
+ the systemd user manager
+ instance.On logout, this module ensures the following:
- If
- $XDG_SESSION_ID is set and
- specified, all
- remaining processes in the
- /user/$USER/$XDG_SESSION_ID
- control group are killed and the control group
- is removed.
-
- If the last subgroup of the
- /user/$USER control group
- was removed the
+ If this is enabled, all
+ processes of the session are terminated. If
+ the last concurrent session of a user ends, his
+ user systemd instance will be terminated too,
+ and so will the user's slice
+ unit.
+
+ If the last concurrent session
+ of a user ends, the
$XDG_RUNTIME_DIR directory
- and all its contents are
- removed, too.
+ and all its contents are removed,
+ too.If the system was not booted up with systemd as
@@ -117,121 +120,47 @@
The following options are understood:
-
-
-
- Takes a boolean
- argument. If true, all processes
- created by the user during his session
- and from his session will be
- terminated when he logs out from his
- session.
-
-
-
- Takes a comma-separated
- list of usernames or
- numeric user IDs as argument. If this
- option is used, the effect of the
- options
- will apply only to the listed
- users. If this option is not used, the
- option applies to all local
- users. Note that
-
- takes precedence over this list and is
- hence subtracted from the list
- specified here.
-
-
-
-
-
- Takes a comma-separated
- list of usernames or
- numeric user IDs as argument. Users
- listed in this argument will not be
- subject to the effect of
- .
- Note that this option takes precedence
- over
- , and
- hence whatever is listed for
-
- is guaranteed to never be killed by
- this PAM module, independent of any
- other configuration
- setting.
-
-
-
-
-
- Takes a comma-separated
- list of control group
- controllers in which hierarchies a
- user/session control group will be
- created by default for each user
- logging in, in addition to the control
- group in the named 'name=systemd'
- hierarchy. If omitted, defaults to an
- empty list.
-
+
-
-
-
- Takes a comma-separated
- list of control group
- controllers in which hierarchies the
- logged in processes will be reset to
- the root control
- group.
+ Takes a string
+ argument which sets the session class.
+ The XDG_SESSION_CLASS environmental variable
+ takes precedence. One of
+ user,
+ greeter,
+ lock-screen or
+ background. See
+ sd_session_get_class3
+ for details about the session class.
-
+ Takes a string
- argument which sets the session class.
- The XDG_SESSION_CLASS environmental variable
- takes precedence.
+ argument which sets the session type.
+ The XDG_SESSION_TYPE environmental
+ variable takes precedence. One of
+ unspecified,
+ tty,
+ x11 or
+ wayland. See
+ sd_session_get_type3
+ for details about the session type.
-
+
- Takes a boolean
- argument. If yes, the module will log
+ Takes an optional
+ boolean argument. If yes or without
+ the argument, the module will log
debugging information as it
operates.
-
- Note that setting
- kill-session-processes=1 will break tools
- like
- screen1.
-
- Note that
- kill-session-processes=1 is a
- stricter version of
- KillUserProcesses=1 which may be
- configured system-wide in
- logind.conf5. The
- former kills processes of a session as soon as it
- ends; the latter kills processes as soon as the last
- session of the user ends.
-
- If the options are omitted they default to
- ,
- ,
- ,
- ,
- ,
- .
@@ -293,6 +222,66 @@
operating system
provides.
+
+
+
+ The following environment variables are read by
+ the module and may be used by the PAM service to pass
+ metadata to the module:
+
+
+
+ $XDG_SESSION_TYPE
+
+ The session type. This
+ may be used instead of
+ on the
+ module parameter line, and is usually
+ preferred.
+
+
+
+ $XDG_SESSION_CLASS
+
+ The session class. This
+ may be used instead of
+ on the
+ module parameter line, and is usually
+ preferred.
+
+
+
+ $XDG_SESSION_DESKTOP
+
+ The session
+ deskop. This may be used to indicate
+ the session desktop used, where this
+ applies. This should be a short,
+ lowercase string identifying the
+ desktop environment used if this
+ information is available. For example:
+ gnome, or
+ kde.
+
+
+
+ $XDG_SEAT
+
+ The seat name the session
+ shall be registered for, if
+ any.
+
+
+
+ $XDG_VTNR
+
+ The VT number the
+ session shall be registered for, if
+ any. (Only applies to seats with a VT
+ available, such as
+ seat0)
+
+
@@ -306,7 +295,7 @@ account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
session required pam_loginuid.so
-session required pam_systemd.so kill-session-processes=1
+session required pam_systemd.so
@@ -319,7 +308,10 @@ session required pam_systemd.so kill-session-processes=1
pam.conf5,
pam.d5,
pam8,
- pam_loginuid8
+ pam_loginuid8,
+ systemd.scope5,
+ systemd.slice5,
+ systemd.service5