CentOS 执行sudo命令提示“XXX不在 sudoers 文件中“问题处理
现象说明
在普通用户使用sudo命令时,系统提示"XXX 不在sudoers文件中"或"user is not in the sudoers file"
原因说明
该用户没有添加sudo权限,导致无法使用sudo命令
解决方法
方法一:将用户添加到 sudoers 文件中定义的 sudo 组中
切换到root用户,执行命令usermod -aG wheel <username>
,<username>为要授予其权限的用户的名称
使用su - <username>
命令切换到原来的用户(或使用reboot
命令重启一下系统)。
测试 sudo
访问权限,执行sudo whoami
命令
如果用户有 sudo 访问权限,该命令将打印 “root”
如果收到错误消息 “用户不在sudoers文件中”,则表示该用户没有 sudo 权限
方法二:将用户添加到 sudoers 文件中
如果希望用户使用sudo
命令,切换至root用户,输入vi /etc/sudoers
在末尾添加<username> ALL=(ALL) ALL
,如果想不输入密码使用sudo
命令,则添加<username> ALL=(ALL) NOPASSWD: ALL
,<username>为要添加权限的用户名
使用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>
可以实现相同的效果,这种方法更易于维护,推荐使用