前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文件实时同步后防篡改的操作记录

文件实时同步后防篡改的操作记录

作者头像
洗尽了浮华
发布2018-01-23 15:58:41
1.3K0
发布2018-01-23 15:58:41
举报
文章被收录于专栏:散尽浮华散尽浮华

需求场景: 部署一套sftp环境,用于客户上传电子文件(合同文件或视频文件等),文件上传到sftp后立即实时同步到业务应用服务器上。为了安全考虑,文件在首次同步后,后续再同步时就不覆盖同名文件,这样做是为了防止文件被篡改!

部署思路: 1)sftp高可用环境部署,参考:http://www.cnblogs.com/kevingrace/p/7868049.html 2)rsync+inotify实时同步环境部署,参考:http://www.cnblogs.com/kevingrace/p/6001252.html 3)防篡改做法:当文件被首次实时同步到应用服务器上后,立马使用chattr命令将其锁定,即禁止写入!可以在应用服务器上写一个锁定文件的脚本,实时执行的!

sftp的上传目录是/data/test,实时同步到应用服务器上的目录也是/data/test,那么应用服务器上的锁定文件的脚本为:

代码语言:javascript
复制
[root@centos6-05 ~]# vim /root/chattr_test.sh 
#!/bin/bash
while [ "1" = "1" ]
do
for A in `ls -l /data/test/|grep -v total|awk '{print $9}'`;do
     /usr/bin/chattr +ai /data/test/${A}
done
done

实时执行改脚本:

代码语言:javascript
复制
[root@app01 ~]# nohup sh -x /root/chattr_test.sh &

[root@app01 ~]# ps -ef|grep chattr_test.sh
root      5684  9769  0 21:33 pts/0    00:00:00 grep chattr_test.sh
root     28227  9769 37 18:36 pts/0    01:05:48 sh -x chattr_test.sh

上面脚本针对的是上传目录/data/test下全是文件,没有子目录。如果/data/test 下面有子目录,那么就在脚本中添加find命令查询对应子目录下的文件进行chattr锁定。

测试效果: 当sftp里上传一个新文件A,该文件会实时同步到应用服务器的/data/test 目录下。然后再修改A文件并上传覆盖到sftp目录下,则该文件就不会覆盖到应用服务器的同名文件了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档