Centos7 用户不在 sudoers 文件中。此事将被报告

今天使用普通用户执行sudo命令获取root权限时提示:不在 sudoers 文件中。此事将被报告

Centos7 用户不在 sudoers 文件中。此事将被报告_第1张图片

提示很明显,这个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行的位置

Centos7 用户不在 sudoers 文件中。此事将被报告_第2张图片

在root下面增加用户账号

Centos7 用户不在 sudoers 文件中。此事将被报告_第3张图片

保存退出

#注释

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

你可能感兴趣的:(Linux)