linux - sudo意思 - ubuntu su




如何在使用SUDO時保持環境變量 (3)

對於想要一次性提供的個別變量,可以將其作為命令的一部分。

sudo http_proxy=$http_proxy wget "http://stackoverflow.com"

當我用sudo使用任何命令時,環境變量不存在。 例如,在設置HTTP_PROXY之後,命令wget沒有sudo可以正常工作。 但是,如果我鍵入sudo wget它說它不能繞過代理設置。


您也可以將Ahmed Aswani的答案中的兩個env_keep語句合併到一個單獨的語句中,如下所示:

Defaults env_keep += "http_proxy https_proxy"

您還應該考慮只為這樣的單個命令指定env_keep

Defaults!/bin/[your_command] env_keep += "http_proxy https_proxy"


首先你需要export HTTP_PROXY 。 其次,你需要仔細閱讀man sudo ,並註意-E標誌。 這工作:

$ export HTTP_PROXY=foof
$ sudo -E bash -c 'echo $HTTP_PROXY'

以下是手冊頁中的引用:

-E, --preserve-env
             Indicates to the security policy that the user wishes to reserve their
             existing environment variables.  The security policy may eturn an error
             if the user does not have permission to preserve the environment.




sudoers