Linux中文件/目录常见的属性的所属者、所属组、创建时间和最新修改时间等外,还存在些隐藏属性,这些隐藏属性在保护系统文件的安全性上非常重要。
Linux使用lsattr和chattr两个命令查看和修改文件/目录的特殊属性。
接下让我们详细的学习lsattr和chattr的使用方法。
1.chattr
chattr的作用是修改文件/目录的特殊属性。
具体命令如下:
chattr [+|-|=] 属性标示符 命令参数 文件/目录
常用命令参数如下:
-R:递归处理,将指令目录下的所有文件及子目录一并处理;
-V:显示指令执行过程;
+<属性标示符>:开启文件或目录的该项属性;
-<属性标示符>:关闭文件或目录的该项属性;
=<属性标示符>:指定文件或目录的该项属性。
常用属性标示符:
a:让文件或目录仅供附加用途;
A:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。
执行权限:chattr必须以root权限才能执行,如果是普通用户想执行chattr时,需要在命令前加sudo命令来提升权限为root权限。
案例演示1:
为文件testFile设置为不得任意更动,具体使用如下命令:
sudo chattr +i testFile
将文件testFile设置为i隐藏属性后,试图删除,可以看到无法对其进行删除操作。
案例演示2:
将目录testDir以及目录下所有内容一并设置为不得任意更动,具体使用如下命令:
sudo chattr +i -R testDir
试图删除testDir目录下的file1文件,可以看到无法删除。
案例演示3:
将testFile文件的i属性取消,具体使用如下命令:
sudo chattr -i testFile
可以看到删除i属性后,既可以删除该文件。
2.lsattr
lsattr的作用查看文件/目录的特殊属性设置情况。
具体命令如下:
lsattr 命令参数 文件/目录
常用参数如下:
-R:递归的操作方式;
-V:显示指令的版本信息;
-a:列出目录中的所有文件,包括隐藏文件。
案例演示1:
查看目录testDir下所有内容的特殊属性,具体使用如下命令:
lsattr -Ra testFile
3.例题
为系统已存在文件/root/oldFile1添加i属性;
查看系统已存在文件/root/oldFile2的特殊属性;
为系统已存在文化/root/oldFile3取消i属性。
chattr +i /root/oldFile1
lsattr /root/oldFile2
chattr -i /root/oldFile3