chattr 设置文件的隐藏属性
命令解释
这个命令也很重要,经常用到系统数据安全上。不过要注意的是,这个命令只对Ext2/Ext3
的文件系统上生效,其他的文件系统可能就无法支持这个命令了。
命令说明
[root@localhost ~]# chattr [+-=][ASacdisu] 文件或目录名称
参数:
+ : 增加某一个特殊参数,其他原本存在的参数不动。
- : 删除某一个特殊参数,其他原本存在的参数不懂。
= : 仅保留当前后面接的参数。
A : 当设置了 A 属性后,你访问文件或目录时,该文件的 atime(访问时间)不会被修改。
S : 一般文件是异步写入磁盘的,加上该参数后,当你修改此文件时,会“同步”写入磁盘。
a : 这个文件只可以进行增加操作,不能删除也不能修改,只有root才可以设置这个属性。[常用]
c : 将会将文件自动压缩,读取的时候再自动解压。但是在存储的时候,会先压缩然后再存储。
d : 当 dump 程序执行时,设置该属性后,可使文件或目录不会被 dump 备份。
i : 将一个文件“不能被删除、改名,设置连接也无法写入或添加数据”,只有root才可以设置这个属性。[常用]
s : 如果这个文件被删除,它将会完全从硬盘中删除。
u : 与 s 属性相反,如果这个文件被删除,数据内容还存在磁盘中,可以找回。
命令举例
[root@localhost tmp]# touch attrtest
[root@localhost tmp]# chattr +i attrtest <== 赋予 i 的权限
[root@localhost tmp]# rm attrtest
rm:是否删除有写保护的 一般空文件 “attrtest”? y
rm: 无法删除 “attrtest”: 不允许的操作
### 即使是root超级管理员也无法删除
[root@localhost tmp]# chattr -i attrtest
### 将文件的 i 权限取消后,成功删除。
lsattr 显示文件隐藏属性
命令说明
[root@localhost ~]# lsattr [-adR] 文件或目录
参数:
-a : 将隐藏文件的属性也列出来。
-d : 如果接的是目录,仅列出目录本身的属性。
-R : 连同子目录的数据也一并列出来。
命令举例
[root@localhost tmp]# mkdir test
[root@localhost tmp]# lsattr -d test
----ia---j--- test