龙空技术网

奇怪事?Linux中竟然有root用户都无法删除的文件?

六胡七弦 90

前言:

现时各位老铁们对“某些文件删除不掉”大约比较看重,同学们都需要了解一些“某些文件删除不掉”的相关知识。那么小编也在网摘上收集了一些对于“某些文件删除不掉””的相关资讯,希望小伙伴们能喜欢,你们一起来了解一下吧!

今天正在写文档的时候,突然微信上测试同事找我说测试环境Centos系统上的文件删除不掉,我的第一感觉是用户没有权限,回复说用root用户去删除试试,但测试的同事很快回复说就是使用的root用户,这引起了我的好奇,同时发的报错截图如下:

看这报错信息的确提示的是没有权限,同时测试同事确认用户的图片也发了过来,如下:

这看着是root用户这没有问题,到这里我暂时也没有头绪,回复测试同事说我登上去看下找下原因。

登录上去查看文件的权限以及所属用户和组正常没有啥特殊的,如下:

突然想起这个文件是不是被人为设置了隐藏的权限,就不能使用ls命令进行查看权限了,得使用

lsattr命令来查看。

这还真是设置了隐藏的权限,这是解释下这个隐藏的 “i”的作用.

chattr命令和lsattr命令是一对命令,一个用户设置隐藏权限,一个用来取消隐藏权限。

chattr命令

作用:设置文件的隐藏属性

常用语法:chattr [+-=][ASacdis] 文件名或目录名

选项说明:

+ :增加一个特殊参数,在原有的参数上继续增加;- :移除一个特殊参数,只移除当前参数,其他参数不变;= :设定特殊参数,且文件仅有后面设定的参数;A :存在A 这个属性时,这个文件(或目录)的存取时间 atime (access) 将不可被修改;S :文件内容被修改时,将数据同步写入磁盘当中;a :当设定 a 之后,这个档案将只能增加数据,而不能删除,只有 root 才能设定这个属性;c :这个属性设定之后,将会自动的将此文件进行压缩,在读取的时候将会自动解压缩;d :当dump(备份)程序被执行的时候,设定 d 属性将可使该文件(或目录)不具有dump功能;i :设定i属性后,这个文件不能被删除、重命名、修改内容等操作,root用户也没办法完成这些操作;s :当文件设定了 s 参数时,执行删除命令后将不能再恢复;

lsattr命令

作用:查看文件的隐藏属性

语法:lsattr [操作选项]lsattr [操作选项] 文件名

选项说明:

-a :显示所有文件和目录;-d :显示当前目录的权限,不显示目录中的子文件;-R :递归处理,将指定目录下的所有文件及子目录一并处理;-v :显示文件或目录版本;-V :显示版本信息。

可以看到oracle_install_2024-03-26-14-56-18.log有一个 i 隐藏属性,具备该属性后,即便是root用户也对其没有一点办法操作,解决办法是root用户使用chattr命令将i属性移除再删除:

标签: #某些文件删除不掉