Linux 系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏 起来的权限,默认情况下不能直接被用户发觉。
隐藏权限的专用设 置命令是chattr,专用查看命令是lsattr。
1.chattr
用于设置文件的隐藏权限,如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把 某个隐藏功能移出文件,则需要追加“-参数”
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新 建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用零块填充原文件所在的硬盘区域)
A 不再修改这个文件或目录的最后访问时间(Atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
x 可以直接访问压缩文件中的内容
添加a属性,文件就不能删除了
[root@localhost ~]# echo "test" > trick.txt
[root@localhost ~]# chattr +a trick.txt
[root@localhost ~]# rm trick.txt
rm: remove regular file 'trick.txt'? y
rm: cannot remove 'trick.txt': Operation not permitted
2.lsattr
用于查看文件的隐藏权限,ls命令查看不了隐藏属性。
使用lsattr 命令后,文件上被赋予的隐藏权限马上就会原形毕露:
[root@localhost ~]# lsattr trick.txt
-----a------------ trick.txt
[root@localhost ~]#
此时按照显示的隐藏权限的类型(字母),使用chattr命令将其去掉:
[root@localhost ~]# chattr -a trick.txt
[root@localhost ~]# lsattr trick.txt
------------------ trick.txt
[root@localhost ~]#
一般会将-a参数设置到日志文件(/var/log/messages)上,这样可在不影响系统正常 写入日志的前提下,防止黑客擦除自己的作案证据。如果希望彻底地保护某个文件,不允许 任何人修改和删除它的话,不妨加上-i参数试试,效果特别好。