Это переменная PATH без sudo:
$ echo 'echo $PATH' | sh
/opt/local/ruby/bin:/usr/bin:/bin
Это переменная PATH с sudo:
$ echo 'echo $PATH' | sudo sh
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
Насколько я могу судить, sudo должен оставить PATH нетронутым. Что происходит? Как мне это изменить? (Это находится на Ubuntu 8.04).
ОБНОВЛЕНИЕ: насколько я могу судить, ни один из скриптов не начинался с изменения PATH с правами root.
От человека sudo:
Чтобы предотвратить подмену команды, sudo проверяет `. '' и` `'' (оба обозначают текущий каталог) последний раз при поиске для команды в пользовательском PATH (если один или оба находятся в PATH). Обратите внимание, однако, что фактический PATH переменная среды не изменяется и передается без изменений в программу что sudo выполняется.