相关疑难解决方法(0)

如何让`sudo` 保留$PATH?

我有一个程序安装在 /opt 下的自定义目录中。为了更容易运行它,我编辑了我的 bashrc 以将所述目录添加到我的路径中:

export PATH=$PATH:/opt/godi/bin:/opt/godi/sbin
Run Code Online (Sandbox Code Playgroud)

如果我想在没有 sudo 的情况下运行程序,这很好用。但是,如果我尝试使用 sudo 运行它,它会因“找不到命令”错误而失败。

$ sudo godi_console
sudo: godi_console: command not found
Run Code Online (Sandbox Code Playgroud)

使用 sudo 后检查 PATH 变量表明它不包括我作为普通用户所拥有的相同 PATH:

$ sudo sh
# echo $PATH                 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Run Code Online (Sandbox Code Playgroud)

为什么 PATH 不一样?难道我做错了什么?我在 Debian Jessie 上,如果它有所作为。

我尝试的一件事是直接调用 /opt/godi/sbin/godi_console,将绝对路径传递给可执行文件。不幸的是,这在这种特殊情况下没有帮助,因为 godi_console 本身取决于正确设置的 PATH。

sudo path

164
推荐指数
5
解决办法
13万
查看次数

标签 统计

path ×1

sudo ×1