linux sudo命令提示 command not found

发布时间 2023-03-27 11:08:42作者: lqqgis

什么是sudo

su 是申请切换 root用户,需要申请root用户密码,sudo 是用户申请管理员权限执行一个操作,而此处的操作就是变成管理员。
sudo 是 Linux 系统管理指令,是允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具,如 halt,reboot,su 等等。这样不仅减少了 root 用户的登录和管理时间,同样也提高了安全性。sudo 不是对 shell 的一个代替,它是面向每个命令的。

解决sudo的command not found

1、先查看/ect/sudoers.d文件是否存在

find /ect/sudoers.d

2、如果返回No such file or directory,就说明系统没有安装sudo,执行下面的安装命令:

apt-get install sudo
``` shell
3、如果提示`E: Unable to locate package sudo`,则执行下面命令:
``` shell
apt-get update

4、如果在步骤 1 的操作中,/etc/sudoers.d文件存在,则说明系统已经安装了 sudo,但没有配置环境。

当你使用 sudo 去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化的环境中执行,也就是说,诸如PATH这样的环境变量,在 sudo 命令下已经被重置成默认状态了。所以当一个刚初始化的 PATH 变量中不包含你所要运行的程序所在的目录,用 sudo 去执行,你就会得到 command not found 的错误提示
要想改变 PATH 在 sudo 会话中的初始值,使用以下命令打开/etc/sudoers文件

vi /etc/sudoers

找到secure_path一行,当你执行 sudo 命令时,secure_path中包含的路径将被当做默认 PATH 变量使用。

i 键就可以进入插入模式(Insert mode),添加所需要的路径(如 /usr/local/bin)到secure_path下,

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

编辑完成后,按 ESC键 切换为命令行模式,输入 : wq 保存并退出。

原文链接:https://blog.csdn.net/hello_1995/article/details/109222650