在通常情况下,linux下文件具有的属性都是读写和执行,但是这些属性属于高层次的文件属性,它和具体的文件文件系统无关。在文件系统这一层,文件同样也 具有很多属性,chattr和lsattr指令就是设置和查看基于ext2/ext3文件系统的底 层属性。
这些权限对于一些具有特殊要求的文件很有帮助,比如服务器日志或者某个比较 重要的文件。通过chattr命令设置的文件或目录,即使在root权限下也不能直接 删除,只有去除其隐藏权限才能进行操作。下面是chattr命令和lsattr命令的简 介。
1 chattr:设置文件的底层属性
语法格式:chattr [option] [file]
option:
+:在原有参数的基础上,追加参数
-:在原有参数基础上,移除参数
=:更新为指定参数
-a:设定只能想文件中添加数据,而不能删除。
-i:设定后,不能对文件进行删除写入改名等等操作
-R:递归处理
-V:显示执行过程
注意:设定这些参数,必须在root权限下。
1.1 实例1:设定i参数,使得在root权限下无法直接删除
~$ touch test
~$ sudo chattr +i test
~$ lsattr test
----i--------e- test
~$ sudo rm test
[sudo] password for hic:
rm: 无法删除"test": 不允许的操作
1.2 实例2:设定a参数,使得只能向文件中添加内容
~# chattr +a test
~# man lsattr > test
bash: test: 不允许的操作
~# man chattr >> test
2 lsattr:显示文件的底层属性
语法格式:lsattr [option] [file]
option:
-a:显示所有文件属性
-d:仅显示目录属性
-R:递归显示
~$ lsattr -a test
----i--------e- test