XXXX is not in the sudoers file. This incident will be reported解决方法
·
XXXX is not in the sudoers file. This incident will be reported解决方法
假设你用的是Red Hat系列(包括Fedora和CentOS)的Linux系统。当你执行sudo命令时可能会提示“某某用户 is not in the sudoers file. This incident will be reported.”
解决方法:编辑sudoers文件有两种办法,一种是以root帐号执行visudo,另一种是root帐号执行vi /etc/sudoers.其实两者都是修改/etc/sudoers。
注意:在修改
/etc/sudoers
时,一定注意该文件是否有写权限,如果没有写权限,则使用chmod u+w /etc/sudoers
使其拥有写权限
。写完后注意将写权限去掉,以防止误操作。
假设你的用户名是“minghai”,属于“minghai”用户组。
为了让用户minghai能够执行sudo命,你可以在sudoers文件中加上一下四行的任意一行。
minghai ALL=(ALL) ALL
%minghai ALL=(ALL) ALL
minghai ALL=(ALL) NOPASSWD:ALL
%minghai ALL=(ALL) NOPASSWD:ALL
解释说明:
- 第一行:允许用户minghai执行sudo命令(需要输入密码)。
- 第二行:允许用户组minghai里面的用户执行sudo命令(需要输入密码)。
- 第三行:允许用户minghai执行sudo命令,并且在执行的时候不输入密码。
- 第四行:允许用户组minghai里面的用户执行sudo命令,并且在执行的时候不输入密码。
当然如果你理解上面的原理后,可以直接输入如下命令解决此问题
su - echo 'xxx ALL=(ALL) ALL' >> /etc/sudoers (其中xxx代表用户名)
原理扩展
通过
su
可以直接将身份变为 root,但需要 root 的密码
通过sudo
可以执行 root 的命令串,sudo 只需要输入自己的密码,或者在sudoer中配置不需要任何密码
还可以可以使用visudo
修改 /etc/sudoers
文件
visudo
:visudo 是利用 vi 将 /etc/sudoers 文件调出来进行修改而已
sudoers
文件中每列的含义,以上面的示例
用户账号 登陆者的来源主机名称=(可切换的身份) 可执行的命令
minghai ALL=(ALL) ALL
上面这一行四个组件的意义:
- 【用户账号】操作系统的那个账号可以使用
sudo
这个命令,如果前面加%
代表那个用户组可以使用sudo
命令。 - 【登陆者的来源主机名称】这个账号由那台主机连接到本 Linux 主机
- 【可切换的身份】来源主机的用名称
- 【可执行的命令】可以执行什么命令。这个命令必须使用决定命令,多个命令用逗号隔开
更多推荐
已为社区贡献2条内容
所有评论(0)