是否可以使用以root身份运行预脚本的upstart脚本,但其余部分为normal_user
。我尝试过这样的事情:
setuid normal_user
pre-start exec su -c "echo I'm root" root
script
exec /bin/bash <<"EOT"
echo "haha, I'm normal user"
EOT
是否有必要放弃setuid?
答案 0 :(得分:2)
通常,您必须删除setuid
节,以便您的作业以root身份运行。然后,您可以在exec
/ script
节中删除权限。
来自Upstart Cookbook的Changing User部分:
Debian和Ubuntu系统的推荐方法是使用helper实用程序start-stop-daemon(8),如下所示:
exec start-stop-daemon --start -c myuser --exec command
如果你想使用su(1)...为了避免由于产生shell而引起的fork(2),你可以改为指定:
exec su -s /bin/sh -c 'exec "$0" "$@"' $user -- /path/to/command --arg1=foo -b wibble
使用sudo(8)的基本示例:
exec sudo -u $user command