Linux

如何確定執行 systemd 管理器作業的 Linux 使用者/組?

  • September 11, 2015

我正在嘗試確定哪個 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

引用自:https://serverfault.com/questions/715820