指定 init.d 的用户

指定 init.d 的用户

我有一个 init.d 脚本,它使用 start-stop-daemon 启动|停止|重新启动守护进程。

此守护进程始终以 root 身份启动。我希望能够指定 init.d 脚本将用于启动守护进程的用户。

尝试使用 start-stop-daemon 的 --user 选项,但是不起作用。

有人可以建议如何做到这一点吗?

答案1

由于 Ubuntu 正在从 sysvinit 转换为 upstart,我建议您将脚本转换为 /etc/init/ 目录中的 upstart 作业。手册页为man 5 init

有 setuid 和 setgid 项用于设置运行 upstart 作业的用户和组。


假设您的脚本执行另一个脚本,我想您可以su userid向其中添加命令以将有效 uid 和 gid 更改为其参数的 uid 和 gid。我不确定su在 sysvinit 脚本本身中运行是否安全,而无需更改后续 /etc/init.d/ 脚本的这些内容,但也许这样也可以。

相关内容