目的
使得公司的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配置的位置对应为:
注:
①、身份别名中所涉及的用户必须是系统中真实存在的。
②、命令别名的路径必须使用绝对路径
③、在引用用户组时,须在用户组名前面加%
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
发现已经记录下来了,后面就可以根据这个日志来抓出破坏系统的真凶了。