sudo在完全限定的可执行文件之前使用PATH

时间:2009-07-09 22:10:46

标签: sudo

我遇到了一个我以前从未见过的问题,无法准确解释。我正在帮助某人在RedHad 4.6 zLinux上运行基于perl的安装,并且在sudo下运行似乎抓住了系统perl而不是完全合格的perl可执行文件。

示例:

/my/perl/bin> ./perl -v == 5.8.8
/my/perl/bin> /my/perl/bin/perl -v == 5.8.8
/my/perl/bin> sudo /my/perl/bin/perl -v == 5.8.5????

即使我们完全符合我们的perl路径,但在sudo下运行时仍然会抓取/ usr / bin / perl。我不知道为什么,任何大师都知道吗?

3 个答案:

答案 0 :(得分:0)

保护环境:

sudo -E /my/perl/bin/perl -v

答案 1 :(得分:0)

编辑sudoers config:

sudo gedit /etc/sudoers

添加此行

Defaults env_keep +=PATH

这类似于sudo -E但是持久。

答案 2 :(得分:0)

检查你的sudoers文件是否设置了secure_path选项,如果是这样那么那就是你的PATH

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"