不可改变位权限chattr:该权限没有风险,但是他能限制root用户。
一、文件系统属性chattr权限
1、命令格式
[root@localhost ~ ] # chattr [+-=] [选项] 文件或目录名
选项
- +:增加权限。
- -:删除权限。
- =:等于某权限。(不常用)
- i:如果对文件设置
i
属性,那么不允许对文件进行删除、改名,也不能添加和修改数据(也就是文件不能做任何修改,相当于把文件加了一把锁,包括root在内都不行。);如果对目录设置i
属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。 - a:如果对文件设置
a
属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a
属性,那么只允许在目录中建立和修改文件,但是不允许删除。 - e:Linux中绝大多数的文件都默认拥有
e
属性。表示该文件是使用ext文件系统进行字储的,而且不能使用chattr -e
命令取消e
属性。
常用的就是i
和a
属性。
2、查看文件系统属性chattr权限
# 给abc文件加入i属性
[root@localhost ~ ] # chattr +i abc
#ll命令是查看不到任何结果的,这点比较不好。
[root@localhost ~ ] # ll abc
rw-r--r-.1 root root 0 2月 19 13:08 abc
如果需要查看chattr权限,需要用如下命令
[rootelocalhost ~ ] # chattr 选项 文件名
选项:
- -a:显示所有文件和目录。
- -d:若目标是目录,仅列出目录本身的属性,而不是子文件的。
[root@localhost ~ ] # chattr abc
----i--------e- abc
注意 带
~
表示临时文件,和windows系统的word的临时文件差不多一个意思。直接rm
删除就可以了。
3、举例
- 例1:给文件赋予chattr 权限的
i
属性。
#建立测试文件,给文件赋予i属性
[root@localhost ~ ] # touch ftest
[root@localhost ~ ] # chattr +i ftest
#赋予i属性后,root也不能删除
[root@localhost ~ ] # rm -rf ftest
rm:无法删除"ftest":不允许的操作
#也不能修改文件的数据
[root@localhost ~ ] # echo 111 >> ftest
-bash:ftest:权限不够
- 例2:给目录赋予chattr 权限的
i
属性。
#建立测试目录给
[root@localhost ~ ] # mkdir dtest
#再建立一个测试文件abc
[root@localhost dtest] # touch dtest/abc
#给目录赋予i属性
[root@localhost ~ ] # chattr +i dtest/
#dtest目录不能新建文件
[root@localhost ~ ] # cd dtest/
[root@localhost dtest] # touch bcd
touch:无法创建"bcd":权限不够
#但是可以修改文件内容
[root@localhost dtest] # echo 1111 >> abc
[root@localhost dtest] # cat abc
1111
#不能删除目录内文件
[root@localhost dtest] # rm -rf abc
rm:无法删除"abc":权限不够
- 例3:测试chattr 权限的
a
属性。
#给abc文件赋予a属性
[root@localhost ~ ] # chattr +a abc
#向abc文件中追加内容
#注意一定不能用vim编辑器,用vim编辑器编辑内容不能保存。
[root@localhost ~ ] # echo aaaaaaaaaaaaaaaaaaaaaa >> abc
[root@localhost ~ ]# cat abc
aaaaaaaaaaaaaaaaaaaaaa
#可以复制文件和新建文件到指定目录
[root@localhost ~ ] # cp /var/log/messages /back/log/
#但是不允许删除文件
[root@localhost ~ ] # rm -rf abc
rm:无法删除"/back/1og/messages":不允许的操作