介绍run0:使用systemd以其他用户身份运行进程

run0是sudo的安全替代品,集成到systemd中,它允许以其他用户的身份运行进程,并具有独立的上下文和允许属性的白名单。

run0的一个主要优点是,它消除了对带有SUID标志的可执行文件的需要,SUID标志是sudo常用的。在sudo中使用SUID标志会带来额外的风险,因为SUID进程继承的执行上下文包括许多由无特权用户控制的属性,如环境变量、文件描述符、调度程序选项和cgroup绑定。这些属性可能会被攻击者利用,而且在sudo等复杂的SUID程序中仍会定期发现漏洞。

Polkit用于在run0中授权和确定用户功能,不支持sudo使用的经典规则语言(/etc/sudoers)。使用其他权限运行程序的功能内置于systemd run中,run0命令被创建为systemd run的符号链接,使用该命令时提供类似于sudo的命令行界面。

run0的一个附加功能是通过在终端中设置红色背景并在窗口标题中添加红点来指示使用提升的权限。使用其他权限终止执行后,点消失,背景变为正常。此外,run0支持所有“systemd run”选项,例如“-property”参数,您可以通过该参数为systemd服务设置任意设置(例如,“CPUWeight=200 MemoryMax=2G IPAccounting=yes”)。

这将在计划于今年晚些时候发布的Systemd 256中提供。

经由Mastodon