SHELL系统文件完整性校验

系统完整性审核工具

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的湘阴网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

shell脚本如下:

#!/bin/bash
#
# 变量首先声明才能使用
shopt -s -o nounset

# 声明

# 建立日期

Date=$(date +'%Y%m%d%H%M%S')

# 加入审核的目录         #

Dirs="/bin /sbin /usr/bin /usr/sbin /lib /usr/local/sbin /usr/local/bin /usr/local/lib"

# 临时文件               #

TMP_file=$(mktemp /tmp/check.XXXXXX)

# 文件checksum存储文件
FP="/root/fp.$Date.chksum"

# 使用哪种checksum工具
Checker="/usr/bin/md5sum"
Find="/usr/bin/find"

# 函数区                #

scan_file() {
        local f
        for f in $Dirs
        do
                $Find $f -type f >> $TMP_file
        done
}

# 读取文件建立每个文件的checksum值
cr_checksum_list() {
        local f
        if [ -f $TMP_file ]; then
                for f in $(cat $TMP_file);
                        do
                                $Checker $f >> $FP
                done
        fi
}
rmTMP() {
        [ -f $TMP_file ] && rm -rf $TMP_file
}


# 主程序区


# 扫描列表
scan_file

# 建立文件的checksum值
cr_checksum_list

# 清理临时文件
rmTMP

脚本执行:

[root@node3 ~]# sh my_filecheck.sh

进行校验:

md5sum  -c fp.20141205160628.chksum

如果一切OK,都会显示OK的字样,如果有问题,就报相应的错误,如下:

[root@node3 ~]# md5sum  -c fp.20141205160628.chksum  | grep -v "OK"
md5sum: /usr/bin/chattr: No such file or directory
/usr/bin/chattr: FAILED open or read
md5sum: WARNING: 1 of 8267 listed files could not be read

分享标题:SHELL系统文件完整性校验
URL标题:http://scyanting.com/article/iipoed.html