可能重复:
使用“sudo”运行时的环境变量
我已经在路径中添加了一个新文件夹,但是当使用“sudo”运行程序(在该文件夹中)时它不起作用。
当我输入
sudo <command-name>
它返回:
sudo: <command-name>: command not found
我如何让它可用于 sudo?
答案1
这很奇怪。无论如何,我认为
sudo /FULL_PATH/program_name
将工作。
另一个好主意是在 /sbin/ 目录中添加一个符号链接
sudo ln -s /FULL_PATH/program_name /sbin
答案2
PATH 位于您的 ~/.profile、~/.bashrc 或 ~/.bash_profile 文件中。此文件仅供您的帐户使用。
当您设置 PATH 时,您可能编辑了 /home/yourname/.profile,对吗?Sudo 不会(如人们所想的那样)使用 /root/.profile 中的 PATH 而不是 /home/yourname/ 中的 PATH,也不会始终使用您自己的 PATH。
问题是 sudo 会覆盖几个变量。具体覆盖哪些变量取决于您的系统。以 root 身份运行:
sudo -V
它会告诉你你的 PATH 是否被使用。然后你可以使用 sudo -E 选项覆盖默认 PATH 的使用。请参阅手册页中有关 /etc/sudoers 文件的描述。