Linux
為什麼 sudo -E 實際上不保護我的環境?
我正在嘗試 sudo 一些位於自定義路徑中的二進製文件。雖然我執行時刪除了該自定義路徑
sudo
,但sudo -E
應該保留我的路徑。為什麼它不起作用?$ 環境 | egrep ^PATH PATH=/home/codemonkey/.nvm/v0.6.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/gam zh:/usr/遊戲 $ sudo 環境 | egrep ^PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin $ sudo -E 環境 | egrep ^PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
我知道如何解決它,我只是想知道為什麼
sudo -E
不起作用
您可以設置
exempt_group
選項來告訴 sudo 保留該PATH
組中的使用者。例如,假設您的使用者在組“sys”中。將以下內容添加到您的 sudoers 文件中
Defaults exempt_group="sys"
現在您的使用者將不會
PATH
重置 sudo 命令(-E
不需要此操作)。有關更多詳細資訊,請參見手冊頁。
編輯:必須注意這是一個錯誤的答案。它確實有效,但它有一個副作用,我在玩它時沒有註意到。它還使該組中的使用者不必輸入密碼。如果不允許這樣做,您似乎無法獲得 PATH 保存。我覺得有點傻…