簡體   English   中英

在upstart腳本中切換用戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM