背景:
在某些场景下可能我们要执行命令的时候需要加sudo权限,但是在加了sudo之后却找不到命令了,明明已经安装了或者不加sudo的时候可以正常使用。
原因:
sudo运行时会以最小的path环境变量运行程序命令,这个时候可以排查下sudo的path路径,有没有包含命令所在的目录。
使用visudo或者直接编辑配置文件vim /etc/sudoers,找到"secure_path"一行,看看PATH路径是否有你命令所在的路径,比如我的ipset命令就在/usr/local/sbin下,然后PATH变量也没有包含我的命令路径,找不到命令所以会报出一个"sudo:xxx:command not found"。
解决:
在PATH变量后面加上命令的路径。