在进行Linux系统运维操作时,有的小伙伴可能会遇到某个文件不能改名、删除、设置连接、添加数据等特殊情况,即使切换到root用户下也都束手无策!真是急死人!是不是就真的没有办法对这一类文件进行修改了呢?其实不然,我们不妨查看一下这类文件、目录的隐藏属性,用lsattr命令就可以查看是不是这类文件被添加了隐藏属性。
[root@Geeklp-NFS-Server ~]# rm -rf geeklp.txt
rm: 无法删除"geeklp.txt": 不允许的操作
[root@Geeklp-NFS-Server ~]# lsattr
---------------- ./anaconda-ks.cfg
---------------- ./ntfs-3g_ntfsprogs-2017.3.23.tgz
---------------- ./ntfs-3g_ntfsprogs-2017.3.23
----i----------- ./geeklp.txt
-----a---------- ./start.sh
大家注意到没,与之前rwx类的权限非常不一样,正是属性里面的i属性使我们对geeklp这个文件束手无策!那我们是不是没有办法改变这个现状呢?作为一名运维工程师,如果连一个文件都不能正常操作,那么未免也太失败!
chattr属性中可以使用的不同选项 :
-R 递归地修改文件夹和子文件夹的属性
-V chattr命令会输出带有版本信息的冗余信息
-f 忽略大部分错误信息
在chattr中用于设置或者取消属性的操作符:
'+' 符号用来为文件和文件夹设置属性
'-' 符号用来移除或者取消属性
'=' 使它们成为文件有的唯一属性
lsattr命令用于显示文件的隐藏属性:
-a 将隐藏文件的属性显示出来
-d 如果连接的是目录,仅列出目录本身的属性而非目录内的文件名
-R 连同子目录的数据也一起列出来
最后,更正一下,之前在其他媒体发文中提到:“chattr只在ext2、ext3、ext4文件系统上生效”,这句话有误,我现在使用的实验环境的文件系统为xfs,一样完美支持!