shell编程----系统文件加密


建立测试数据

[root@localhost shell]# mkdir /var/html/www -p
[root@localhost shell]# cp -a /etc/a* /var/html/www/
[root@localhost shell]# cp -a /etc/b* /var/html/www/
[root@localhost shell]# ls /var/html/www/
abrt        alsa          at.deny  avahi              bluetooth
adjtime     alternatives  at-spi2  bash_completion.d  bonobo-activation
aliases     anacrontab    audisp   bashrc             brltty
aliases.db  asound.conf   audit    binfmt.d           brltty.conf

找到所有的文件

[root@localhost shell]# find /var/html/www/ -type f

建立指纹库:给每个文件生成指纹

[root@localhost shell]# find /var/html/www/ -type f| xargs md5sum > /opt/zhiwen.db  # xargs将其标准输入中的内容以空白分割成多个之后当作命令行参数传递给后面的命令

建立初始文件库

[root@localhost shell]# find /var/html/www/ -type f > /opt/wenjian.db
[root@localhost shell]# cat /opt/wenjian.db 
/var/html/www/abrt/abrt-action-save-package-data.conf
/var/html/www/abrt/abrt.conf
/var/html/www/abrt/gpg_keys.conf
/var/html/www/abrt/plugins/xorg.conf
/var/html/www/abrt/plugins/python.conf
/var/html/www/abrt/plugins/CCpp.conf
/var/html/www/abrt/plugins/vmcore.conf
/var/html/www/adjtime
/var/html/www/aliases
/var/html/www/aliases.db
/var/html/www/alsa/state-daemon.conf
/var/html/www/alsa/alsactl.conf
/var/html/www/anacrontab
/var/html/www/asound.conf
/var/html/www/at.deny

检测文件内容的变化

[root@localhost www]# echo xixihaha >> bashrc   # 改变文件内容
[root@localhost www]# md5sum -c /opt/zhiwen.db  # 检测全部文件进行输出
/var/html/www/abrt/abrt-action-save-package-data.conf: OK
/var/html/www/abrt/abrt.conf: OK
/var/html/www/abrt/gpg_keys.conf: OK
/var/html/www/abrt/plugins/xorg.conf: OK

[root@localhost www]# md5sum -c --quiet /opt/zhiwen.db    # 只输出被更改的不匹配文件
/var/html/www/bashrc: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

指纹库无法检测新增的文件

[root@localhost www]# touch test
[root@localhost www]# ls
abrt        alternatives  audisp             binfmt.d           test
adjtime     anacrontab    audit              bluetooth
aliases     asound.conf   avahi              bonobo-activation
aliases.db  at.deny       bash_completion.d  brltty
alsa        at-spi2       bashrc             brltty.conf
[root@localhost www]# md5sum -c --quiet /opt/zhiwen.db 
/var/html/www/bashrc: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

解决无法检测新增文件方法

[root@localhost www]# find /var/html/www/ -type f > /opt/wenjian.db_curr
[root@localhost www]# diff /opt/wenjian.db_curr /opt/wenjian.db
349d348
< /var/html/www/test

系统文件加密脚本

开发脚本
预备工作恢复文件:

find /var/html/www/ -type f |xargs md5sum > /opt/zhiwen.db
find /var/html/www/ -type f > /opt/wenjian.db
md5sum -c /opt/zhiwen.db 

check.sh脚本

[root@localhost shell]# cat check.sh 
#!/bin/bash
RETVAL=0     # 状态初始化
CHECK_DIR=/var/html/www    # 定义要检测的站点目录
[ -e $CHECK_DIR ]||exit 1  # 如果[ -e $CHECK_DIR ]执行失败就执行exit 1
zhiwendb="/opt/zhiwen.db"  # 定义原始指纹库路径
filedb="/opt/wenjian.db"   # 定义原始文加库路径
errlog="/opt/err.log"      # 定义检测后的内容日志

[ -e $zhiwendb ]||exit 1   # 如果原始指纹库不存在则自动退出脚本
[ -e $filedb ]||exit 1     # 如果原始文件库不存在则退出脚本

# judge file content
echo "[root@localhost ~]# md5sum -c --quiet /opt/zhiwen.db" > $errlog
md5sum -c --quiet /opt/zhiwen.db &> /dev/null
RETVAL=$?

# com file count
find /var/html/www/ -type f > /opt/wenjian.db_curr
echo "[root@localhost ~]# diff /opt/wenjian.db*" &>>$errlog
diff /opt/wenjian.db* &>>$errlog

if [ $RETVAL -ne 0 -o  `diff /opt/wenjian.db* |wc -l` -ne 0 ];then
	touch /tmp/`date +%s`.err
else
	echo "Sites dir is ok."
fi
结果:
[root@localhost shell]# sh check.sh 
Sites dir is ok.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值