2014-05-24 41 views
2

我目前困擾以下幾點:sudo環境變量如何在linux中工作?

sudo echo $MYVAR 

從我的.bashrc輸出我的變量,

sudo ./test.sh 

沒有,哪裏test.sh是下面的可執行文件:

#!/bin/sh 
echo $MYVAR     

我正在運行Ubuntu 14.04。有人能告訴我這裏發生了什麼嗎?

回答

7

運行sudo echo $MYVAR時,環境變量在shell中展開...在sudo命令可以看到它之前。

當您使用sudo運行腳本時,該腳本只能看到sudo已包含在環境中的環境變量。出於安全原因,默認設置是不包括它們。

sudo命令有一個選項-E,它告訴用戶想要通過所有環境變量的命令。 sudoers配置文件可能允許或不允許。

+0

感謝您的更多細節! – rofls