一 chattr命令格式
chattr [+-=] [选项] 文件或目录名
+:增加权限
-:删除权限
=:等于某权限
chattr选项包括:i和a
a等价于append
i等价于insert
i:如果对文件设置了i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;如果对目录设置了i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
a:如果对文件设置了a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置了a属性,那么只允许在目录中建立和修改文件,但是不允许删除。
注意:对root用户生效
二 lsattr命令格式
lsattr 选项 文件名
选项:
-a 显示所有文件和目录
-d 若目标是目录,仅列出目录本身的属性,而不是子文件的属性
三 实战
1、对文件设置i属性,不能对文件进行任何操作
[root@localhost 123]# touch abc
[root@localhost 123]# chattr +i abc
[root@localhost 123]# lsattr abc
----i----------- abc
[root@localhost 123]# vi abc
[root@localhost 123]# rm -rf abc
rm: cannot remove ‘abc’: Operation not permitted
2、对目录设置i属性,不能对目录就那些任何操作
[root@localhost lw]# chattr +i 123
[root@localhost lw]# lsattr -d 123
----i----------- 123
[root@localhost lw]# cd 123
[root@localhost 123]# touch bcd
touch: cannot touch ‘bcd’: Permission denied
[root@localhost 123]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 6 09:44 abc
-rw-r--r--. 1 root root 0 Aug 6 09:22 av
[root@localhost 123]# rm -rf abc
rm: cannot remove ‘abc’: Permission denied
[root@localhost 123]# mv abc dfd
mv: cannot move ‘abc’ to ‘dfd’: Permission denied
3、对文件设置了a属性,只能用输出重定向的方式向文件中追加数据,vi编辑器不能进行任何操作
[root@localhost ~]# mkdir ll
[root@localhost ~]# cd ll
[root@localhost ll]# touch dt
[root@localhost ll]# chattr +a dt
[root@localhost ll]# lsattr dt
-----a---------- dt
[root@localhost ll]# echo bbb >> dt
[root@localhost ll]# cat dt
bbb
4、对目录设置了a属性,
[root@localhost ~]# chattr +a ll
[root@localhost ~]# lsattr -d ll
-----a---------- ll
[root@localhost ~]# cd ll
[root@localhost ll]# touch ff
[root@localhost ll]# rm -rf dt
rm: cannot remove ‘dt’: Operation not permitted