解決sudo找不到環境變量的問題

原因

  • 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的更多內容可以查看這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章