systemd 245 可用于便携式主目录实现

经过三个月的开发 提交 系统管理器发布 systemd 245。 在新版本中,添加了新组件systemd-homed和systemd-repart,包括对JSON格式的可移植用户配置文件的支持,提供了在systemd-journald中定义命名空间的能力,并添加了对“pidfd”机制的支持。 完全重新设计 项目现场,它收集了大部分可用的文档并提出了一个新的徽标。

systemd 245 可用于便携式主目录实现

变化:

  • 新增服务 系统宿主,它提供对便携式主目录的管理,以安装的映像文件的形式提供,其中的数据是加密的。 Systemd-homed 允许您为用户数据创建独立的环境,这些数据可以在不同系统之间传输,而无需担心标识符同步和机密性。 用户凭据与主目录而不是系统设置相关联 - 使用 格式的配置文件而不是 /etc/passwd、/etc/group 和 /etc/shadow JSON。 有关更多详细信息,请参阅 最后公告 systemd-homed。
  • 添加了 systemd-homed 配套组件“用户数据库”(“systemd-userdb”),它将 UNIX/glibc NSS 帐户转换为 JSON 记录,并提供统一的 Varlink API 用于查询和迭代记录。 与主目录关联的 JSON 配置文件指定用户工作所需的参数,包括用户名、密码哈希、加密密钥、配额和配置的资源。 该配置文件可以通过存储在外部 Yubikey 令牌上的数字签名进行认证。 为了管理配置文件,建议使用“userdbctl”实用程序。 各种 systemd 组件(包括 systemd-logind 和 pam-systemd)添加了对 JSON 配置文件的支持,允许可移植目录的用户进行身份验证、登录、设置环境变量、创建会话、设置限制等。 将来,预计 sssd 框架将能够使用存储在 LDAP 中的用户设置生成 JSON 配置文件。
  • 添加了一个新的实用程序“systemd-repart”,旨在以 GPT 格式重新分区磁盘分区表。 分区结构通过描述哪些分区应该或可以存在的文件以声明形式定义。 每次启动时,会将实际分区表与这些文件进行比较,然后添加丢失的分区,或者,如果设置中定义的相对或绝对大小不匹配,则增加现有分区的大小。 只允许增量更改,即无法删除和缩小分区,只能添加和扩大分区。
    该实用程序设计为从 initrd 启动,并自动检测根分区所在的磁盘,除了具有更改定义的文件之外,不需要其他配置。

    在实践中,systemd-repart 对于最初可能以最小形式发布的操作系统映像非常有用,并且在第一次启动后可以扩展到现有块设备的大小或补充额外的分区(例如,根分区)分区可以扩展到覆盖整个磁盘,或者在首次启动后创建交换分区或/home)。 另一种用途是具有两个旋转分区的配置 - 最初可能仅提供第一个分区,而第二个分区将在第一次引导时创建。

  • 现在可以启动 systemd-journald 的多个实例,每个实例将日志保存在自己的命名空间中。 除了主 systemd-journald.service 之外,.service 目录还提供了一个模板,用于使用“LogNamespace”指令创建绑定到其名称空间的其他实例。 每个日志命名空间都由一个单独的后台进程提供服务,并具有自己的一组设置和限制。 所提出的功能对于大量日志的负载平衡或增强应用程序隔离可能很有用。 在journalctl中添加了“--namespace”选项,以将查询限制为仅指定的命名空间。
  • Systemd-udevd 和其他 systemd 组件添加了对一种为网络接口分配备用名称的机制的支持,允许一个接口同时使用多个名称。 该名称最多可包含 128 个字符(以前,网络接口名称仅限于 16 个字符)。 默认情况下,systemd-udevd 现在为每个网络接口分配由支持的命名方案生成的所有变体名称。 可以通过 .link 文件中的新 AlternativeName 和 AlternativeNamesPolicy 设置更改此行为。 systemd-nspawn 使用主机端创建的 veth 链接的完整容器名称来生成替代名称。
  • sd-event.h API 添加了对 Linux 内核子系统“pidfd”的支持,以处理 PID 重用的情况(pidfd 与特定进程关联并且不会改变,而 PID 可以与当前进程之后的另一个进程关联)与其关联的退出此 PID)。 如果当前内核支持子系统,则除 PID 1 之外的所有 systemd 组件都已转换为使用 pidfds。
  • systemd-logind 通过 PolicyKit 为虚拟终端更改操作提供访问检查。 默认情况下,仅向在本地虚拟终端上至少发起过一次会话的用户授予更改活动终端的权限。
  • 为了更轻松地使用 systemd 创建 initrd 映像,PID 1 处理程序现在会检测 initrd 是否正在使用,在这种情况下会自动加载 initrd.target 而不是 default.target。 通过这种方法,initrd 和主系统映像仅在 /etc/initrd-release 文件是否存在方面有所不同。
  • 添加了新的内核命令行参数 - “systemd.cpu_affinity”,相当于 /etc/systemd/system.conf 中的 CPUAffinity 选项,允许您为 PID 1 和其他进程配置 CPU 亲和性掩码。
  • 通过“systemctl daemon-reload”等命令启用 SELinux 数据库的重新加载以及重新启动 PID 1。
  • “systemd.show-status=error”设置已添加到 PID 1 处理程序中,设置后,控制台上仅显示加载期间的错误消息和显着延迟。
  • systemd-sysusers 添加了对创建具有与用户名不同的主组名的用户的支持。
  • 除了之前支持的 Ext4 和 Btrfs 分区扩展之外,systemd-growfs 还通过 /etc/fstab 中的 x-systemd.growfs 挂载选项引入了对 XFS 分区扩展的支持。
  • 在 /etc/crypttab 中添加了 x-initrd.attach 选项,以定义在 initrd 阶段已解锁的加密分区。
  • systemd-cryptsetup 添加了对使用 PKCS#11 智能卡解锁加密分区的支持(/etc/crypttab 中的选项 pkcs11-uri),例如将分区加密附加到 YubiKeys。
  • 新的挂载选项“x-systemd.required-by”和“x-systemd.wanted-by”已添加到/etc/fstab中,以显式配置定义要调用的挂载操作的单元,而不是local-fs.target和remote -fs .目标。
  • 添加了新的服务沙箱选项 - ProtectClock,它限制对系统时钟的写入(在 /dev/rtc、系统调用和 CAP_SYS_TIME/CAP_WAKE_ALARM 权限级别阻止访问)。
  • 按规格 可发现的分区 和 systemd-gpt-auto-generator 添加了分区检测
    /var 和 /var/tmp。

  • 在“systemctl list-unit-files”中,当显示单元列表时,会出现一个新列,反映制造商针对此类单元的预设中提供的启用状态。
  • “systemctl”中添加了“--with-dependencies”选项,安装后,“systemctl status”和“systemctl cat”等命令不仅会显示所有对应的单元,还会显示它们所依赖的单元。
  • 在systemd-networkd中,qdisc配置添加了配置TBF(令牌桶过滤器)、SFQ(随机公平队列)、CoDel(受控延迟主动队列管理)和FQ(公平队列)参数的功能。
  • systemd-networkd 添加了对 IFB 网络设备的支持(中间功能块).
  • Systemd-networkd 实现 [Route] 部分中的 MultiPathRoute 参数来配置多路径路由。
  • 在 DHCPv4 客户端的 systemd-networkd 中,添加了 SendDecline 选项,指定后,在收到带有地址的 DHCP 响应后,将执行重复地址检查,如果检测到地址冲突,则拒绝颁发的地址。 RouteMTUBytes 选项也已添加到 DHCPv4 客户端,允许您确定从 IP 地址绑定(租用)生成的路由的 MTU 大小。
  • .network 文件的 [Address] 部分中的 PrefixRoute 设置已被弃用。 它被“AddPrefixRoute”设置取代,其含义相反。
  • 在.network文件中,“[Route]”部分的网关设置中添加了对新值“_dhcp”的支持,设置后,将根据通过DHCP配置的网关选择静态路由。
  • 设置已出现在 .network 文件的“[RoutingPolicyRule]”部分中
    User 和 SuppressPrefixLength 根据 UID 范围和前缀大小指定源路由。

  • 在networkctl中,“status”命令提供了显示与每个网络接口相关的日志的能力。
  • systemd-networkd-wait-online 添加了对设置等待接口可操作和等待接口关闭的最长时间的支持。
  • 停止处理带有空或注释掉的“[Match]”部分的 .link 和 .network 文件。
  • 在 .link 和 .network 文件中的“[Match]”部分中,添加了“PermanentMACAddress”设置,用于在使用生成的随机 MAC 的情况下检查设备的永久 MAC 地址。
  • .network 文件中的“[TrafficControlQueueingDiscipline]”部分已重命名为“[NetworkEmulator]”,并且已从关联设置的名称中删除“NetworkEmulator”前缀。
  • DNS-over-TLS 的 systemd-resolved 添加了对 SNI 检查的支持。

来源: opennet.ru

添加评论