这里:
http://man7.org/linux/man-pages/man5/systemd.exec.5.html
有一个很好的解释,说有类似“进程执行的组”的东西。但是,我找不到这到底是什么。我注意到,在 systemd 脚本中设置“组”选项会更改可以创建文件的位置的权限。也就是说,如果没有这个选项,我可以写入某个文件,但有了这个选项,我就不能写入了。
这表明“进程执行的组”不仅仅决定新创建文件的组,还可以提升或降低权限。
不幸的是,还有一种称为“进程组”的东西,它就像一组进程,我认为它不会改变权限和权利。但这使该功能更难在 Google 上找到。
有人可以向我解释一下“进程执行的组”是什么吗?
答案1
这里的“Group”是指“Unix 组”,指的是 中定义的组/etc/group
。与User=
指令一起,Group=
设置进程以哪个 Unix 用户和组执行。
适用通常的 Unix 权限模型,因此如果您从 ~/.config/systemd 运行“用户服务”,则仅指定用户所属的组才有效。
进程也属于特定的用户 ID 和组;这决定了谁被允许对文件(或目录,一种文件类型)执行什么操作,以及特定进程被允许读取、写入或执行哪些文件。
实际上,不以 root 身份运行的服务往往以与单个组关联的用户身份运行,因此该Group=
指令没有特别的意义。例如,MongoDB 数据库以mongodb
用户和mongodb
组的身份运行。重要的是组是独特的这样 MongoDB 进程可以访问的内容就受到最大程度的限制。