diff options
Diffstat (limited to 'man/systemd-homed.service.xml')
-rw-r--r-- | man/systemd-homed.service.xml | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/man/systemd-homed.service.xml b/man/systemd-homed.service.xml new file mode 100644 index 0000000..2bc1dba --- /dev/null +++ b/man/systemd-homed.service.xml @@ -0,0 +1,110 @@ +<?xml version='1.0'?> <!--*-nxml-*--> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> +<!-- SPDX-License-Identifier: LGPL-2.1-or-later --> + +<refentry id="systemd-homed.service" conditional='ENABLE_HOMED'> + + <refentryinfo> + <title>systemd-homed.service</title> + <productname>systemd</productname> + </refentryinfo> + + <refmeta> + <refentrytitle>systemd-homed.service</refentrytitle> + <manvolnum>8</manvolnum> + </refmeta> + + <refnamediv> + <refname>systemd-homed.service</refname> + <refname>systemd-homed</refname> + <refpurpose>Home Area/User Account Manager</refpurpose> + </refnamediv> + + <refsynopsisdiv> + <para><filename>systemd-homed.service</filename></para> + <para><filename>/usr/lib/systemd/systemd-homed</filename></para> + </refsynopsisdiv> + + <refsect1> + <title>Description</title> + + <para><command>systemd-homed</command> is a system service that may be used to create, remove, change or + inspect home areas (directories and network mounts and real or loopback block devices with a filesystem, + optionally encrypted).</para> + + <para>Most of <command>systemd-homed</command>'s functionality is accessible through the + <citerefentry><refentrytitle>homectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> command.</para> + + <para>See the <ulink url="https://systemd.io/HOME_DIRECTORY">Home Directories</ulink> documentation for + details about the format and design of home areas managed by + <filename>systemd-homed.service</filename>.</para> + + <para>Each home directory managed by <filename>systemd-homed.service</filename> synthesizes a local user + and group. These are made available to the system using the <ulink + url="https://systemd.io/USER_GROUP_API">User/Group Record Lookup API via Varlink</ulink>, and thus may be + browsed with + <citerefentry><refentrytitle>userdbctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para> + </refsect1> + + <refsect1> + <title>Key Management</title> + + <para>User records are cryptographically signed with a public/private key pair (the signature is part of + the JSON record itself). For a user to be permitted to log in locally the public key matching the + signature of their user record must be installed. For a user record to be modified locally the private + key matching the signature must be installed locally, too. The keys are stored in the + <filename>/var/lib/systemd/home/</filename> directory:</para> + + <variablelist> + + <varlistentry> + <term><filename>/var/lib/systemd/home/local.private</filename></term> + + <listitem><para>The private key of the public/private key pair used for local records. Currently, + only a single such key may be installed.</para></listitem> + </varlistentry> + + <varlistentry> + <term><filename>/var/lib/systemd/home/local.public</filename></term> + + <listitem><para>The public key of the public/private key pair used for local records. Currently, + only a single such key may be installed.</para></listitem> + </varlistentry> + + <varlistentry> + <term><filename>/var/lib/systemd/home/*.public</filename></term> + + <listitem><para>Additional public keys. Any users whose user records are signed with any of these keys + are permitted to log in locally. An arbitrary number of keys may be installed this + way.</para></listitem> + </varlistentry> + </variablelist> + + <para>All key files listed above are in PEM format.</para> + + <para>In order to migrate a home directory from a host <literal>foobar</literal> to another host + <literal>quux</literal> it is hence sufficient to copy + <filename>/var/lib/systemd/home/local.public</filename> from the host <literal>foobar</literal> to + <literal>quux</literal>, maybe calling the file on the destination <filename + index="false">/var/lib/systemd/home/foobar.public</filename>, reflecting the origin of the key. If the + user record should be modifiable on <literal>quux</literal> the pair + <filename>/var/lib/systemd/home/local.public</filename> and + <filename>/var/lib/systemd/home/local.private</filename> need to be copied from <literal>foobar</literal> + to <literal>quux</literal>, and placed under the identical paths there, as currently only a single + private key is supported per host. Note of course that the latter means that user records + generated/signed before the key pair is copied in, lose their validity.</para> + </refsect1> + + <refsect1> + <title>See Also</title> + <para> + <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>homed.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, + <citerefentry><refentrytitle>homectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>pam_systemd_home</refentrytitle><manvolnum>8</manvolnum></citerefentry>, + <citerefentry><refentrytitle>userdbctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, + <citerefentry><refentrytitle>org.freedesktop.home1</refentrytitle><manvolnum>5</manvolnum></citerefentry> + </para> + </refsect1> +</refentry> |