Merge pull request #29926 from poettering/man-fixes

Various documentation fixes
This commit is contained in:
Lennart Poettering
2023-11-08 14:32:34 +01:00
committed by GitHub
10 changed files with 132 additions and 45 deletions
+2
View File
@@ -2243,6 +2243,8 @@ Features:
avatar/photo or so. This data should be stored along with the user record,
but probably shouldn't be part of the record itself, since it might be
large.
- add "homectl unbind" command to remove local user record of an inactive
home dir
* add a new switch --auto-definitions=yes/no or so to systemd-repart. If
specified, synthesize a definition automatically if we can: enlarge last
+26 -14
View File
@@ -704,28 +704,40 @@ for other purposes too.
The `perMachine` field in the top-level object is an array of objects. When
processing the user record first the various fields on the top-level object
should be used. Then this array should be iterated in order, and the various
settings be applied that match either the indicated machine ID or host
name. There may be multiple array entries that match a specific system, in
which case all the object's setting should be applied. If the same option is
set in the top-level object as in a per-machine object the latter wins and
entirely undoes the setting in the top-level object (i.e. no merging of
properties that are arrays themselves is done). If the same option is set in
multiple per-machine objects the one specified later in the array wins (and
here too no merging of individual fields is done, the later field always wins
in full).
should be parsed. Then, the `perMachine` array should be iterated in order, and
the various settings within each contained object should be applied that match
either the indicated machine ID or host name, overriding any corresponding
settings previously parsed from the top-level object. There may be multiple
array entries that match a specific system, in which case all settings should
be applied. If the same option is set in the top-level object as in a
per-machine object then the per-machine setting wins and entirely undoes the
setting in the top-level object (i.e. no merging of properties that are arrays
is done). If the same option is set in multiple per-machine objects the one
specified later in the array wins (and here too no merging of individual fields
is done, the later field always wins in full). To summarize, the order of
application is (last one wins):
1. Settings in the top-level object
2. Settings in the first matching `perMachine` array entry
3. Settings in the second matching `perMachine` array entry
4. …
5. Settings in the last matching `perMachine` array entry
The following fields are defined in this section:
`matchMachineId` → An array of strings that are formatted 128-bit IDs in
hex. If any of the specified IDs match the system's local machine ID
(i.e. matches `/etc/machine-id`) the fields in this object are honored.
(i.e. matches `/etc/machine-id`) the fields in this object are honored. (As a
special case, if only a single machine ID is listed this field may be a single
string rather than an array of strings.)
`matchHostname` → An array of strings that are valid hostnames. If any of
the specified hostnames match the system's local hostname, the fields in this
`matchHostname` → An array of strings that are valid hostnames. If any of the
specified hostnames match the system's local hostname, the fields in this
object are honored. If both `matchHostname` and `matchMachineId` are used
within the same array entry, the object is honored when either match succeeds,
i.e. the two match types are combined in OR, not in AND.
i.e. the two match types are combined in OR, not in AND. (As a special case, if
only a single machine ID is listed this field may be a single string rather
than an array of strings.)
These two are the only two fields specific to this section. All other fields
that may be used in this section are identical to the equally named ones in the
+5
View File
@@ -269,6 +269,11 @@
owned by a different UID when logging in, the home directory and everything underneath it will have
its ownership changed automatically before login completes.</para>
<para>Note that changing this option for existing home directories generally has no effect on home
directories that already have been registered locally (have a local <emphasis>binding</emphasis>), as
the UID used for an account on the local system is determined when the home directory is first
activated on it, and then remains in effect until the home directory is removed.</para>
<para>Note that users managed by <command>systemd-homed</command> always have a matching group
associated with the same name as well as a GID matching the UID of the user. Thus, configuring the
GID separately is not permitted.</para>
+8 -3
View File
@@ -305,9 +305,14 @@ node /org/freedesktop/home1 {
user record with the new passwords/authentication token data is specified as empty the existing user
record's settings are propagated down to the home directory storage. This is typically used after a
user record is updated using <function>UpdateHome()</function> in order to propagate the
secrets/authentication tokens down to the storage. This method is equivalent to
<function>ChangePassword()</function> on the <classname>org.freedesktop.home1.Home</classname>
interface.</para>
secrets/authentication tokens down to the storage. Background: depending on the backend the user's
authentication credentials are stored at multiple places: the user record kept on the host, the user
record kept in the home directory and the encrypted LUKS volume slot. If the home directory is used on
a different machined temporarily, and the password is changed there, and then is moved back to the
original host, the passwords of the three might get out of sync. By issuing
<function>ChangePasswordHome()</function> the three locations are updated to match the newest
information. This method is equivalent to <function>ChangePassword()</function> on the
<classname>org.freedesktop.home1.Home</classname> interface.</para>
<para><function>LockHome()</function> temporarily suspends access to a home directory, flushing out any
cryptographic keys from memory. This is only supported on some back-ends, and usually done during system
+7
View File
@@ -107,6 +107,13 @@
<citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for details of how search and route-only domains are used.</para>
<para>Note that configuring the MulticastDNS domain <literal>local</literal> as search or routing
domain has the effect of routing lookups for this domain to classic unicast DNS. This may be used to
provide compatibility with legacy installations that use this domain in a unicast DNS context,
against the IANA assignment of this domain to pure MulticastDNS purposes. Search and routing domains
are a unicast DNS concept, they <emphasis>cannot</emphasis> be used to resolve single-label lookups
via MulticastDNS.</para>
<xi:include href="version-info.xml" xpointer="v229"/>
</listitem>
</varlistentry>
+33 -14
View File
@@ -223,6 +223,18 @@ COREDUMP_FILENAME=/var/lib/systemd/coredump/core.Web….552351.….zst
<varlistentry>
<term><varname>COREDUMP_CGROUP=</varname></term>
<listitem><para>The primary cgroup of the unit of the crashed process.</para>
<para>When the crashed process was in a container, this is the full path, as seen outside of the
container.</para>
<xi:include href="version-info.xml" xpointer="v248"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>COREDUMP_PROC_CGROUP=</varname></term>
<listitem><para>Control group information in the format used in
<filename>/proc/self/cgroup</filename>. On systems with the unified cgroup hierarchy, this is a
single path prefixed with <literal>0::</literal>, and multiple paths prefixed with controller numbers
@@ -238,9 +250,10 @@ COREDUMP_FILENAME=/var/lib/systemd/coredump/core.Web….552351.….zst
<varlistentry>
<term><varname>COREDUMP_OWNER_UID=</varname></term>
<term><varname>COREDUMP_USER_UNIT=</varname></term>
<term><varname>COREDUMP_SESSION=</varname></term>
<listitem><para>The numerical UID of the user owning the login session or systemd user unit of the
crashed process, and the user manager unit. Both fields are only present for user processes.
</para>
crashed process, the user manager unit, and the sesion identifier. All three fields are only present
for user processes.</para>
<para>When the crashed process was in container, those are the values <emphasis>outside</emphasis>,
in the main system.</para>
@@ -315,23 +328,29 @@ flags: ...
</varlistentry>
<varlistentry>
<term><varname>COREDUMP_CMDLINE=</varname></term>
<term><varname>COREDUMP_COMM=</varname></term>
<term><varname>COREDUMP_PROC_STATUS=</varname></term>
<term><varname>COREDUMP_PROC_MAPS=</varname></term>
<term><varname>COREDUMP_PROC_LIMITS=</varname></term>
<term><varname>COREDUMP_PROC_MOUNTINFO=</varname></term>
<term><varname>COREDUMP_ENVIRON=</varname></term>
<term><varname>COREDUMP_PROC_AUXV=</varname></term>
<term><varname>COREDUMP_PROC_LIMITS=</varname></term>
<term><varname>COREDUMP_PROC_MAPS=</varname></term>
<term><varname>COREDUMP_PROC_MOUNTINFO=</varname></term>
<term><varname>COREDUMP_PROC_STATUS=</varname></term>
<listitem><para>Fields that map the per-process entries in the <filename>/proc/</filename>
filesystem: <filename>/proc/<replaceable>pid</replaceable>/comm</filename> (the command name
associated with the process), <filename>/proc/<replaceable>pid</replaceable>/exe</filename> (the
filename of the executed command), <filename>/proc/<replaceable>pid</replaceable>/status</filename>
(various metadata about the process), <filename>/proc/<replaceable>pid</replaceable>/maps</filename>
(memory regions visible to the process and their access permissions),
filesystem: <filename>/proc/<replaceable>pid</replaceable>/cmdline</filename> (the command line of
the crashed process), <filename>/proc/<replaceable>pid</replaceable>/comm</filename> (the command
name associated with the process), <filename>/proc/<replaceable>pid</replaceable>/environ</filename>
(the environment block of the crashed process),
<filename>/proc/<replaceable>pid</replaceable>/auxv</filename> (the auxiliary vector of the crashed
process, see <citerefentry
project='man-pages'><refentrytitle>getauxval</refentrytitle><manvolnum>3</manvolnum></citerefentry>),
<filename>/proc/<replaceable>pid</replaceable>/limits</filename> (the soft and hard resource limits),
<filename>/proc/<replaceable>pid</replaceable>/mountinfo</filename> (mount points in the process's
mount namespace), <filename>/proc/<replaceable>pid</replaceable>/environ</filename>
(the environment block of the crashed process).</para>
<filename>/proc/<replaceable>pid</replaceable>/maps</filename> (memory regions visible to the process
and their access permissions), <filename>/proc/<replaceable>pid</replaceable>/mountinfo</filename>
(mount points in the process's mount namespace),
<filename>/proc/<replaceable>pid</replaceable>/status</filename> (various metadata about the
process).</para>
<para>See
<citerefentry project='man-pages'><refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+1 -1
View File
@@ -475,7 +475,7 @@ SetCredentialEncrypted=mysql-password: \
<filename>xyz.service</filename>:</para>
<programlisting># mkdir -p /etc/systemd/system/xyz.service.d
# systemd-ask-password -n | systemd-creds encrypt --name=mysql-password -p - - >/etc/systemd/system/xyz.service.d/50-password.conf
# systemd-ask-password -n | ( echo "[Service]" &amp;&amp; systemd-creds encrypt --name=mysql-password -p - - ) >/etc/systemd/system/xyz.service.d/50-password.conf
# systemctl daemon-reload
# systemctl restart xyz.service</programlisting>
</example>
+24
View File
@@ -235,6 +235,30 @@
limitation does not apply to PKCS#11 tokens.</para>
</refsect1>
<refsect1>
<title>Compatibility</title>
<para>Security technology both in systemd and in the general industry constantly evolves. In order to
provide best security guarantees, the way TPM2, FIDO2, PKCS#11 devices are enrolled is regularly updated
in newer versions of systemd. Whenever this happens the following compatibility guarantees are given:</para>
<itemizedlist>
<listitem><para>Old enrollments continue to be supported and may be unlocked with newer versions of
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para></listitem>
<listitem><para>The opposite is not guaranteed however: it might not be possible to unlock volumes with
enrollments done with a newer version of <command>systemd-cryptenroll</command> with an older version
of <command>systemd-cryptsetup</command>.</para></listitem>
</itemizedlist>
<para>That said, it is generally recommended to use matching versions of
<command>systemd-cryptenroll</command> and <command>systemd-cryptsetup</command>, since this is best
tested and supported.</para>
<para>It might be advisable to re-enroll existing enrollments to take benefit of newer security features,
as they are added to systemd.</para>
</refsect1>
<refsect1>
<title>Options</title>
+18 -7
View File
@@ -1064,14 +1064,25 @@
<varlistentry>
<term><varname>NonBlocking=</varname></term>
<listitem><para>Set the <constant>O_NONBLOCK</constant> flag for all file descriptors passed via socket-based
activation. If true, all file descriptors >= 3 (i.e. all except stdin, stdout, stderr), excluding those passed
in via the file descriptor storage logic (see <varname>FileDescriptorStoreMax=</varname> for details), will
have the <constant>O_NONBLOCK</constant> flag set and hence are in non-blocking mode. This option is only
<listitem><para>Set the <constant>O_NONBLOCK</constant> flag for all file descriptors passed via
socket-based activation. If true, all file descriptors >= 3 (i.e. all except stdin, stdout, stderr),
excluding those passed in via the file descriptor storage logic (see
<varname>FileDescriptorStoreMax=</varname> for details), will have the
<constant>O_NONBLOCK</constant> flag set and hence are in non-blocking mode. This option is only
useful in conjunction with a socket unit, as described in
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry> and has no
effect on file descriptors which were previously saved in the file-descriptor store for example. Defaults to
false.</para></listitem>
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
and has no effect on file descriptors which were previously saved in the file-descriptor store for
example. Defaults to false.</para>
<para>Note that if the same socket unit is configured to be passed to multiple service units (via the
<varname>Sockets=</varname> setting, see below), and these services have different
<varname>NonBlocking=</varname> configurations, the precise state of <constant>O_NONBLOCK</constant>
depends on the order in which these services are invoked, and will possibly change after service code
already took possession of the socket file descriptor, simply because the
<constant>O_NONBLOCK</constant> state of a socket is shared by all file descriptors referencing
it. Hence it is essential that all services sharing the same socket use the same
<varname>NonBlocking=</varname> configuration, and do not change the flag in service code
either.</para></listitem>
</varlistentry>
<varlistentry>
+8 -6
View File
@@ -574,9 +574,10 @@ w- /proc/sys/vm/swappiness - - - - 10</programlisting></para>
removed unless applied to a directory. This functionality is particularly useful in conjunction with
<varname>Z</varname>.</para>
<para>Optionally, if prefixed with <literal>:</literal>, the configured access mode is only used when
creating new inodes. If the inode the line refers to already exists, its access mode is left in place
unmodified.</para>
<para>By default the access mode of listed inodes is set to the specified mode regardless if it is
created anew, or already existed. Optionally, if prefixed with <literal>:</literal>, the configured
access mode is only applied when creating new inodes, and if the inode the line refers to
already exists, its access mode is left in place unmodified.</para>
</refsect2>
<refsect2>
@@ -599,9 +600,10 @@ w- /proc/sys/vm/swappiness - - - - 10</programlisting></para>
Resolvability of User and Group Names</ulink> for more information on requirements on system user/group
definitions.</para>
<para>Optionally, if prefixed with <literal>:</literal>, the configured user/group information is only
used when creating new inodes. If the inode the line refers to already exists, its user/group is left
in place unmodified.</para>
<para>By default the ownership of listed inodes is set to the specified user/group regardless if it is
created anew, or already existed. Optionally, if prefixed with <literal>:</literal>, the configured
user/group information is only applied when creating new inodes, and if the inode the line refers to
already exists, its user/group is left in place unmodified.</para>
</refsect2>
<refsect2>