说明:在网上会看到一些经常误删重要文件的操作,如果大家不怕麻烦就采用下面这种方式来处理文件吧。
1、本文主要讲解的的是chattr和lsattr两个命令的使用。
在Linux系统中文件可不止只有rwx三种权限,使用lsattr命令可以显示出文件的隐藏属性,如下图所示:
其中----ia----------代表就是文件的隐藏属性,lsattr命令后面也可以跟参数,如下所示:
-a :将影藏属性也显示出来
-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名
-R :连同子目录的数据也一同列出
隐藏属性怎么是设置呢?就需要用到了chattr命令,命令格式如下:
chattr [+-=] [AacdiSstu] 文件或目录
参数:
+ :增加一项隐藏属性参数,类似于chmod命令的"+";
- : 删除一项隐藏属性参数,类似于chmod命令的"-";
= : 仅有等号后面列举的参数。
A:设置了A这个属性时,此文件(或目录)的访问时间atime将不会被修改。可避免I/O较慢的机器过度访问磁盘。
a : 设置a之后,这个文件将只能增加数据,不能删除或修改其中的数据,只有root才能设置这个属性。
c : 这个属性设置之后,将会自动将此文件压缩,在读取的时候会自动解压缩,但是在存储的时候,将会先进行压缩后再存储。
d : 当dump程序被执行的时候,设置d属性将可使该文件(或目录)不会被dump备份。
i : 它可以让一个文件不能被删除、改名,设置连接也无法写入或添加数据。只有root才能设置这个属性。
S: 一般文件是异步格式写入磁盘的,如果加上S这个属性时,对文件进行任何修改,将会“同步”写入磁盘中。
s : 当文件设置了s属性时,如果这个文件被删除,它将会被完全从这个硬盘空间中删除。
t : 具有't'属性的文件在与其他文件合并的文件末尾不会有部分块片段(对于那些支持尾部合并的文件系统)。
u : 与s相反,当使用u来配置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中。
实例图:
实例中,首先查看/etc/passwd文件的隐藏属性,发现并没有任何隐藏属性;然后就使用chattr命令对/etc/passwd文件加上隐藏属性a和i,意思是即使是root用户,也不能对这个文件进行删除、更名、修改其中的数据等操作。
如果事后想修改或删除具有隐藏属性的文件,那么在chattr命令中使用"-"运算符就可以办到,如下如所示:
这下就可以删除没有隐藏属性的文件了(由于/etc/passwd是系统重要文件,就不演示删除过程了)。
还有重要的一点是,如果一个文件夹具有隐藏属性,例如文件夹/home具有隐藏属性"ai",那么它目录里面的文件都不可进行删除或者更改等。所以如果碰到无法删除或者更改的文件(或目录),可以查看一下它的父目录是不是具有隐藏属性,以便我们可以更好地对文件进行操作。