在Linux系统中,使用sudo命令时出现“command not found”的错误提示,可能是由于系统未安装sudo或者sudo配置环境不正确导致的。
1、如果执行命令
find /etc/sudoers.d
返回“No such file or directory”,说明系统未安装sudo。可以通过执行命令以下来安装sudo。
sudo apt-get install
如果出现“E: Unable to locate package sudo”的错误提示,可以先执行升级命令
apt-get update
然后再执行sudo apt-get install来安装。
2、如果/etc/sudoers.d文件存在,则说明系统已经安装了sudo,只是环境配置不正确。当使用sudo执行程序时,为了安全考虑,该程序将在一个新的、最小化的环境中执行。这意味着在sudo命令下,诸如PATH这样的环境变量已被重置为默认状态。因此,如果一个刚初始化的PATH变量中不包含要执行的程序所在的目录,使用sudo执行时就会出现“command not found”的错误提示。
要改变sudo会话中PATH的初始值,可以使用以下命令打开/etc/sudoers文件:
vi /etc/sudoers
找到”secure_path”这一行,在执行sudo命令时,“secure_path”中包含的路径将被当作默认的PATH变量使用。按下“i”键进入插入模式,在”secure_path”下添加所需路径(如/usr/local/bin)。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
编辑完成后,按下“ESC”键切换为命令行模式,输入“:wq”保存并退出。