目的


使得公司的Linux系统权限管理更规范,让每个用户拥有自己所该有的权限,防止因为某些用户的权限过大后的一些误操作,导致服务器的不正常运行。


操作


1、编辑Linux系统中的sudoers文件

[root@Temp-2 ~]# vim /etc/sudoers
#Edit by root
User_Alias NETMAN = net01, net02 #用户别名
User_Alias ADMIN = admin01, admin02
User_Alias SA = %sa
#定义的别名必须都要用大写字母,别名后面跟的参数是用 ,(逗号)+ 空格 隔开的
Cmnd_Alias NETCMD = /sbin/ifconfig, /etc/init.d/network #命令别名
Cmnd_Alias ADMINCMD = /usr/sbin/useradd, /usr/sbin/userdel

NETMAN ALL = (ALL) NETCMD
ADMIN ALL = (ALL) ADMINCMD
SA ALL = (ALL) ALL

在/etc/sudoers文件中,自行重新定义别名(别名为一群拥有相同属性的集合)


别名分为:主机别名(Host_Alias)、用户别名(User_Alias)、命令别名(Cmnd_Alias)、身份别名(Runas_Alias)


(其中主机别名和身份别名较少用,主机别名的用途在于多台服务器共享同一个sudoers文件)


别名与Sudoers配置的位置对应为:

【CentOS】Linux sudo权限集中管理案例_sudo

注:


①、身份别名中所涉及的用户必须是系统中真实存在的。


②、命令别名的路径必须使用绝对路径


③、在引用用户组时,须在用户组名前面加%


2、对以上的sudoers配置结果进行验证

[root@Temp-2 ~]# su - net01
[net01@Temp-2 ~]$ sudo -l #用户所拥有的sudo权限查看
[sudo] password for net01:
User net01 may run the following commands on this host:
(ALL) /sbin/ifconfig, /etc/init.d/network

[root@Temp-2 ~]# su - admin01
[admin01@Temp-2 ~]$ sudo -l
User admin01 may run the following commands on this host:
(ALL) /usr/sbin/useradd, /usr/sbin/userdel

[root@Temp-2 ~]# id nowsun
uid=500(nowsun) gid=508(sa) groups=508(sa)
[root@Temp-2 ~]# su - nowsun
[nowsun@Temp-2 ~]$ sudo -l
[sudo] password for nowsun:
User nowsun may run the following commands on this host:
(ALL) ALL

对比完发现,与在/etc/sudoers中的配置一致。

3、配置sudo的日志审计

①、安装sudo(CentOS 6.4  中的服务为rsyslog)

[root@Temp-2 ~]#yum install sudo

②、配置/etc/sudoers

[root@Temp-2 ~]# echo "Defaults logfile=/var/log/sudo/log" ; /etc/sudoers
[root@Temp-2 ~]# tail -1 /etc/sudoers
Defaults logfile=/var/log/sudo/log

③、在普通用户下,执行sudo命令

[nowsun@Temp-2 /]$ sudo ls
app boot etc lib lost+found misc net proc sbin srv tmp var
bin dev home lib64 media mnt opt root selinux sys usr
[nowsun@Temp-2 /]$ sudo /usr/sbin/useradd kkk
useradd: user kkk exists

④、查看/var/log/sudo/log的日志文件

[root@Temp-2 ~]# cat /var/log/sudo/log
Jan 8 10:44:45 : nowsun : TTY=pts/1 ; PWD=/home/nowsun ; USER=root ; COMMAND=/bin/ls
Jan 8 10:44:51 : nowsun : TTY=pts/1 ; PWD=/home/nowsun ; USER=root ; COMMAND=/bin/ls
Jan 8 10:44:57 : nowsun : TTY=pts/1 ; PWD=/ ; USER=root ; COMMAND=/bin/ls
Jan 8 10:45:36 : nowsun : TTY=pts/1 ; PWD=/ ; USER=root ;
COMMAND=/usr/sbin/useradd kkk

发现已经记录下来了,后面就可以根据这个日志来抓出破坏系统的真凶了。