man: update pam_systemd to reflect recent changes

1. Document the new desktop= parameter

2. Clarify that we set XDG_SESSION_DESKTOP, XDG_SESSION_CLASS,
   XDG_SESSION_TYPE if we have the data, and don't just read it.
This commit is contained in:
Lennart Poettering 2018-07-20 11:53:34 +02:00
parent d487e2d68d
commit b115f33cc6

View file

@ -84,40 +84,43 @@
<varlistentry> <varlistentry>
<term><option>class=</option></term> <term><option>class=</option></term>
<listitem><para>Takes a string argument which sets the session <listitem><para>Takes a string argument which sets the session class. The <varname>XDG_SESSION_CLASS</varname>
class. The XDG_SESSION_CLASS environmental variable takes environment variable (see below) takes precedence. One of <literal>user</literal>, <literal>greeter</literal>,
precedence. One of <literal>lock-screen</literal> or <literal>background</literal>. See
<literal>user</literal>, <citerefentry><refentrytitle>sd_session_get_class</refentrytitle><manvolnum>3</manvolnum></citerefentry> for
<literal>greeter</literal>, details about the session class.</para></listitem>
<literal>lock-screen</literal> or
<literal>background</literal>. See
<citerefentry><refentrytitle>sd_session_get_class</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details about the session class.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>type=</option></term> <term><option>type=</option></term>
<listitem><para>Takes a string argument which sets the session <listitem><para>Takes a string argument which sets the session type. The <varname>XDG_SESSION_TYPE</varname>
type. The XDG_SESSION_TYPE environmental variable takes environment variable (see below) takes precedence. One of <literal>unspecified</literal>,
precedence. One of <literal>tty</literal>, <literal>x11</literal>, <literal>wayland</literal> or <literal>mir</literal>. See
<literal>unspecified</literal>, <citerefentry><refentrytitle>sd_session_get_type</refentrytitle><manvolnum>3</manvolnum></citerefentry> for
<literal>tty</literal>, details about the session type.</para></listitem>
<literal>x11</literal>, </varlistentry>
<literal>wayland</literal> or
<literal>mir</literal>. See <varlistentry>
<citerefentry><refentrytitle>sd_session_get_type</refentrytitle><manvolnum>3</manvolnum></citerefentry> <term><option>desktop=</option></term>
for details about the session type.</para></listitem>
<listitem><para>Takes a single, short identifier string for the desktop environment. The
<varname>XDG_SESSION_DESKTOP</varname> environment variable (see below) takes precedence. This may be used to
indicate the session desktop used, where this applies and if this information is available. For example:
<literal>GNOME</literal>, or <literal>KDE</literal>. It is recommended to use the same identifiers and
capitalization as for <varname>$XDG_CURRENT_DESKTOP</varname>, as defined by the <ulink
url="http://standards.freedesktop.org/desktop-entry-spec/latest/">Desktop Entry
Specification</ulink>. (However, note that the option only takes a single item, and not a colon-separated list
like <varname>$XDG_CURRENT_DESKTOP</varname>.) See
<citerefentry><refentrytitle>sd_session_get_desktop</refentrytitle><manvolnum>3</manvolnum></citerefentry> for
further details.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>debug<optional>=</optional></option></term> <term><option>debug<optional>=</optional></option></term>
<listitem><para>Takes an optional <listitem><para>Takes an optional boolean argument. If yes or without the argument, the module will log
boolean argument. If yes or without debugging information as it operates.</para></listitem>
the argument, the module will log
debugging information as it
operates.</para></listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</refsect1> </refsect1>
@ -131,20 +134,20 @@
<refsect1> <refsect1>
<title>Environment</title> <title>Environment</title>
<para>The following environment variables are set for the <para>The following environment variables are initialized by the module and available to the processes of the
processes of the user's session:</para> user's session:</para>
<variablelist class='environment-variables'> <variablelist class='environment-variables'>
<varlistentry> <varlistentry>
<term><varname>$XDG_SESSION_ID</varname></term> <term><varname>$XDG_SESSION_ID</varname></term>
<listitem><para>A session identifier, suitable to be used in <listitem><para>A short session identifier, suitable to be used in filenames. The string itself should be
filenames. The string itself should be considered opaque, considered opaque, although often it is just the audit session ID as reported by
although often it is just the audit session ID as reported by <filename>/proc/self/sessionid</filename>. Each ID will be assigned only once during machine uptime. It may
<filename>/proc/self/sessionid</filename>. Each ID will be hence be used to uniquely label files or other resources of this session. Combine this ID with the boot
assigned only once during machine uptime. It may hence be used identifier, as returned by
to uniquely label files or other resources of this <citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>, for a
session.</para></listitem> globally unique identifier for the current session.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -174,45 +177,31 @@
</variablelist> </variablelist>
<para>The following environment variables are read by the module <para>The following environment variables are read by the module and may be used by the PAM service to pass
and may be used by the PAM service to pass metadata to the metadata to the module. If these variables are not set when the PAM module is invoked but can be determined
module:</para> otherwise they are set by the module, so that these variables are initialized for the session and applications if
known at all.</para>
<variablelist class='environment-variables'> <variablelist class='environment-variables'>
<varlistentry> <varlistentry>
<term><varname>$XDG_SESSION_TYPE</varname></term> <term><varname>$XDG_SESSION_TYPE</varname></term>
<listitem><para>The session type. This may be used instead of <listitem><para>The session type. This may be used instead of <option>session=</option> on the module parameter
<option>session=</option> on the module parameter line, and is line, and is usually preferred.</para></listitem>
usually preferred.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><varname>$XDG_SESSION_CLASS</varname></term> <term><varname>$XDG_SESSION_CLASS</varname></term>
<listitem><para>The session class. This may be used instead of <listitem><para>The session class. This may be used instead of <option>class=</option> on the module parameter
<option>class=</option> on the module parameter line, and is line, and is usually preferred.</para></listitem>
usually preferred.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><varname>$XDG_SESSION_DESKTOP</varname></term> <term><varname>$XDG_SESSION_DESKTOP</varname></term>
<listitem><para>A single, short identifier string for the <listitem><para>The desktop identifier. This may be used instead of <option>desktop=</option> on the module
desktop environment. This may be used to indicate the session parameter line, and is usually preferred.</para></listitem>
desktop used, where this applies and if this information is
available. For example: <literal>GNOME</literal>, or
<literal>KDE</literal>. It is recommended to use the same
identifiers and capitalization as for
<varname>$XDG_CURRENT_DESKTOP</varname>, as defined by the
<ulink
url="http://standards.freedesktop.org/desktop-entry-spec/latest/">Desktop
Entry Specification</ulink>. (However, note that
<varname>$XDG_SESSION_DESKTOP</varname> only takes a single
item, and not a colon-separated list like
<varname>$XDG_CURRENT_DESKTOP</varname>.) See
<citerefentry><refentrytitle>sd_session_get_desktop</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more details.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>