跳转到内容

systemd/run0

来自 Arch Linux 中文维基

run0(1) 是一个提权工具。其作为一种 systemd-run(1) 的另一种调用模式实现。run0 为 sudo 机制提供了一种更安全、更稳健的替代方案,由 systemd PID 1 执行命令(“权限向下剥离”而非“向上窃取权限”),使用 polkit 验证而无需依赖 SUID 二进制文件进行验证。

安装

自 systemd v256 起,run0 包含于 systemd包 软件包中。

安装 polkit包 软件包以处理授权。

配置

run0 没有独立的配置文件,所有配置均在 Polkit#配置 和 Polkit#认证规则 中完成。

默认情况下 Polkit#管理员身份认证 会将 wheel 组用户视为管理员。因此考虑将你的用户加入 wheel 组,以便于使用自己的身份进行认证。

使用

要使用 run0,需要在命令和参数前加上 run0 和空格

$ run0 cmd

例如使用 pacman 升级软件包:

$ run0 pacman -Syu

若需启用交互式 shell (类似于 sudo -i 或 su -l),只需要执行 run0。

使用 --empower 参数以当前用户身份运行特权命令,以避免完整的 root 上下文。这在需要以特权身份运行命令,同时确保所有创建的文件和目录权限仍归属当前用户时很有用(此方法加入自 systemd v259)。

systemd-run 的选项同样适用于 run0,参见:systemd-run(1) 和 run0(1)。

提示:参见安全#无 SUID 获取更高级的示例。

参见