自 systemd 开始取代旧的 SystemV 启动和初始化工具以来,整个 systemd 的概念和实现引入了许多变化。随着时间的推移,systemd 已经扩展到 Linux 环境的许多其他领域。
一个相对较新的服务 systemd-homed 将 systemd 的触角延伸到用户家目录的管理。该功能仅强制执行人类用户访问,并限制用户 ID (UID) 范围在 0 到 999 之间的系统用户。我支持 systemd 接管世界的计划,但我想知道这是否有点过分。然后我做了一些研究。
什么是 systemd-homed?
systemd-homed 服务支持独立于底层计算机系统的用户帐户可移植性。一个实际的例子是将您的家目录携带在 USB 拇指驱动器上,并将其插入任何系统,该系统将自动识别并挂载它。根据 systemd 的首席开发人员 Lennart Poettering 的说法,除非用户已登录,否则不应允许任何人访问用户的家目录。systemd-homed 服务旨在增强安全性,尤其是对于笔记本电脑等移动设备。它看起来也像是一个可能对 容器 有用的工具。
只有当家目录包含所有用户元数据时,才能实现此目标。~/.identity 文件存储用户帐户信息,只有在输入密码后 systemd-homed 才能访问该信息。此文件包含所有帐户元数据,包括 Linux 需要了解您的所有信息,以便家目录可以移植到任何使用 systemd-homed 的 Linux 主机。这种方法避免了在您可能需要使用的每个系统上都拥有一个存储密码的帐户。
家目录也可以使用您的密码进行加密。在 systemd-homed 下,您的家目录会将您的密码与所有用户元数据一起存储。您的加密密码不会存储在其他任何地方,因此任何人都无法访问。尽管用于加密和存储现代 Linux 系统密码的方法被认为是牢不可破的,但最好的保障是首先阻止它们被访问。对其安全性的无懈可击的假设已导致许多人走向毁灭。
此服务主要用于笔记本电脑等便携式设备。Poettering 表示:“Homed 主要用于客户端机器,即笔记本电脑,因此您通常从这些机器上进行 ssh 操作的次数远远多于 ssh 到这些机器的次数,如果您明白我的意思。” 它不适用于通过电缆连接到单个位置或锁定在服务器机房中的服务器或工作站。
systemd-homed 服务在新安装中默认启用——至少对于 Fedora 来说是这样,Fedora 是我使用的发行版。此配置是按设计进行的,我不希望它会改变。在具有现有文件系统、升级或重新安装(保留现有分区和逻辑卷)的系统上,用户帐户不会受到任何影响或更改。
创建受控用户
传统的工具(如 useradd
)创建的帐户和家目录不受 systemd-homed 管理。因此,如果您继续使用传统的用户管理工具,则您的家目录上的家目录不受 systemd-homed 管理。对于新安装期间创建的非 root 用户帐户也是如此。
homectl 命令
homectl
命令创建 systemd-homed 管理的用户帐户。使用 homectl
命令创建新帐户会生成使家目录可移植所需的元数据。
homectl
命令手册页对 systemd-homed 服务的目的和功能进行了很好的解释。但是,阅读 homectl
手册页非常有趣,尤其是“示例”部分。在五个示例中,有三个示例展示了如何创建具有特定限制的用户帐户,例如最大并发进程数或最大磁盘空间量。
在非 homectl 设置中,/etc/security/limits.conf
文件施加这些限制。我能看到的唯一优点是它使用单个命令添加用户并应用限制。使用传统方法,系统管理员必须手动配置 limits.conf
文件。
限制
我所知道的唯一重大限制是无法使用 OpenSSH 远程访问用户家目录。此限制是由于 PAM 当前无法提供对 homectl
管理的家目录的访问。Poettering 似乎怀疑这是否可以克服。这个问题将阻止我在我的主工作站甚至我的笔记本电脑上为我的家目录使用 systemd-homed。我通常每天多次使用 SSH 远程登录到这两台计算机,所以这对我来说是一个致命的缺陷。
我能看到的另一个问题是,您仍然需要一台 Linux 计算机才能与带有家目录的 USB 拇指驱动器一起使用,并且该计算机需要运行 systemd-homed。
它是可选的
但是,您不必使用它。我计划继续使用传统工具进行用户管理,以支持我的工作流程。对于我略知一二的少数发行版(包括 Fedora)来说,默认设置是启用并运行 systemd-homed 服务。您可以禁用并停止 systemd-homed 服务,而不会影响传统的用户帐户。
最后的想法
系统管理员可以使用 systemd-homed 服务来安全地管理漫游用户的家目录。它在笔记本电脑等便携式设备上非常有用,并且对于携带仅包含其家目录的拇指驱动器以将其插入任何方便的 Linux 计算机的用户尤其有用。
使用 systemd-homed 的主要限制是无法使用 SSH 远程登录。即使默认启用 systemd-homed,它也不会影响使用 useradd
命令创建的家目录。我需要指出的是,与许多 systemd 工具一样,systemd-homed 是可选的。所以我只是停止并禁用了该服务。
如果我需要将我的家目录放在比我的笔记本电脑更小的软件包中,我可以只使用带有持久存储的 live USB。
评论已关闭。