这些神奇的Linux文件隐藏属性,你知道吗?-文件属性

在进行Linux系统运维操作时,有的小伙伴可能会遇到某个文件不能改名、删除、设置连接、添加数据等特殊情况,即使切换到root用户下也都束手无策!真是急死人!是不是就真的没有办法对这一类文件进行修改了呢?其实不然,我们不妨查看一下这类文件的隐藏属性,用lsattr命令就可以查看是不是这类文件被添加了隐藏属性。

这些神奇的Linux文件隐藏属性,你知道吗?

大家注意到没,与之前rwx类的权限非常不一样,正是属性里面的i和A属性使我们对这个test文件束手无策!那我们是不是没有办法改变这个现状呢?作为一名运维工程师,如果连一个文件都不能正常操作,那么未免也太失败!今天极客君就顺便科普一下lsattr和chattr这对非常有用的命令。

这些神奇的Linux文件隐藏属性,你知道吗?

chattr属性中可以使用的不同选项 :

  • -R 递归地修改文件夹和子文件夹的属性

  • -V chattr命令会输出带有版本信息的冗余信息

  • -f 忽略大部分错误信息

在chattr中用于设置或者取消属性的操作符:

  • '+' 符号用来为文件和文件夹设置属性

  • '-' 符号用来移除或者取消属性

  • '=' 使它们成为文件有的唯一属性

属性

描述

a (append)

只允许在文件中进行追加操作,不能删减原文件内容,只有root用户拥有该属性的设置权限。

A

这个属性不允许更新文件的访问时间。

c (compressed)

启用这个属性时,文件在磁盘上会自动压缩,在读取的时候将会自动解压缩。存储时,先压缩再存储,对大文件非常有用!

d (dump)

不能使用dump命令备份文件。

D

设置了文件夹的D属性时,更改会在同步保存在磁盘上。

e (extent format)

它表明,该文件使用磁盘上的块的映射扩展。

i (immutable)

在文件上启用这个属性时,我们不能更改、重命名或者删除这个文件,只有root用户才有权限设置这个属性。

j (journaling)

设置了这个属性时,文件的数据首先保存在日志中,然后再写入文件。

S (synchronous)

设置了这个属性时,变更或更改同步保存到磁盘上。

lsattr命令用于显示文件的隐藏属性:

-a 将隐藏文件的属性秀出来

-d 如果连接的是目录,仅列出目录本身的属性而非目录内的文件名

-R 连同子目录的数据也一起列出来

这些神奇的Linux文件隐藏属性,你知道吗?

chattr只在ext2、ext3、ext4文件系统上生效,这一点需要注意一下!

推荐阅读