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

需求场景: 部署一套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,那么应用服务器上的锁定文件的脚本为:

[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

实时执行改脚本:

[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目录下,则该文件就不会覆盖到应用服务器的同名文件了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

Linux 7下安装Python 3.6

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。

17910
来自专栏自动化测试实战

Flask第二篇——服务器相关

32980
来自专栏SpringBoot 核心技术

SpringCloud组件:Eureka高可用集群部署

我们在之前的章节SpringCloud组件:搭建Eureka服务注册中心学习到了单个服务注册中心的创建,不过单模式的部署方式在实战中确实不太提倡,因为有很多种原...

1.1K20
来自专栏社区的朋友们

运维利器之万能的 strace

strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。strace...

59000
来自专栏Python自动化测试

python接口测试之测试报告

在本文章中,主要使用jenkins和编写的自动化测试代码,来生成漂亮的测试报告,关于什么是CI这些我就不详细的介绍了,这里我们主要是实战为主。

46840
来自专栏吴伟祥

logging总结 - log4j2使用流程[归档存储]

<web-app> 2.5 以前要多个依赖 log4j-web,还需要在web.xml配置listener、filter

30820
来自专栏大魏分享(微信公众号:david-share)

应用服务器到底是个啥?| 从开发角度看应用架构2:对Java EE应用进行打包和部署!

37020
来自专栏Linux运维学习之路

企业级memcached缓存数据库结合php使用与web管理memcached

环境 [root@cache01 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Cor...

27760
来自专栏一个爱瞎折腾的程序猿

在 ubuntu 中愉快的安装 Jenkins

第一次安装的可以稍微看下jenkins 的安装文档 总之,如果没有安装 Java 需要安装一下。

20710
来自专栏小狼的世界

Resin介绍及其使用配置

Resin是一个提供高性能的,支持 Java/PHP 的应用服务器。目前有两个版本:一个是GPL下的开源版本,提供给一些爱好者、开发人员和低流量网站使用;一种是...

14830

扫码关注云+社区

领取腾讯云代金券