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

    xiaoxiao2022-07-03  130

    今天使用普通用户执行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

    最新回复(0)