使用 sudo 时找不到某些程序

使用 sudo 时找不到某些程序

我刚刚安装/usr/local/go,并在 中~/.bashrc添加以下行:

export PATH=$PATH:/usr/local/go/bin

现在go可以从命令行工作,但是sudo go给我:

$ sudo go
sudo: go: command not found
~
$ sudo echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/benjamin/algs4/bin:/usr/local/go/bin

答案1

sudo命令在文件中有env_keepenv_reset参数。sudoers

您必须编辑您的 env_keep 设置或使用sudo -E

答案2

编辑文件 /etc/sudoers。将所需路径添加到以下行:

默认 secure_path = /sbin:/bin:/usr/sbin:/usr/bin

例子:

默认 secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

答案3

使用以下命令检查您是否已为 PATH 设置了安全策略:

$ sudo sudo -V | grep PATH
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

如果是这样,请禁用它或将其添加到那里sudo visudo

看:为什么通过 sudo 和 su 运行时 PATH 变量不同?在Unix SE

相关内容