目的
使得公司的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
發現已經記錄下來了,後面就可以根據這個日誌來抓出破壞系統的真兇了。