sudo 找不到可执行文件
举个例子,如果你使用 snap 安装软件,它把可执行文件放在 /snap/bin
目录里。 即使你把 /snap/bin
路径加到 PATH,当使用 sudo,依然找不到命令。
解决方法
几种解决方法。
sudo "PATH=$PATH" cmd
(如果 PATH 中带有=
,你需要这么写sudo env "PATH=$PATH" cmd
)- 编辑
/etc/sudoers
的secure_path
。sudo 寻找的 PATH 就是secure_path
的值。- Debian 默认的是
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
- 你可以使用
sudo EDITOR=vim visudo
来修改。改成Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
- Debian 默认的是
- 在 PATH 里的某个目录里创建软链接,指向
/snap/bin
里的文件。(每个文件都要手动创建,就很麻烦)