加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何确定执行systemd manager作业的Linux用户/组?

发布时间:2020-12-13 16:35:56 所属栏目:Linux 来源:网络整理
导读:我试图确定哪个 Linux用户/组运行systemd作业,以便我可以相应地设置D-Bus权限. 我这样做的时候: sudo systemctl start myservice 这最终会调用一个可执行文件,试图在D-Bus上注册自己,但是为了工作,我需要在D-Bus配置中提供用户权限.如何判断哪个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

系统化的单元文件有很好的文档记录(与许多其他开源软件相比).您可以在单元文件中使用的指令分布在许多手册页中,因此信息可能不容易找到和理解,特别是如果系统化概念对读者来说不那么清楚.

但是所有指令都有一个索引页面:

http://www.freedesktop.org/software/systemd/man/systemd.directives.html

有更多文档可用:

http://www.freedesktop.org/wiki/Software/systemd/

我已经读了一段时间,但如果我没记错的话
Systemd for Administrators博客系列给出了概念的合理背景.

对于所有类型的问题

How can I tell…

只需添加ExecStartPre =指令,其中包含适用于测试/查询所需项目的命令.

例如.

ExecStartPre=/usr/bin/whoami

请注意,systemd默认情况下不使用shell,但您始终可以手动执行此操作

ExecStartPre=/bin/sh -c "if true;then echo true;fi"

您可以使用systemctl status< myunit>查看此类命令的输出.或者使用journalctl命令查看日志(以root身份!).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读