对 sudo 和路径的困惑

对 sudo 和路径的困惑

我有几个程序需要/usr/local/binroot 权限才能运行。

如果我跑

sudo my_prog 

我明白了

sudo: my_prog: command not found

我必须写

sudo /usr/local/bin/my_prog 

使程序正常运行。

有人可以向我解释为什么我必须这样做吗?/usr/local/bin在根部$PATH和我的根部。

答案1

您可以/usr/local/bin在 root 中拥有$PATH ,但仅仅这样做sudo并不会为您提供 root 的配置文件PATH设置的位置

以root身份登录后你会得到它

su -

或者

sudo -i

这些给你一个 root shell。

如果您想留在一行,请尝试使用

sudo su -c 'my_prog'

如果这不起作用,请使用 -l 强制执行

sudo su -l -c 'my_prog'

相关内容