大家早上好!我有一個bash腳本自動啓動時,通過在用戶的主目錄中的.profile文件在系統啓動:ssh與sudo無法正常工作
須藤menu.sh
腳本開始。但是,正如預期,稱東西像SSH聯合國@地址時,在腳本中,known_hosts文件被放置在/root/.ssh目錄中,而不是調用腳本的用戶帳戶!我嘗試修改.profile來調用'sudo -E menu.sh'和'sudo -H menu.sh',但都沒有在調用腳本的用戶主目錄中創建known_hosts文件。我的/ etc/sudoers如下:
# Declarations
Defaults env_keep += "HOME USER"
# User privilege specification
root ALL=(ALL) ALL
user ALL=NOPASSWD: ALL
任何幫助將不勝感激!
感謝 戴夫
更新:所以我做了一個解決辦法是要經過腳本,並添加特定之前調用「須藤-u $ USER」(因爲須藤應該保持$ USER的環境變量)。這對我來說似乎是解決這個問題的一個非常糟糕的方式。它sudo應該在啓動menu.sh時保留USER和HOME目錄變量,爲什麼我需要爲特定用戶再次顯式調用sudo以保留該信息(即使sudo被告知通過/ etc/sudoers文件)。沒有線索,但想要更新這篇文章的任何人遇到它,直到找到更好的解決方案。
抱歉,系統啓動時,用戶主目錄中的.profile腳本通常不會被執行。只有當該用戶登錄系統時才執行(如果有的話)。 – arkascha 2015-02-09 16:19:50
感謝您的快速評論arkascha。該腳本按設計加載,因此.profile腳本沒有任何問題。任何其他想法? – user1646428 2015-02-09 16:22:10
我不是故意說腳本沒有執行。我只想指出這個問題是不健全的。關於這個問題:當然,根主目錄內部會生成一個known_hosts文件,因爲它是生成另一個進程的根用戶(這裏是ssh客戶端)。那麼爲什麼你聲稱sudo工作不正常?它完全按預期工作。 – arkascha 2015-02-09 16:22:48