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?
谢谢,
约翰
答案 0 :(得分:1)
sudo echo $PATH
逐出$ PATH。
要确定:
sudo -s
echo $PATH
您需要在/ etc / sudoers
中将PATH变量添加到env_keep