![对 sudo 和路径的困惑](https://linux22.com/image/47573/%E5%AF%B9%20sudo%20%E5%92%8C%E8%B7%AF%E5%BE%84%E7%9A%84%E5%9B%B0%E6%83%91.png)
我有几个程序需要/usr/local/bin
root 权限才能运行。
如果我跑
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'