Process
Bash / upstart - 在另一個使用者下啟動命令,替換目前程序
我正在啟動一個程序foobar作為應該在 user 下執行的新貴服務
joe
。為此,我正在使用su -c
:script su -c "foobar" joe end script
但是,當foobar執行時,該
su
過程仍然存在。如何更換流程?是否有選項或其他(標準)實用程序?su
不要濫用
su
放棄使用者權限。在過去二十年的大部分時間裡,它並沒有以正確的方式發揮作用,它實際上是一種增加特權的工具。正如超連結文章詳細解釋的那樣,它不適合作為守護程序幫助工具。您正在目睹原因之一。
正如upstart Cookbook所說, Upstart 有用於設置作業程序執行的使用者帳戶的
setuid
節。如果您真的想要一個鍊式載入工具來執行此操作,那麼daemontools工具集系列擁有大量此類工具。
在本節中使用
setuidgid
,setuidgid
,s6-setuidgid
,chpst
,runuid
, 或:setuidgid
exec
執行 setuidgid 喬 foobar