管理 Linux 系统中的文件和目录,除了可以设定普通权限和特殊权限外,还可以利用文件和目录具有的一些隐藏属性。
chattr 命令,专门用来修改文件或目录的隐藏属性,只有 root 用户可以使用。该命令的基本格式为:
[root@localhost ~]# chattr [+-=] [属性] 文件或目录名+ 表示给文件或目录添加属性,- 表示移除文件或目录拥有的某些属性,= 表示给文件或目录设定一些属性。
表 1 列出了常用的一些属性及功能。
属性选项 | 功能 |
---|---|
i | 如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据; 如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件; |
a | 如果对文件设置 a 属性,那么只能在文件中増加数据,但是不能删除和修改数据; 如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件; |
u | 设置此属性的文件或目录,在删除时,其内容会被保存,以保证后期能够恢复,常用来防止意外删除文件或目录。 |
s | 和 u 相反,删除文件或目录时,会被彻底删除(直接从硬盘上删除,然后用 0 填充所占用的区域),不可恢复。 |
语法:chattr [-RVf] [-+=AacDdeijsSu] [-v version] files
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 在原有参数的基础上,追加参数。
-<属性> 在原有参数的基础上,移除参数。
=<属性> 更新为指定参数设定。
属性模式:
1、A 即Atime,告诉系统不要修改对这个文件的最后访问时间
2、a 即Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件
3、b:不更新文件或目录的最后存取时间
4、c 即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作
5、D 检查压缩文件中的错误
6、d 当dump程序执行时,该文件或目录不会被dump备份
7、i 即Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件
8、j 即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效
9、s 彻底删除文件,不可恢复,因为是从磁盘上删除。
10、S:即Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
11、u 当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件,用来防止意外删除文件或目录.和s相反
实例:
1、用chattr命令防止系统中某个关键文件被修改
chattr +i /etc/resolv.conf lsattr /etc/resolv.conf # 查看权限
2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件
chattr +a /var/log/messages
转载请注明:夜阑小雨 » Linux chattr命令详解:修改文件系统的权限属性