Linux sudo用户提权与日志审计
一、格式说明及常用配置选项
格式: 用户或组 主机=授权可以使用哪个用户的权限 可以执行的命令
User_Alias 用户定义别名(别名可以是用户,用户组(用户组前面要加%))
例:User_Alias OLD_ADMINS=wt
Runas_Alias 定义runas别名(sudo允许切换到的用户身份)
例:Runas_Alias OP=root
Cmnd_Alias 定义命令别名
例:Cmnd_Alias USERCMD=/usr/sbin/useradd
注意事项:如果别名后面有多个用户或命令,可以使用","隔开;如果使用的是组,在组前面需要加"%";如果配置语句太长,可以使用"\"换行;需要特别注意的是,所有定义的别名都需要大写
二、配置一个范例
1、创建一个新用户
1 [root@WT ~]# useradd wt 2 [root@WT ~]# echo "wt"|passwd --stdin wt 3 Changing password for user wt. 4 passwd: all authentication tokens updated successfully.
2、执行visudo命令在最下面添加如下配置,实现sudo提权
#My sudo configuration User_Alias OLD_ADMINS=wt Runas_Alias OP=root Cmnd_Alias USERCMD=/usr/sbin/useradd OLD_ADMINS ALL=(OP) USERCMD
3、切换到wt用户,并执行查看wt所拥有的权限(可以看到wt这个普通用户已经拥有创建用户命令的useradd命令了)
1 [root@WT ~]# su - wt 2 Last login: Thu Sep 27 21:54:09 CST 2018 on pts/0 3 [wt@WT ~]$ sudo -l 4 5 We trust you have received the usual lecture from the local System 6 Administrator. It usually boils down to these three things: 7 8 #1) Respect the privacy of others. 9 #2) Think before you type. 10 #3) With great power comes great responsibility. 11 12 [sudo] password for wt: 13 Matching Defaults entries for wt on WT: 14 !visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR 15 LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE 16 LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", 17 env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin 18 19 User wt may run the following commands on WT: 20 (root) /usr/sbin/useradd
4、试在普通用户wt用户创建一个test用户
1 [wt@WT ~]$ sudo useradd test 2 [wt@WT ~]$ id test 3 uid=1001(test) gid=1001(test) groups=1001(test)
三、配置日志审计
1、配置日志审计
[root@WT ~]# rpm -aq sudo rsyslog rsyslog-8.24.0-16.el7.x86_64 sudo-1.8.19p2-13.el7.x86_64 [root@WT ~]# echo "Defaults logfile=/var/log/sudo.log">>/etc/sudoers
[root@WT ~]# visudo -c
/etc/sudoers: parsed OK
2、切换到普通用户wt,创建一个普通用户test2
[root@WT ~]# su - wt Last login: Fri Sep 28 21:48:38 CST 2018 on pts/0 [wt@WT ~]$ sudo useradd test2 [sudo] password for wt:
3、切换到root用户,查看/var/log/sudo.log的内容
1 [root@WT ~]# cat /var/log/sudo.log 2 Sep 28 22:38:30 : wt : TTY=pts/0 ; PWD=/home/wt ; USER=root ; 3 COMMAND=/sbin/useradd test2