我經常需要運行在作爲一個不同的用戶。我一直在做類似的東西如何以不同的用戶身份運行'at'?
$ echo "$PWD/batchToRun -parameters" | sudo su - otheruser -c "at now"
batchToRun
還計劃通過otheruser的crontab來運行。直到batchToRun
開始運行,取決於環境變量設置的細微副作用 - 如LANG(排序任何人?) - 從運行sudo
的用戶環境傳入。
我通常不想以登錄其他用戶;這是一個半特權帳戶,我想要一個與其相關聯的活動的「紙質足跡」,以便我可以回頭看看究竟做了什麼,由誰,什麼時候等。
除了明顯的重寫batchToRun
獨立於這些設置,確保sudoer環境不會污染目標環境的好方法是什麼?
注:這是對FC7(須藤版本1.6.8p12版本得以)等老的發行版,所以任何閃亮的新功能sudo
/su
/at
(值得注意的是,與-i
參數傳遞到sudo
的能力)都超出了我把握。
更新:事實證明,su - otheruser
實際上是用戶之間足夠的防火牆,並且我的污染源自交互式啓動順序中的某些內容。不過,我仍然喜歡env
編輯功能。
不錯。而這些年來,我認爲「env」僅用於打印你的環境。 – jhfrontz 2013-03-22 23:07:09