systemd 系统管理器版本 242

[:俄]

经过两个月的开发 提交 系统管理器发布 systemd 242。 在这些创新中,我们可以注意到对 L2TP 隧道的支持、通过环境变量控制重启时 systemd-logind 的行为的能力、对用于挂载 /boot 的扩展 XBOOTLDR 引导分区的支持、使用 overlayfs 中的根分区进行引导的能力、以及针对不同类型单位的大量新设置。

主要变化:

  • systemd-networkd 提供对 L2TP 隧道的支持;
  • sd-boot 和 bootctl 除了安装在 /efi 或 /boot/efi 上的 ESP 分区之外,还支持设计为安装在 /boot 上的 XBOOTLDR(扩展引导加载程序)分区。 现在可以从 ESP 和 XBOOTLDR 分区启动内核、设置、initrd 和 EFI 映像。 此更改允许您在更保守的场景中使用 sd-boot 引导加载程序,此时引导加载程序本身位于 ESP 中,并且加载的内核和相关元数据放置在单独的部分中;
  • 添加了使用传递到内核的“systemd.volatile=overlay”选项进行引导的功能,该选项允许您将根分区放置在overlayfs中,并在根目录的只读映像之上组织工作,并将更改写入tmpfs 中的单独目录(此配置中的更改在重新启动后将丢失)。 以此类推,systemd-nspawn 添加了“--volatile=overlay”选项以在容器中使用类似的功能;
  • systemd-nspawn 添加了“--oci-bundle”选项,以允许使用运行时捆绑包来提供符合开放容器计划 (OCI) 规范的容器的隔离启动。 为了在命令行和 nspawn 单元中使用,建议支持 OCI 规范中描述的各种选项,例如,“--inaccessible”和“Inaccessible”选项可用于排除文件系统的某些部分,并且“添加了“--console”选项来配置标准输出流和“-pipe”;
  • 添加了通过环境变量控制 systemd-logind 行为的功能:$SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU 和
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY。 使用这些变量,您可以连接自己的重启进程处理程序(/run/systemd/reboot-to-firmware-setup、/run/systemd/reboot-to-boot-loader-menu 和
    /run/systemd/reboot-to-boot-loader-entry)或完全禁用它们(如果该值设置为 false);

  • 添加了选项“-boot-load-menu =”和
    “—boot-loader-entry=”,允许您在重启后选择特定的启动菜单项或启动模式;

  • 添加了新的沙箱隔离命令“RestrictSUIDSGID=”,该命令使用 seccomp 禁止创建带有 SUID/SGID 标志的文件;
  • 确保在动态用户 ID 生成模式(启用“DynamicUser”)的服务中默认应用“NoNewPrivileges”和“RestrictSUIDSGID”限制;
  • .link 文件中的默认 MACAddressPolicy=persistent 设置已更改以覆盖更多设备。 网桥、隧道(tun、tap)和聚合链路(bond)的接口除了通过网络接口的名称外无法识别自己,因此该名称现在用作绑定 MAC 和 IPv4 地址的基础。 此外,还添加了“MACAddressPolicy=random”设置,可用于以随机顺序将MAC和IPv4地址绑定到设备;
  • 通过 systemd-fstab-generator 生成的“.device”单元文件不再包含相应的“.mount”单元作为“Wants=”部分中的依赖项。 简单地插入设备不再自动启动要安装的单元,但此类单元仍然可以出于其他原因启动,例如作为 local-fs.target 的一部分或作为对依赖于 local-fs.target 的其他单元的依赖项;
  • 在“networkctl list/status/lldp”命令中添加了对掩码(“*”等)的支持,以按名称的一部分过滤掉某些网络接口组;
  • 现在,使用通过“PIDFile=;”参数在服务中配置的绝对路径来设置 $PIDFILE 环境变量。
  • 如果未明确定义主 DNS,公共 Cloudflare 服务器 (1.1.1.1) 已添加到使用的备用 DNS 服务器的数量中。 要重新定义备份 DNS 服务器列表,可以使用“-Ddns-servers=”选项;
  • 当检测到 USB 设备控制器的存在时,会自动启动一个新的 usb-gadget.target 处理程序(当系统在 USB 外围设备上运行时);
  • 对于单元文件,已经实现了“CPUQuotaPeriodSec=”设置,它确定了相对于测量CPU时间配额的时间段,通过“CPUQuota=”设置来设置;
  • 对于单元文件,已实现“ProtectHostname=”设置,该设置禁止服务更改有关主机名的信息,即使它们具有适当的权限;
  • 对于单元文件,已经实现了“NetworkNamespacePath=”设置,它允许您通过在伪 FS /proc 中指定命名空间文件的路径来将命名空间绑定到服务或套接字单元;
  • 添加了通过在启动命令前添加“:”字符来禁用使用“ExecStart=”设置启动的进程的环境变量替换的功能;
  • 对于计时器(.timer 单位)新标志“OnClockChange=”和
    “OnTimezoneChange=”,可以控制系统时间或时区改变时本机的调用;

  • 新增设置“ConditionMemory=”和“ConditionCPUs=”,根据内存大小和CPU核数来确定调用单元的条件(例如,只有满足所需的资源量才能启动资源密集型服务)内存可用);
  • 添加了一个新的 time-set.target 单元,它接受本地设置的系统时间,而无需使用 time-sync.target 单元与外部时间服务器进行协调。 新单元可供需要不同步本地时钟精度的服务使用;
  • “--show-transaction”选项已添加到“systemctl start”和类似的命令中,指定后,会显示由于请求的操作而添加到队列中的所有作业的摘要;
  • systemd-networkd 实现了新的“被奴役”状态的定义,用于代替作为聚合链路或网桥一部分的网络接口的“降级”或“载体”。 对于主接口,如果其中一个复合链路出现问题,则添加“退化载波”状态;
  • 在 .network 单元中添加了“IgnoreCarrierLoss=”选项,以在连接丢失时保存网络设置;
  • 通过 .network 单元中的“RequiredForOnline=”设置,您现在可以设置将网络接口转换为“在线”所需的最低可接受的链接状态并触发 systemd-networkd-wait-online 处理程序;
  • 向 systemd-networkd-wait-online 添加了“--any”选项,以等待任何指定网络接口(而不是全部)准备就绪,以及“--operational-state=”选项来确定网络接口的状态指示准备就绪的链接;
  • 为.network单元添加了“UseAutonomousPrefix =”和“UseOnLinkPrefix =”设置,可用于在接收时忽略前缀
    来自 IPv6 路由器的通告(RA,路由器通告);

  • 在.network单元中,添加了“MulticastFlood=”、“NeighborSuppression=”和“Learning=”设置来更改网桥的操作参数,以及“TripleSampling=”设置来更改TRIPLE-SAMPLING模式CAN虚拟接口;
  • .netdev 单元中添加了“PrivateKeyFile=”和“PresharedKeyFile=”设置,您可以使用它们为 WireGuard VPN 接口指定私有和共享 (PSK) 密钥;
  • 在/etc/crypttab中添加了same-cpu-crypt和submit-from-crypt-cpus选项,这些选项控制在CPU核心之间迁移加密相关工作时调度程序的行为;
  • systemd-tmpfiles 在包含临时文件的目录中执行操作之前提供锁定文件处理,这允许您在某些操作期间禁用清理过时文件的工作(例如,在 /tmp 中解压 tar 存档时,非常旧的文件可能会被删除)已打开且在操作结束前无法删除的内容);
  • “systemd-analyze cat-config”命令提供了分析分为多个文件的配置的能力,例如,用户和系统预设、tmpfiles.d和sysusers.d的内容、udev规则等。
  • 在“journalctl”中添加了“--cursor-file=”选项,用于指定加载和保存位置光标的文件;
  • 添加了 ACRN 虚拟机管理程序和 WSL 子系统(Linux 的 Windows 子系统)的定义到 systemd-detect-virt,以便使用条件运算符“ConditionVirtualization”进行后续分支;
  • 在 systemd 安装期间(执行“ninja install”时),创建到文件 systemd-networkd.service、systemd-networkd.socket 的符号链接,
    systemd-resolved.service、remote-cryptsetup.target、remote-fs.target、
    systemd-networkd-wait-online.service 和 systemd-timesyncd.service。 要创建这些文件,您现在需要运行“systemctlpreset-all”命令。

opennet.ru

[:恩]

经过两个月的开发 提交 系统管理器发布 systemd 242。 在这些创新中,我们可以注意到对 L2TP 隧道的支持、通过环境变量控制重启时 systemd-logind 的行为的能力、对用于挂载 /boot 的扩展 XBOOTLDR 引导分区的支持、使用 overlayfs 中的根分区进行引导的能力、以及针对不同类型单位的大量新设置。

主要变化:

  • systemd-networkd 提供对 L2TP 隧道的支持;
  • sd-boot 和 bootctl 除了安装在 /efi 或 /boot/efi 上的 ESP 分区之外,还支持设计为安装在 /boot 上的 XBOOTLDR(扩展引导加载程序)分区。 现在可以从 ESP 和 XBOOTLDR 分区启动内核、设置、initrd 和 EFI 映像。 此更改允许您在更保守的场景中使用 sd-boot 引导加载程序,此时引导加载程序本身位于 ESP 中,并且加载的内核和相关元数据放置在单独的部分中;
  • 添加了使用传递到内核的“systemd.volatile=overlay”选项进行引导的功能,该选项允许您将根分区放置在overlayfs中,并在根目录的只读映像之上组织工作,并将更改写入tmpfs 中的单独目录(此配置中的更改在重新启动后将丢失)。 以此类推,systemd-nspawn 添加了“--volatile=overlay”选项以在容器中使用类似的功能;
  • systemd-nspawn 添加了“--oci-bundle”选项,以允许使用运行时捆绑包来提供符合开放容器计划 (OCI) 规范的容器的隔离启动。 为了在命令行和 nspawn 单元中使用,建议支持 OCI 规范中描述的各种选项,例如,“--inaccessible”和“Inaccessible”选项可用于排除文件系统的某些部分,并且“添加了“--console”选项来配置标准输出流和“-pipe”;
  • 添加了通过环境变量控制 systemd-logind 行为的功能:$SYSTEMD_REBOOT_ TO_FIRMWARE_SETUP,
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU 和
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY。 使用这些变量,您可以连接自己的重启进程处理程序(/run/systemd/reboot-to-firmware-setup、/run/systemd/reboot-to-boot-loader-menu 和
    /run/systemd/reboot-to-boot-loader-entry)或完全禁用它们(如果该值设置为 false);

  • 添加了选项“-boot-load-menu =”和
    “—boot-loader-entry=”,允许您在重启后选择特定的启动菜单项或启动模式;

  • 添加了新的沙箱隔离命令“RestrictSUIDSGID=”,该命令使用 seccomp 禁止创建带有 SUID/SGID 标志的文件;
  • 确保在动态用户 ID 生成模式(启用“DynamicUser”)的服务中默认应用“NoNewPrivileges”和“RestrictSUIDSGID”限制;
  • .link 文件中的默认 MACAddressPolicy=persistent 设置已更改以覆盖更多设备。 网桥、隧道(tun、tap)和聚合链路(bond)的接口除了通过网络接口的名称外无法识别自己,因此该名称现在用作绑定 MAC 和 IPv4 地址的基础。 此外,还添加了“MACAddressPolicy=random”设置,可用于以随机顺序将MAC和IPv4地址绑定到设备;
  • 通过 systemd-fstab-generator 生成的“.device”单元文件不再包含相应的“.mount”单元作为“Wants=”部分中的依赖项。 简单地插入设备不再自动启动要安装的单元,但此类单元仍然可以出于其他原因启动,例如作为 local-fs.target 的一部分或作为对依赖于 local-fs.target 的其他单元的依赖项;
  • 在“networkctl list/status/lldp”命令中添加了对掩码(“*”等)的支持,以按名称的一部分过滤掉某些网络接口组;
  • 现在,使用通过“PIDFile=;”参数在服务中配置的绝对路径来设置 $PIDFILE 环境变量。
  • 如果未明确定义主 DNS,公共 Cloudflare 服务器 (1.1.1.1) 已添加到使用的备用 DNS 服务器的数量中。 要重新定义备份 DNS 服务器列表,可以使用“-Ddns-servers=”选项;
  • 当检测到 USB 设备控制器的存在时,会自动启动一个新的 usb-gadget.target 处理程序(当系统在 USB 外围设备上运行时);
  • 对于单元文件,已经实现了“CPUQuotaPeriodSec=”设置,它确定了相对于测量CPU时间配额的时间段,通过“CPUQuota=”设置来设置;
  • 对于单元文件,已实现“ProtectHostname=”设置,该设置禁止服务更改有关主机名的信息,即使它们具有适当的权限;
  • 对于单元文件,已经实现了“NetworkNamespacePath=”设置,它允许您通过在伪 FS /proc 中指定命名空间文件的路径来将命名空间绑定到服务或套接字单元;
  • 添加了通过在启动命令前添加“:”字符来禁用使用“ExecStart=”设置启动的进程的环境变量替换的功能;
  • 对于计时器(.timer 单位)新标志“OnClockChange=”和
    “OnTimezoneChange=”,可以控制系统时间或时区改变时本机的调用;

  • 新增设置“ConditionMemory=”和“ConditionCPUs=”,根据内存大小和CPU核数来确定调用单元的条件(例如,只有满足所需的资源量才能启动资源密集型服务)内存可用);
  • 添加了一个新的 time-set.target 单元,它接受本地设置的系统时间,而无需使用 time-sync.target 单元与外部时间服务器进行协调。 新单元可供需要不同步本地时钟精度的服务使用;
  • “--show-transaction”选项已添加到“systemctl start”和类似的命令中,指定后,会显示由于请求的操作而添加到队列中的所有作业的摘要;
  • systemd-networkd 实现了新的“被奴役”状态的定义,用于代替作为聚合链路或网桥一部分的网络接口的“降级”或“载体”。 对于主接口,如果其中一个复合链路出现问题,则添加“退化载波”状态;
  • 在 .network 单元中添加了“IgnoreCarrierLoss=”选项,以在连接丢失时保存网络设置;
  • 通过 .network 单元中的“RequiredForOnline=”设置,您现在可以设置将网络接口转换为“在线”所需的最低可接受的链接状态并触发 systemd-networkd-wait-online 处理程序;
  • 向 systemd-networkd-wait-online 添加了“--any”选项,以等待任何指定网络接口(而不是全部)准备就绪,以及“--operational-state=”选项来确定网络接口的状态指示准备就绪的链接;
  • 为.network单元添加了“UseAutonomousPrefix =”和“UseOnLinkPrefix =”设置,可用于在接收时忽略前缀
    来自 IPv6 路由器的通告(RA,路由器通告);

  • 在.network单元中,添加了“MulticastFlood=”、“NeighborSuppression=”和“Learning=”设置来更改网桥的操作参数,以及“TripleSampling=”设置来更改TRIPLE-SAMPLING模式CAN虚拟接口;
  • .netdev 单元中添加了“PrivateKeyFile=”和“PresharedKeyFile=”设置,您可以使用它们为 WireGuard VPN 接口指定私有和共享 (PSK) 密钥;
  • 在/etc/crypttab中添加了same-cpu-crypt和submit-from-crypt-cpus选项,这些选项控制在CPU核心之间迁移加密相关工作时调度程序的行为;
  • systemd-tmpfiles 在包含临时文件的目录中执行操作之前提供锁定文件处理,这允许您在某些操作期间禁用清理过时文件的工作(例如,在 /tmp 中解压 tar 存档时,非常旧的文件可能会被删除)已打开且在操作结束前无法删除的内容);
  • “systemd-analyze cat-config”命令提供了分析分为多个文件的配置的能力,例如,用户和系统预设、tmpfiles.d和sysusers.d的内容、udev规则等。
  • 在“journalctl”中添加了“--cursor-file=”选项,用于指定加载和保存位置光标的文件;
  • 添加了 ACRN 虚拟机管理程序和 WSL 子系统(Linux 的 Windows 子系统)的定义到 systemd-detect-virt,以便使用条件运算符“ConditionVirtualization”进行后续分支;
  • 在 systemd 安装期间(执行“ninja install”时),创建到文件 systemd-networkd.service、systemd-networkd.socket 的符号链接,
    systemd-resolved.service、remote-cryptsetup.target、remote-fs.target、
    systemd-networkd-wait-online.service 和 systemd-timesyncd.service。 要创建这些文件,您现在需要运行“systemctlpreset-all”命令。

来源: opennet.ru

[:]

添加评论