[英]Switch between users in an upstart script
是否可以使用以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?
我終於通過刪除setuid normal_user
並進行更改來實現它
exec /bin/bash <<"EOT"
至
exec sudo -u normal_user /bin/bash <<"EOT"
通常,您必須刪除setuid
節,以便您的作業以root身份運行。 然后,您可以刪除exec
/ script
節中的權限。
從Upstart Cookbook的更改用戶部分:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.