【发布时间】:2026-01-08 06:00:01
【问题描述】:
Ubuntu 10.04.4 LTS
我在包括 * 在内的各种网站上看到了有关 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>
即,ruby 的路径在我使用 sudo 时设置的 $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?
谢谢,
约翰
【问题讨论】:
标签: path ubuntu-10.04 sudo