CentOS 执行sudo命令提示“XXX不在 sudoers 文件中“问题处理

现象说明

在普通用户使用sudo命令时,系统提示"XXX 不在sudoers文件中"或"user is not in the sudoers file"

原因说明

该用户没有添加sudo权限,导致无法使用sudo命令

解决方法

方法一:将用户添加到 sudoers 文件中定义的 sudo 组中

切换到root用户,执行命令usermod -aG wheel <username>,<username>为要授予其权限的用户的名称
CentOS 执行sudo命令提示“XXX不在 sudoers 文件中“问题处理
使用su - <username>命令切换到原来的用户(或使用reboot命令重启一下系统)。

测试 sudo访问权限,执行sudo whoami命令
CentOS 执行sudo命令提示“XXX不在 sudoers 文件中“问题处理
如果用户有 sudo 访问权限,该命令将打印 “root”
如果收到错误消息 “用户不在sudoers文件中”,则表示该用户没有 sudo 权限

方法二:将用户添加到 sudoers 文件中
如果希望用户使用sudo命令,切换至root用户,输入vi /etc/sudoers
CentOS 执行sudo命令提示“XXX不在 sudoers 文件中“问题处理
在末尾添加<username> ALL=(ALL) ALL,如果想不输入密码使用sudo命令,则添加<username> ALL=(ALL) NOPASSWD: ALL,<username>为要添加权限的用户名
CentOS 执行sudo命令提示“XXX不在 sudoers 文件中“问题处理
使用wq!命令保存文件并退出编辑器即可

如果仅仅允许用户通过sudo运行特定的命令,如ping命令。则将上面步骤2添加的内容改为<username> ALL=(ALL) NOPASSWD: /usr/bin/ping

方法三:在 /etc/sudoers.d 目录中创建授权文件
通过在 /etc/sudoers.d 目录中创建具有授权规则的新文件来实现相同的操作,运行命令echo "<username> ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/<username>可以实现相同的效果,这种方法更易于维护,推荐使用
CentOS 执行sudo命令提示“XXX不在 sudoers 文件中“问题处理