我想在啓動腳本(rc.local)中作爲非root用戶運行命令。我想要執行的命令實際上是非root用戶的.bash_profile中的別名。我曾嘗試使用如何以其他.bash_profile而不是當前用戶的身份執行命令?
su - myuser -c aliased_cmd
但這不起作用。如果我只是鍵入
su - myuser
# wait for login...
aliased_cmd
它工作正常,但顯然這不適合在實際的腳本。當然,我可以將我想要使用的別名和函數複製到實際的rc.local文件中,但這看起來有點愚蠢......也許有一個我不知道的選項或使用sudo的方法這個?
你試圖執行alias命令之前執行的「源/path-to-non-root-user-home-dir/.bash_profile」? – hovanessyan 2012-02-22 11:56:51
這是一個好主意,事實上這不起作用或許有點問題?這似乎確實_should_ work:su - myuser -c「source .bash_profile; aliased_cmd」 – Jesse 2012-02-22 13:43:53
您嘗試過'--preserve-environment'或'su -c'echo「$ SHELL」'myuser'嗎?這可能是該命令不在Bash shell中執行。 – l0b0 2012-02-22 13:50:38