前言
文件系统属性chatttr,通过 man chattr 命令可以返回的部分描述信息为:
chattr - 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性
注意:该属性对root也生效。 前面章节讲解的普通文件权限,ACL权限,SUID,SBIT权限等,均对root不生效。 该属性具有类似于权限的功能,attr属性的添加和移除都很容易,主要的目的还是避免超级用户误删除文件。
设置文件系统属性
命令语法:chattr [选项R] [+-=] [参数ia] [文件或目录名称]
选项: -R:递归设置attr属性
+:增加属性 -:删除属性 =:直接等于某属性
参数: i:如果对文件设置i属性,那么不允许对文件进行删除,修改内容,重命名等操作;如果对目录设置i属性,那么只能修改目录下文件的内容,但不允许新建、删除和重命名操作。 a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能修改原本的数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件或目录,但不允许删除和重命名操作。
i属性类似于锁定所有档案,只能查看,不允许其他任何改动。(更严格) a属性类似于封存所有档案,只能增加和查看,不能删除和减少。
## 范例
chattr +i libai.txt ## 增加libai.txt文件具有attr的i属性
chattr -a tang ## 移除tang目录具有attr的a属性
chattr +ia song ## 增加song目录具有attr的i属性和a属性
chattr =a song ## 设置目录的attr属性为a
chattr -R +i qing ## 递归增加qing目录及其子文件和子目录的attr的i属性
查看文件系统属性
命令语法:lsattr [选项ad] [文件名]
-a:显示所有文件和目录的attr属性
-d:列出目标本身的属性,而不是子文件或子目录
## 范例
[root@localhost gmd]# lsattr ## 查看当前目录下文件和目录的attr属性
----i----------- libai.txt
[root@localhost gmd]# lsattr libai.txt ## 查看libai.txt文件的attr属性
----i----------- libai.txt
[root@localhost home]# lsattr -a ## 查看当前目录的全部子文件或目录权限
[root@localhost home]# lsattr -a tang ## 查看tang目录的全部子文件或目录的attr属性
-----a---------- /home/tang/. ## 本目录attr属性
---------------- /home/tang/.. ## 父目录attr属性
----i----------- /home/tang/libai.txt ## 子文件attr属性
[root@localhost home]# lsattr -d tang ## 打印tang目录本身的attr属性
-----a---------- tang