我需要在我的Ubuntu机器上运行sudo访问节点。节点的目录位于sudo路径中,但是当尝试运行它时,我得到一个未找到的命令。我可以明确地调用有效的节点。
//works
node
>
which node
/root/local/node/bin/node
echo sudo $PATH
sudo /root/local/node/bin:/usr/bin/node:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
sudo node --version
sudo: node: command not found
//explicitly calling it works
sudo node /root/local/node/bin
>
答案 0 :(得分:2)
sudo
运行的东西,你真的应该不依赖于路径 - 你应该尽可能为每个命令和文件参数提供显式路径名,最小化安全风险。如果sudo
不想投放某些内容,则需要使用visudo
将其添加到/etc/sudoers
。