Ubuntu 10.04.4 LTS
我已经在包括 stackoverflow 在内的各种网站上看到了有关 sudo 和 PATH 的帖子。我认为这是不同的,所以我很确定它不是重复的(但我不确定)。
1)一、ruby的非sudo路径:
$ which ruby
/usr/local/ruby/bin/ruby
2)然后是ruby的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 的情况下是相同的,为什么“which ruby”给了我不同的答案?就好像 $PATH 变量在 sudo 下没有保存真正的 PATH。
所以,最后,我的问题是:如何获得 sudo 使用的真实/准确/正确的 PATH?
谢谢,
约翰