s58*_*804 57 ubuntu permissions root pid
在 Ubuntu 上:
touch: cannot touch `/var/run/test.pid': Permission denied
Run Code Online (Sandbox Code Playgroud)
我正在启动 start-stop-daemon 并且喜欢将 PID 文件写入 /var/run start-stop-daemon is run as my-program-user
/var/run setting is drwxr-xr-x 9 root root
Run Code Online (Sandbox Code Playgroud)
我喜欢避免将 my-program-user 放在根组中。
小智 84
默认情况下,您只能以有效用户 ID 为 0 的用户(即 root 用户)的身份写入 /var/run。这是有充分理由的,所以无论您做什么,都不要去更改 /var/run 的权限...相反,以 root 身份在/var/run下创建一个目录:
# mkdir /var/run/mydaemon
然后将其所有权更改为您希望在其下运行流程的用户/组:
# chown myuser:myuser /var/run/mydaemon
现在指定使用 /var/run/mydaemon 而不是 /var/run。
您始终可以通过以相关用户身份运行测试来对此进行测试。
小智 14
mkdir /var/run/mydaemon
chown myuser:myuser /var/run/mydaemon
Run Code Online (Sandbox Code Playgroud)
这将不起作用,因为它会在下次重新启动时丢失(/var/run是 Ubuntu 上的 tmpfs)。
唯一可行的解决方案是将 mkdir 和 chmod 作为启动脚本的一部分运行。
| 归档时间: |
|
| 查看次数: |
108706 次 |
| 最近记录: |