2015-05-18 128 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'。希望這可以幫助你 –

相關問題