root用户rm -rf无法删除相关文件的原因分析

电子说

1.3w人已加入

描述

前言

大家好,这里是浩道Linux,主要给大家分享Linux、Python、网络通信、网络安全等相关的IT知识平台。

最近在浩道的学习交流群中,有小伙伴反馈自己Linux服务器上无法通过rm -rf命令来删除某个文件,一时间引起大家的讨论。今天浩道跟大家分析无法删除的原因有哪些,也让大家长长见识。

服务器

通过截图看出,提示信息“Operation not permitted”很明显了,表示不允许操作。

一、诡异现象原因分析

那有哪些原因会导致root用户无法通过rm -rf命令删除文件呢?一起分析看看!

(一)权限问题:文件或目录的权限设置不允许当前用户进行操作。

这个可以排除,通过root用户执行删除命令,并且对应的文件也有对应权限。

(二)文件或目录被其他进程锁定或正在使用中: 如果目录dnfswap中的某个文件或子目录正在被使用,那么rm -rf命令可能无法删除它们。

这个通过lsof dnfswap命令也排除了dnfswap被占用的问题。

(三)文件或目录具有特殊属性: 在Linux系统中,每个文件和目录都有一些特殊的属性,这些属性由扩展的文件系统属性(extended filesystem attributes)或访问控制列表(Access Control Lists)等机制管理。如果文件或目录具有某些特殊属性,可能会导致rm -rf命令无法删除它们。

这个其实通过lsattr dnfswap命令查看到并未有特殊属性的地方。

当结合上述分析的原因都排除了,我想亲自登录上服务器去看看,但是诡异的事情发生了,啥都没操作,我居然可以删除成功了!!!

服务器

这个就变成无厘头事件了,真的啥都没做,就删除成功了,不知道朋友们对这一个诡异事件有什么看法!欢迎评论区留言大家探讨!

今天既然针对这个rm -rf命令无法删除文件做了讨论,下面也给大家罗列几个具体实例,看看怎么实现不让root用户删除文件或文件夹的!

二、列举具体案例

(一)文件权限问题引起

这个一般可以针对普通用户做相应的权限限制实现,这里不列举说明。

(二)文件或目录被其他进程锁定或正在使用中

这里通过磁盘挂载目录来验证,当一个磁盘挂载目录被占用时,此时是不能通过rm -rf进行删除相关目录的。如下所示:

服务器

(三)文件或目录具有特殊属性

这里可以通过chattr命令在Linux下用于改变文件属性。这些属性提供了对文件的额外控制,包括是否可以删除文件、是否可以修改文件等。

以下是chattr命令的一些用法和选项:

开启文件或目录的某个属性:chattr + 
关闭文件或目录的某个属性:chattr - 
指定文件或目录的某个属性:chattr = 
查看文件或目录的属性:lsattr 
其中,是具体的属性,如a、b、c、d、i等。


以下是一些常用的属性及其含义:


a:让文件或目录仅供附加用途,即只能向文件添加数据,不能删除数据。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录,即不能修改、删除、重命名该文件或目录。
s:保密性删除文件或目录,即从磁盘上删除,然后用0填充文件所在区域。
S:即时更新文件或目录,即一旦对文件进行了修改,就立即将修改结果写回磁盘。
u:预防意外删除,即当一个应用程序请求删除该文件时,系统会保留其数据块以便以后能够恢复删除的文件。

 

如下所示:

服务器

三、总结

本文针对群里小伙伴发现的root用户rm -rf无法删除相关文件的异常现象,虽然最终没有定位到具体原因,但是也给大家罗列分析了一些原因,也让大家长长见识。如果大家还有其他经验分享,欢迎评论区分享喔!

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分