chattr命令来自于英文词组“change attribute”的缩写,其功能是用于更改文件隐藏属性。常用的ls命令仅能够查看到文件的一般权限、特殊权限、SELinux安全上下文与是否有FACL访问控制列表等情况,但却无法查看到文件隐藏属性,所以有些运维人员甚至不清楚竟然还有第五种文件权限!~
语法格式:chattr 参数 文件
实用参数:
-R |
递归处理目录下的所有文件 |
-v |
设置文件或目录版本 |
-V |
显示指令执行过程 |
+ |
开启文件或目录的该项属性 |
-- |
关闭文件或目录的该项属性 |
= |
指定文件或目录的该项属性 |
权限 |
作用 |
i |
无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 |
a |
仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) |
S |
文件内容在变更后立即同步到硬盘(sync) |
s |
彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) |
A |
不再修改这个文件或目录的最后访问时间(atime) |
b |
不再修改文件或目录的存取时间 |
D |
检查压缩文件中的错误 |
d |
使用dump命令备份时忽略本文件/目录 |
c |
默认将文件或目录进行压缩 |
u |
当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t |
让文件系统支持尾部合并(tail-merging) |
x |
可以直接访问压缩文件中的内容 |
参考实例
给指定文件添加隐藏属性:
[root@linuxcool ~]# chattr +i anaconda-ks.cfg
从指定文件移除隐藏属性:
[root@linuxcool ~]# chattr -i anaconda-ks.cfg
给指定目录添加隐藏属性,递归操作:
[root@linuxcool ~]# chattr -R +i /root
从指定目录移除隐藏属性,递归操作:
[root@linuxcool ~]# chattr -R -i /root