实战:创建一个让 root 都无法删除的文件(chattr、lsattr命令)
7.3 实战:创建一个让 root 都无法删除的文件
问:发现 Windows 中有文件删除不了,怎么办?
答:使用 360 强制删除,粉碎文件。
那么在 Linux 下有文件删除不了怎么办?
例 1.17:模拟 Linux 下删除不了的文件。
[root@xuegod63 ~]# touch hack.sh aa.sh #创建 hack.sh 和 aa.sh 做测试。
[root@xuegod63 ~]# ll hack.sh aa.sh #使用长格式查看文件属性 。
-rw-r--r-- 1 root root 0 May 24 21:29 aa.sh
-rw-r--r-- 1 root root 0 May 24 21:29 hack.sh
[root@xuegod63 ~]# rm -rf aa.sh #删除 aa.sh,可以正常删除。
1. 黑客使用 Xshell 悄悄执行在后台添加 attr 扩展属性:
[root@xuegod63 ~]# chattr +i hack.sh #加入 i 属性。
2. 删除文件:
[root@xuegod63 ~]# rm -rf hack.sh #发现删除不了。
从 REHL6 开始,新增加文件系统扩展属性:
命令:chattr,用于添加文件的隐藏权限
命令使用格式:chattr [权限参数] 文件名称
参数: a 只能追加内容;i 不能被修改。
(1) +a:+a 表示赋予 a 的权限属性,只能追加内容 如: echo aaa >> hack.sh。
(2) +i:+i 表示赋予 i 的权限属性,即 Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
(3) -i:+i 表示赋予 i 的权限属性,移除 i 参数。
(4) -a:+a 表示赋予 a 的权限属性,移除 a 参数。
3. 解决:
[root@xuegod63 ~]# lsattr hack.sh #使用 lsattr 查看 hack.sh 文件相关属性。
----i----------- hack.sh
[root@xuegod63 ~]# chattr -i hack.sh #使用 chattr 去掉 hack.sh 的 i 属性。
[root@xuegod63 ~]# echo aa >> hack.sh #可以正常写入文件。
[root@xuegod63 ~]# lsattr hack.sh #查看扩展属性,没有属性所在。
---------------- hack.sh
[root@xuegod63 ~]# chattr +a hack.sh #给 hack.sh 文件加入 a 属性。
[root@xuegod63 ~]# rm -rf hack.sh #无法正常删除文件。
rm: 无法删除"hack.sh": 不允许的操作
[root@xuegod63 ~]# echo aaa >> hack.sh #可以正常写入内容。