今天使用普通用户执行sudo命令获取root权限时提示:不在 sudoers 文件中。此事将被报告
提示很明显,这个sudoers文件放在etc目录下,首先用户切换为root
[moc1@moc1 root]$ su root 密码: [root@moc1 ~]##查看文件权限,一般来说这个文件平时只有读权限
[root@moc1 ~]# ll /etc/sudoers -r--r-----. 1 root root 4328 10月 30 2018 /etc/sudoers#修改文件权限
[root@moc1 ~]# chmod 700 /etc/sudoers [root@moc1 ~]# ll /etc/sudoers 总用量 4 -rwx------. 1 root root 4346 5月 22 14:52 /etc/sudoers#找到/etc/sudoers文件编辑,添加相应内容
[root@moc1 ~]# vim /etc/sudoers我这里大概100行的位置
在root下面增加用户账号
保存退出
#注释
moc1:表示用户名,即授权给该用户
第一个ALL表示网络中的主机名,一般指的是IP
第二个ALL表示执行命令的目标用户,即以什么身份执行命令
第三个ALL表示可以执行的命令
#修改文件权限
[root@moc1 ~]# chmod 440 /etc/sudoers [root@moc1 ~]# ll /etc/sudoers -r--r-----. 1 root root 4346 5月 22 14:52 /etc/sudoers [root@moc1 ~]#这样我们就可以使用普通用户sudo调用root权限执行命令了。
附:
sudoers文件配置语法: 1) Host_Alias:就是主机的列表 ,ALL表示全部
Host_Alias HOST_FLAG = 192.168.0.1, 192.168.0.2, 192.168.0.3
2) Cmnd_Alias:就是允许执行的命令的列表 ,ALL表示全部
Cmnd_Alias COMMAND_FLAG =/sbin/service, /bin/rm, /bin/ls
3) User_Alias:就是具有sudo权限的用户的列表 ,ALL表示全部
User_Alias USER_FLAG = moc1,moc2,moc3
4) Runas_Alias:就是用户以什么身份执行的列表 ,ALL表示全部
Runas_Alias RUNAS_FLAG = root,mysql,php
5)配置权限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG