現象,我在/etc/profile里設置全局代理,然后使用命令
1、curl http://www.baidu.com 走代理
2、sudo curl http://www.baidu.com 並沒有走代理
使用env和sudo env查看環境變量,發現代理設置只存在於env里,sudo env里並沒有代理的信息
那么如何使用sudo的時候,把環境變量也帶進去呢?
方法一、
在/etc/sudoers
中添加以下內容作用相同:
Defaults !env_reset
方法二、
可以把需要傳遞環境變量的命令設置到env_keep
:
Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"
可以看到sudo pip和pip環境變量是不同的
傳遞命令別名
當前用戶的命令別名不會應用到sudo。如果需要這樣,只需在~/.bashrc
或者/etc/bash.bashrc
中加入:
alias sudo='sudo '
參考:
1、https://www.ibm.com/developerworks/cn/aix/library/au-sudo/
2、https://wiki.archlinux.org/index.php/Sudo_%28簡體中文%29
3、http://blog.csdn.net/dabao1989/article/details/51955559