解决linux中root也删除不了文件的问题
一、概述
一般来说,root具有系统的最高权限,没有它删除不了的文件。但你也别不服,有些时候还真有他删除不了,不信请看下图:
为什么这个文件连root账户也删除不了?
原因是:文件被上锁了!
在linux文件系统中,除了我们常说的文件(目录)的“读r、写w、执行x”权限外,还有专门给root用户的“锁”权限,而且这个“锁”权限更厉害,一旦文件(目录)被上锁,只能“解锁”后才能执行正常的操作文件(如删除,重命令等)。如下图:
针对文件系统,有些只有root才能使用的属性,如:chattr, lsattr等。
二、如何对文件(目录)加锁或解锁?
注:加锁是一种“通俗”的说法,准确的说法是设置文件(目录)的属性。
2.1 查看文件是否被加锁
lsattr 命令
lsattr 文件或目录名称
lsattr 与 ls命令相似,使用方法如下图:
2.1 文件锁属性修改
chattr命令语法:
chattr [+-=] [属性] 文件或目录名称
属性解释:
属性选项功能i如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;
如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件;a如果对文件设置 a 属性,那么只能在文件中増加数据,但是不能删除和修改数据;
如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件;u设置此属性的文件或目录,在删除时,其内容会被保存,以保证后期能够恢复,常用来防止意外删除文件或目录。s和 u 相反,删除文件或目录时,会被彻底删除(直接从硬盘上删除,然后用 0 填充所占用的区域),不可恢复。
总结:如果设置文件或目录属性为 i,即便是 root 用户,也无法删除和修改数据。