1、 Linux用户管理用户提权命令sudo

   sudo可以让普通用户拥有以root权限去执行命令。


2、 sudo提权配置文件及使用语法

 配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法

 2.1 sudo命令参数


参数
说明
-l
列出用户在主机上可用和禁止的命令
-k
删除时间戳,再次使用sudo时需要用户密码
-u
指定用户身份
-v
验证时间戳

[user1@localhost ~]$sudo -l              查看用户可用和禁止的命令

[sudo] password for user1: 

Matching Defaults entries for user1 on this host:

User oldgirl may run the following commands on this host:

    (ALL) /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm,/usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool


2.2 提权配置格式说明:


提权的用户
主机=(运行身份)
允许和禁止的命令
root
ALL=(ALL)
ALL


3 、sudoers配置文件中的别名分类

    1)用户别名:User Aliases

    2)主机别名:Host Aliases

    3)身份别名:Runas Aliases

    4)命令别名:Command Aliases

4 、sudo配置注意事项

    1)命令别名下的成员必须是文件或目录的绝对路径。

    2)别名名称包含大写字母、数字、下划线(字母必须大写)。

    3)一个别名下有多个成员,成员之间用,逗号隔开,成员必须是真是有效存在的。

    4)别名成员受别名类型制约,定义什么样类型的别名就要有与之对应的成员匹配。

    5)别名规则是每行一个规则,如果一行容不下是可通过 \ 续行。

    6)指定切换的用户身份用()括号括起来,如果省略则默认为root用户。

    7)如不需要密码直接运行,应加NOPASSWD:参数

    8)禁止某类命令是,在动作命令全家!号,将其放在允许命令的后面。

    9)提权用户如果是用户组的话,在用户组前面加%。

5、sudo日志审计

    1、sudo配合rsyslog对sudo进行日志审计

    [root@localhost ~]#rpm -qa sudo rsyslog     检查sudo rsyslog是否安装

    rsyslog-5.8.10-10.el6_6.x86_64

    sudo-1.8.6p3-19.el6.x86_64

    2、创建文件/var/log/sudo.log

    [root@localhost ~]#touch /var/log/sudo.log

     3、使用visudo编辑/etc/sudoers配置文件,在最后一行添加如下代码后保存退出。

                (必须用tab分割开)

    Defaults        logfile=/var/log/sudo.log

    [root@localhost ~]#echo "Defaults       logfile=/var/log/sudo.log">>/etc/sudoers

    [root@localhost ~]#tail -1 /etc/sudoers      检查是否添加成功

    Defaults        logfile=/var/log/sudo.log

     3、查看日志

    [root@localhost ~]#tail /var/log/sudo.log