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

Alysa ·
更新时间:2024-09-20
· 627 次阅读

目录标题系统文件加密脚本

建立测试数据

[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.
作者:weixin_43384009



加密 系统 shell编程 shell

需要 登录 后方可回复, 如果你还没有账号请 注册新账号