跳至內容

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 獲取更高級的示例。

參見