-
备份SetUID
-
校验SetUID
对于新装的操作系统,首先备份其SetUID和SetGID。
1 2 3 4 | #保存文件的详细信息,便于以后查看 /usr/bin/find / -perm +6000 -exec ls -ld {} ; > ~/SetUGID_$(date +%Y%m%d).raw 2> /dev/null #只保存文件名,用于以后的定期检查(计划任务) /usr/bin/find / -perm -4000 -o -perm -2000 > ~/setugid.raw 2> /dev/null |
设定计划任务(略)校验SetUID。使用到的Shell脚本如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | ################################################################################ #Name: checkSetUGID.sh #Version: 20110919 #Author: Yi Xianfu #Email: yixf1986@gmail.com #Description: 查找具有SetUID或者SetGID的文件,与原始备份进行比较;如果有异常,发邮件通知管理员。 ################################################################################ #!/bin/bash #查找具有SetUID或者SetGID文件的路径;默认为根目录 DIR=“/” #接收警告报告的管理员邮箱 EMAIL="admin@gmail.com" /usr/bin/find $DIR -perm -4000 -o -perm -2000 > /tmp/setuid.check #如果有异常,发邮件通知管理员,并保存当前的列表 #如果正常,删除临时文件 for file in `/bin/cat /tmp/setuid.check` do #根据实际情况修改文件setugid.raw所在的路径 /bin/grep $file ~/setugid.raw > /dev/null if [ "$?" != "0" ] then /bin/echo "$file isn't in SetUGID SetUGIDlist! It's danger!!" | /usr/bin/mail -s "Critical Permission: New SetUID file" $EMAIL else /bin/rm /tmp/setuid.check fi done |