Linux
如何確定執行 systemd 管理器作業的 Linux 使用者/組?
我正在嘗試確定哪個 Linux 使用者/組執行 systemd 作業,以便我可以相應地設置 D-Bus 權限。
當我這樣做時:
sudo systemctl start myservice
這最終呼叫了一個嘗試在 D-Bus 上註冊自身的執行檔,但是為了使其工作,我需要在 D-Bus 配置中提供使用者權限。我如何知道哪個 Linux 使用者/組與上述相關聯?
您可以在單元文件中使用 User= 和 Group= 指令。
http://www.freedesktop.org/software/systemd/man/systemd.exec.html
Systemd 單元文件有很好的文件記錄(與許多其他開源軟體相比)。您可以在單元文件中使用的指令分佈在許多手冊頁中,因此資訊可能不那麼容易找到和理解,尤其是在 systemd 概念對讀者來說不太清楚的情況下。
但是所有指令都有一個索引頁:
http://www.freedesktop.org/software/systemd/man/systemd.directives.html
有更多可用的文件:
http://www.freedesktop.org/wiki/Software/systemd/
我已經讀了一段時間了,但如果我沒記錯的話,Systemd for Administrators 部落格系列給出了有關這些概念的合理背景。
對於所有類型的問題
我怎麼能告訴…
只需添加 ExecStartPre= 指令,其中包含適用於測試/查詢所需項目的命令。
例如
ExecStartPre=/usr/bin/whoami
請注意,systemd 預設不使用 shell,但您始終可以手動使用
ExecStartPre=/bin/sh -c "if true;then echo true;fi"
您可以使用命令查看此類命令的輸出,也可以使用該命令(以 root 身份!)
systemctl status <myunit>
查看日誌。journalctl