电子说
前言
大家好,这里是浩道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无法删除相关文件的异常现象,虽然最终没有定位到具体原因,但是也给大家罗列分析了一些原因,也让大家长长见识。如果大家还有其他经验分享,欢迎评论区分享喔!
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !