Process

Bash / upstart - 在另一個使用者下啟動命令,替換目前程序

  • October 23, 2017

我正在啟動一個程序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, 或:setuidgidexec

執行 setuidgid 喬 foobar

引用自:https://unix.stackexchange.com/questions/399920