`sudo 执行哪个 PATH` 用于搜索 ``?

`sudo 执行哪个 PATH` 用于搜索 ``?

我在我的主目录中安装了 eclipse,并将其路径PATH放入~/.profile.

因此它的工作原理是

$ eclipse 

但是当用 , 调用它时sudoeclipse没有找到:

$ sudo eclipse 
sudo: eclipse: command not found

哪个PATH用来sudo eclipse搜索eclipse?是用户root的吗PATH

谢谢。

答案1

sudo默认情况下使用最小的 PATH,以使其安全使用用户。这不一定与PATH您通过登录获得的结果相同用户,或者通过做

sudo su -

例如,在较新的 Red Hat 版本中,我注意到路径省略了/usr/local/bin.

手册页在题为“安全说明:

sudo 在执行外部命令时尝试确保安全。

有两种不同的方法来处理环境变量。默认情况下,env_resetsudoers 选项已启用。这会导致在包含以下内容的最小环境中执行命令TERM, PATH,HOME,SHELL,LOGNAME,USERUSERNAMEenv_check除了和sudoers 选项允许的调用过程中的变量之外env_keep。实际上有一个环境变量白名单。

进一步阅读:

相关内容