我用root用户登录,删除一个普通的文件,怎么删也删不了。最后用lsattr命令查看,原来是被保护了。lsattr查看一个文件
1. chattr权限简介
chattr - change file attributes on a Linux file system.
也就是说chattr命令的作用是改变linux文件系统中指定的文件的属性。
chatrr权限是一种非常特殊的权限,它设置的属性对超级用户root也有效。只不过,它设置的属性也可以通过root来删除。
归根结底,chattr的作用是防止用户(包括root)对文件或目录进行误操作(比如修改或删除)的一种保险手段。
2. chattr命令格式
chattr [+-=][选项] 文件或目录名
-
+:增加权限(属性)
-
-:删除权限(属性)
-
= :设置权限(属性)
- 1
a :设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性。
i :它可以让一个文件不能被删除、改名,设置连接也无法写入或添加数据。只有root才能设置这个属性。
问题,已经去掉了某个文件的i属性和a属性,为什么还是不能删除???
原因在于该文件的所在目录的属性也要去掉。
- 如果去掉文件或目录的隐藏属性之后还是不能删除,那么查看父目录是否配置了不可删除的隐藏属性,若父目录有配置,文件也是不能删除的,需要逐级往上查看。
查看文件的系统属性
命令格式:lsattr [选项] 文件名
-
[root@localhost tmp] # lsattr a.txt
-
----i------- -e- a.txt
-
可以发现,小写字母i表示该文件被设置了i属性
如果您想给一个文件多加点保护,可以使用命令:chattr +i filename