在进行Linux系统运维操作时,有的小伙伴可能会遇到某个文件不能改名、删除、设置连接、添加数据等特殊情况,即使切换到root用户下也都束手无策!真是急死人!是不是就真的没有办法对这一类文件进行修改了呢?其实不然,我们不妨查看一下这类文件的隐藏属性,用lsattr命令就可以查看是不是这类文件被添加了隐藏属性。
大家注意到没,与之前rwx类的权限非常不一样,正是属性里面的i和A属性使我们对这个test文件束手无策!那我们是不是没有办法改变这个现状呢?作为一名运维工程师,如果连一个文件都不能正常操作,那么未免也太失败!今天极客君就顺便科普一下lsattr和chattr这对非常有用的命令。
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 连同子目录的数据也一起列出来
chattr只在ext2、ext3、ext4文件系统上生效,这一点需要注意一下!