原因
- sudo命令會重置環境變量,查看文件
/etc/sudoers
,可以看到這樣的配置
Defaults env_reset
解決方法
-
第一種,也是最簡單的,使用
sudo -E
來代替sudo
即可保留當前用戶的環境變量,但缺點也很明顯,每次都要加 -
第二種方式:修改
/etc/sudoers
文件,將Defaults env_reset
改爲Defaults !env_reset
,這樣以後使用sudo就再也不會重置環境變量了需要注意的是`/etc/sudoers`是隻讀文件,vim不能更改,要使用`visudo`命令(不用加文件名)來更改內容
-
不過大部分環境變量我們一般都用不着,這種情況就可以在配置中添加env_keep,來使指定的幾個環境變量保持不變
- 具體的做法是在
/etc/sudoers
中添加語句Defaults env_keep += "env1 env2"
,這樣環境變量env1 和env2就可以在sudo執行時保留原來的值 - 不過既然
/etc/sudoers
是個只讀文件,就不是用來讓我們改來改去的;還除了它,我們還可以在目錄/etc/sudoers.d/
下隨便創建文件,寫入Defaults env_keep += "env1 env2"
,效果和在/etc/sudoers
中是一樣的,也更加方便刪除和修改
- 具體的做法是在
-
有關sudo的更多內容可以查看這裏