与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
sudo
命令在sudoers
文件中有env_keep
和env_reset
参数。
您必须编辑env_keep设置或使用sudo -E
。
只需按键盘上的Ctrl + Alt + T即可打开终端。 打开时,运行以下命令。
sudo ln -s /usr/local/go/bin/go /usr/bin/go
编辑文件/ etc / sudoers。 将所需路径添加到以下行:
默认值为secure_path = / sbin:/ bin:/ usr / sbin:/ usr / bin
例:
默认值为secure_path = / sbin:/ bin:/ usr / sbin:/ usr / bin:/ usr / local / sbin:/ usr / local / bin
通过以下命令检查是否为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