Systemd 262 版本引入了 TPM2 安全机制、OpenSSL 4 和静态二进制文件。

关键点:
  • 它允许生成单个静态 systemd 二进制文件,集成基本单元(如 basic.target),非常适合在轻量级容器中作为 PID1 运行。
  • RestartRandomizedDelaySec 参数引入随机延迟,以防止大规模故障后出现同步重启的雪崩式情况。
  • 磁盘安全和 TPM 使用 Argon2id(取代 PBKDF2)实现 PIN 密码,并将凭据限制为芯片的 SRK 密钥。
  • 改进原子更新:systemd-sysupdate 推出了新的文件数据库和清理命令,用于清除孤立文件。
  • 为 Intel TDX(机密虚拟机)添加了 systemd-vmspawn 支持,并为 run0 添加了新的 sudo 风格命令。

systemd

systemd 系统和服务管理器 262 版本现已发布,经过三个月的开发,该版本进行了多项重大改进。此版本的主要亮点在于:针对轻量级虚拟化环境优化了架构;改进了与可信平台模块 (TPM) 相关的加密协议;并为 run0 和 systemd-sysupdate 等原生工具添加了关键功能。

考虑到容器对系统占用空间的要求极低, systemd现在提供了使用静态链接编译单个可执行文件的功能。这种编译方式(可通过 Meson 启用,例如使用`-Dsystemd-multicall-binary=true`等参数)旨在作为小型容器的启动进程(PID 1),避免使用 `dlopen()` 调用加载动态库,并依赖于简化的用户和组搜索,而不是标准的 NSS。

此外,可执行文件现在内部嵌入了一组必要的单元文件(例如 basic.target、sysinit.target、multi-user.target 和 reboot.target 等)。这些嵌入的文件用作备用方案,以防无法从磁盘加载配置,从而允许容器在不显式安装单元文件的情况下启动。

服务管理和故障恢复

为了降低多个服务同时发生故障时同步重启的风险,引入了 `RestartRandomizedDelaySec` 参数。该策略会在服务自动重启前添加一个随机(均匀分布)的延迟,该延迟会添加到 `RestartSec` 配置的时间中。此外,切片单元还包含 `ActivatingConcurrencyMax` 参数,该参数限制了层级结构中可以同时激活的最大单元数;任何超出限制的激活操作都会被排队,直到有可用容量槽位为止。

在需要持续高可用性的环境(例如关键服务器)中,服务单元实现了 LUOSession 参数。该参数指示 systemd 创建实时更新协调器会话,从而能够在不中断服务运行的情况下热更新系统内核,并保持进程和设备的状态。

TPM2、fscrypt 和存储安全

此版本的其他新特性包括:TPM 中的密封凭证现在直接与其存储根密钥(SRK) 关联,从而防止中间组件试图拦截解密数据而发起的中间人 (MitM) 攻击。通过 systemd-cryptenroll 进行的 TPM2 PIN 凭证注册默认采用 Argon2id 算法,生成的密钥材料比传统实现(直接/PBKDF2)更加强大。

在用户存储层面,systemd-homed 修改了其对使用 fscrypt 文件系统加密的目录的行为:新建目录将默认采用版本 2 (fscrypt v2) 的策略,允许主密钥驻留在文件系统的密钥环中,并在不同的挂载命名空间中可见。fscrypt v1 目录仍可正常使用,但无法直接升级到 v2。

此外,还加入了对 dm-clone 内核模块的原生启动支持,该模块允许从只读块设备生成可修改的克隆,并通过 systemd-clonesetup-generator 从 /etc/clonetab 读取进行处理。

原子能升级和环境变化

systemd -sysupdate 套件旨在通过原子性地替换分区和目录来进行系统更新,现在它维护着一个已安装文件的持久数据库。新增的 cleanup 命令用于清除冗余文件,并且引入了“建议组件”的概念。这些组件可以根据机器架构或机器标签动态评估,从而实现驱动程序安装的自动化。

版本 262 的其他重大变更包括:

  • systemd-vmspawn: 增加了对在 Intel TDX 架构 (–coco=tdx) 下运行机密虚拟机的支持,加入了 AMD SEV-SNP。
  • OpenSSL 和注册: 记录不可篡改系统(前向安全密封,FSS)正从 libgcrypt 库迁移到 OpenSSL 的原生加密函数。同时,也正在添加对 OpenSSL 4 的初始编译支持。
  • 终端和可用性: run0 权限提升工具新增了与 sudo 兼容的选项,例如 -k、-K 和 -v,用于重置或验证 Polkit 的授权超时。vconsole 允许使用 FONT_SCALE 将字体大小设置为 100% 或 200%,并且 FIDO2 令牌的密码提示现在会显示剩余的 PIN 码尝试次数。
  • systemd-sysctl: 现在它包含了 –verify 标志,通过重新读取来检查写入系统的值是否实际已应用。

最后,如果您有兴趣了解更多信息,可以点击以下链接查看详情。


在 Google 中将其添加为首选来源