# 本章习题
请按照以下的方式来建立你的系统重要文件指纹膜,并每日对比此重要工作
将
/etc/{passwd,shadow,group}
以及系统上所有的 SUID/SGID 文件建立文件列表,命名为 important.file[root@study ~]# ls /etc/{passwd,shadow,group} > important.file # 将 SUID/SGID 文件追加写入到文件中 [root@study ~]# find /usr/sbin/ /usr/bin -perm /6000 >> important.file
1
2
3通过这个文档名列表,建立 md5.checkfile.sh 脚本,并将该指纹码文件 finger1.file 设置为不可修改属性
[root@study ~]# vim md5.checkfile.sh #!/bin/bash for filename in $(cat /root/important.file) do md5sum $filename >> finger1.file done [root@study ~]# sh md5.checkfile.sh [root@study ~]# chattr +i finger1.file
1
2
3
4
5
6
7
8
9通过相同的机制去建立后续的分析数据为
finger_new.file
,并将两者进行对比,若有问题则提供 email 给 root 查询[root@study ~]# vim md5.checkfile.sh #!/bin/bash if [ "$1" === "new" ]; then for filename in $(cat /root/important.file) do md5sum $filename >> finger1.file done echo "New file finger1.file is created." exit 0 fi if [ ! -f finger1.file ]; then echo "file: finger1.file NOT exist." exit 1 fi [ -f finger_new.file ] && rm finger_new.file for filename in $(cat /root/important.file) do md5sum $filename >> finger_new.file done fi testing=$(diff finger1.file finger_new.file) if [ "$testing" != "" ]; then diff finger1.file finger_new.file | mail -s 'finger trouble..' root fi [root@study ~]# vim /etc/crontab 30 2 * * * root cd /root; sh md5.checkfile.sh
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以上脚本则可以自动分析这些文件是否有改动