将来的你
一定会感谢现在拼命努力的自己

Linux下巧用chattr、watch命令的实例


一、起因

前些日子,张戈在日志备份服务器加入了日志压缩的计划任务(详见服务器日志备份超节省空间的思路),结果发现监控总是发来 tar 的报警,提示存在 tar 进程。仔细检查 history 后发现是公司总部那边做的监控:

Linux下巧用chattr、watch命令的实例

 

每 20 分钟执行一个监控脚本,然后删除。

分析下这样做的好处:①、不留痕迹;②、把 history 塞满,让其他操作无迹可寻(感觉有点蛋疼)。

二、擒获

每次执行后立马删除了,得想个办法把这脚本“擒获”!

于是我写了一个简单的脚本 catch.sh:

ps:如果发现 hdd.sh 就把它复制一份到 tmp 目录,如果 tmp 目录发现存在 hdd.sh 则打印 Catch it,结束脚本。

然后使用 watch 来执行它:

ps:每隔 0.1 秒执行上面的脚本,应该可以在删除之前获取脚本。

等了一段时间,看了下终端:

Linux下巧用chattr、watch命令的实例

还真抓住了!

编辑 hdd.sh,发现了 tar 进程监控语句:

三、计策

一抓到“真凶”了,但是又不能处以“死刑”,因为还有“利用价值”,所以这是一个很棘手的事。

思考了下,有 2 种方案:

①、实时监控 hdd.sh 文件的出现,一出现就立即用 sed 干掉 tar 进程监控那一段代码;

②、固定 hdd.sh,让其无法删除和替换,然后删除 tar 监控代码;

进一步思考发现,方案①不可行,先不说这实时监控会占资源,就是如何在执行之前把内容给修改了,都是一个头疼的问题,毕竟 shell 都是写入内存再执行代码的。等你删除 tar 监控代码了,对执行也没任何影响。

于是准备实施方案②。

四、实施

1、修改 hdd.sh,屏蔽 tar 报警消息:

2、锁定 hdd.sh,让监控端无法替换或删除

①、如何让 suxirong 家目录下面的 hdd.sh 文件,无法修改和替换,首先想到的就是去掉所有权及写入权限:

结果,切换到 suxirong 账号,居然还是可以删除或替换。。。

②、突然想起 Linux 还有一个-i 的文件属性可以锁定文件不被修改,于是执行如下语句:

用 suxirong 账号试下效果:

Linux下巧用chattr、watch命令的实例

所有者是 suxirong,也有可写权限,可就是无法修改,有种偷笑的赶脚:

好了,目的达到,现在就算是 root 都无法修改了!具体效果只要等明天日志压缩计划任务运行的时候就知道了。

五、写在最后

其实,chattr 和 lsattr 在三叶运维早期文章:Linux 基础知识之文件隐藏属性 一文中就已经提到过。这次主要分享一下我在工作中正好用到 chattr 的实例,另外就是利用 watch 命令持续间隔执行某脚本的方法,特殊场景使用会有奇效,完毕!

赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@3yyy.top。文章观点不代表本站立场。本站原创内容未经允许不得转载:idsan笔记 » Linux下巧用chattr、watch命令的实例
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏