让新贵作业更改其用户 ID 并以非特权用户身份运行脚本的规范方法是什么?
显然可以使用su
或sudo
,但这似乎很不安全(并且会生成不必要的日志行)。
答案1
答案2
在 freenode 上的 #upstart 频道询问,官方对此事的看法是:
Upstart 的未来版本将会提供原生支持,但是现在,您可以使用以下命令:
exec su -s /bin/sh -c 'exec "$0" "$@"' username -- /path/to/command [parameters...]
答案3
使用 start-stop-daemon 怎么样?
exec start-stop-daemon --start --chuid daemonuser --exec /bin/server_cmd
从新贵食谱:
对于 Debian 和 Ubuntu 系统,推荐的方法是使用辅助实用程序
start-stop-daemon
。[…]start-stop-daemon
不会对其启动的进程施加 PAM(“可插入式身份验证模块”)限制。
注意:start-stop-daemon
RHEL 不支持。
答案4
setuidgid
从包装中使用daemontools
。