sudo如何保持當前用戶的環境變量?


現象,我在/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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM