2015-05-18 135 views
0

我在我已修改的/ etc/sudoers中,并加入在/etc/profile.d/somescript.sh 脚本文件中设置的变量“ansible”用户sudoers文件是这样的:为什么sudo env没有显示所有的环境变量?

Defaults !env_reset 
ansible ALL=(ALL) NOPASSWD: ALL 

为什么第一行不输出任何内容?为什么“sudo env”没有显示所有的环境变量(只有部分)?

[[email protected] ~]$ sudo env | grep ENV 
[[email protected] ~]$ sudo echo $ENV 
PP 
[[email protected] ~]$ echo $ENV 
PP 
[[email protected] ~]$ env | grep ENV 
ENV=PP 
+1

你应该问http://unix.stackexchange.com/或http://askubuntu.com/ – sed

+0

我这些问题为此调用超级用户一个有效的位置 - 这更像是一个使用问题。的确,尽管如此,这当然不是编写代码的问题,它是StackOverflow的域名。 –

回答

0

/etc/profile.d的文件只能在登录shell中找到。用-i参数运行sudo

sudo -i env | grep ENV

你可以阅读更多关于here不同bash调用方式

+0

默认情况下,如何让sudo以“sudo -i”运行? – ady8531

+0

据我所知你不能。你可以在'.bashrc'文件中设置别名'sudo ='sudo -i''。但是这取决于你调用'sudo'的方式,你应该关心自己来源'.bashrc'或者在交互式shell中调用'sudo'。希望这可以帮助你 –

相关问题