首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >systemd服务:作为哪个用户是EnvironmentFile指令所读取的?

systemd服务:作为哪个用户是EnvironmentFile指令所读取的?
EN

Unix & Linux用户
提问于 2023-02-01 13:41:17
回答 1查看 64关注 0票数 0

我有一个具有以下配置的systemd服务:

代码语言:javascript
运行
复制
[Unit]
Description=example systemd service unit file.

[Service]
ExecStart=/path/to/program
EnvironmentFile=/etc/program.conf
User=someuser

[Install]
WantedBy=multi-user.target

现在的问题是,EnvironmentFile读取的是哪个用户?是root还是someuser?文档不太清楚,但我发现短信上写着:

此指令列出的文件将在进程执行前不久被读取(更具体地说,在前一个单元状态的所有进程终止之后)。这意味着您可以在一个单元状态下生成这些文件,并在下一个单元状态中使用此选项读取这些文件。这些文件是从服务管理器的文件系统中读取的,然后再进行绑定挂载之类的任何文件系统更改)。

因此,绑定挂载可能需要以root的形式出现。这是否意味着我可以假设EnvironmentFile被读取为root,因为它是在绑定挂载之前读取的?

我可以做实验,但我有点惊讶,因为医生们对此不太清楚。也许我找错地方了。

EN

回答 1

Unix & Linux用户

发布于 2023-02-01 13:41:17

经过一些实验,我可以确认EnvironmentFile被读为root。因此,即使EnvironmentFile属于root,并且具有类似于0600的权限,所定义的环境变量在运行为User=someuser的进程中也会被设置为D5

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/733947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档