ubuntu 10.04 sudo和路径

时间:2013-02-13 02:38:51

标签: path ubuntu-10.04 sudo

Ubuntu 10.04.4 LTS

我在各种网站上看过有关sudo和PATH的帖子,包括stackoverflow。我认为这是不同的,所以我很确定它不是重复的(但我不确定)。

1)首先,非sudo路径为ruby:

$ which ruby
/usr/local/ruby/bin/ruby

2)然后是sudo的sudo路径:

$ sudo which ruby
/usr/bin/ruby

好的,到目前为止一切顺利。当我使用sudo时,路径发生了变化。

3)但这是我不能得到的部分:

$ sudo echo $PATH
/home/cm6/bin:/usr/local/ruby/bin:/usr/local/ruby/bin:/usr/local/sbin:<snipped>

即,当我使用sudo时,ruby的路径在$ PATH变量集中。

4)又有点陌生人了:

$ echo $PATH
/home/cm6/bin:/usr/local/ruby/bin:/usr/local/ruby/bin:/usr/local/sbin:<snipped>

这一次,没有sudo,但$ PATH变量内容与sudo相同。

鉴于$ PATH变量是否与sudo相同,为什么&#34;哪个ruby&#34;给我不同的答案?好像$ PATH变量不能在sudo下保存真正的PATH。

所以,最后,我的问题是:如何获得sudo使用的真实/准确/正确的PATH?

谢谢,

约翰

1 个答案:

答案 0 :(得分:1)

在调用sudo之前,

sudo echo $PATH逐出$ PATH。

要确定:

sudo -s
echo $PATH

您需要在/ etc / sudoers

中将PATH变量添加到env_keep