首页 > 其他分享 >rm -rf dir删除不了的几种情况

rm -rf dir删除不了的几种情况

时间:2024-01-10 17:23:51浏览次数:32  
标签:文件 删除 浩道 rf Linux rm 目录 dir

我勒个去!root用户通过rm -rf 竟无法删除文件了!

原创 浩道 浩道Linux 2024-01-09 07:50 发表于广东 图片关注上方浩道Linux,回复资料,即可获取海量Linux、Python网络通信、网络安全等学习资料!

前言

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

 

浩道Linux 浩道,专注工作与实践的一名IT民工。本号主要分享linux,python,网络通信、安全等相关IT干货。相聚在此,通过分享知识与经验,一起成长。 195篇原创内容 公众号

 

最近在浩道的学习交流群中,有小伙伴反馈自己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 +<attribute> <file or directory>关闭文件或目录的某个属性:chattr -<attribute> <file or directory>指定文件或目录的某个属性:chattr =<attribute> <file or directory>查看文件或目录的属性:lsattr <file or directory>其中,<attribute>是具体的属性,如a、b、c、d、i等。
以下是一些常用的属性及其含义:
a:让文件或目录仅供附加用途,即只能向文件添加数据,不能删除数据。b:不更新文件或目录的最后存取时间。c:将文件或目录压缩后存放。d:将文件或目录排除在倾倒操作之外。i:不得任意更动文件或目录,即不能修改、删除、重命名该文件或目录。s:保密性删除文件或目录,即从磁盘上删除,然后用0填充文件所在区域。S:即时更新文件或目录,即一旦对文件进行了修改,就立即将修改结果写回磁盘。u:预防意外删除,即当一个应用程序请求删除该文件时,系统会保留其数据块以便以后能够恢复删除的文件。

如下所示:

图片

三、总结

 

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

 

更多精彩

关注公众号浩道Linux

浩道Linux,专注于Linux系统的相关知识、网络通信网络安全Python相关知识以及涵盖IT行业相关技能的学习,理论与实战结合,真正让你在学习工作中真正去用到所学。同时也会分享一些面试经验,助你找到高薪offer,让我们一起去学习,一起去进步,一起去涨薪!期待您的加入~~~关注回复“资料”可免费获取学习资料(含有电子书籍、视频等)。

 

浩道Linux 浩道,专注工作与实践的一名IT民工。本号主要分享linux,python,网络通信、安全等相关IT干货。相聚在此,通过分享知识与经验,一起成长。 195篇原创内容 公众号

喜欢的话,记得点“赞”“在看”图片

浩道

 创作不易,渴望一键三连。 

赞赏二维码喜欢作者

linux学习331 linux学习 · 目录 上一篇想要在领导面前露一手Linux命令,掌握这些够用了! 个人观点,仅供参考 阅读 429 浩道Linux   ​   喜欢此内容的人还喜欢   Linux用户家目录如何设置,不显示特殊文件(带.的文件及文件夹)??     小杜的生信筆記 不看的原因   磁盘数据恢复:rm -rf 误删数据,数据恢复教程     运维贼船 不看的原因   Linux最常用的几个归档和压缩命令     我们编程吧 不看的原因   写下你的留言 2条留言
  •   太明   内蒙古昨天     什么鬼     浩道Linux   (作者)昨天     诡异事件了[捂脸]  
已无更多数据           复制搜一搜分享收藏划线    

人划线

标签:文件,删除,浩道,rf,Linux,rm,目录,dir
From: https://www.cnblogs.com/cherishthepresent/p/17956932

相关文章

  • Code Formula 2014 本選 F 100個の円
    CodeFormula2014本選F100個の円思路分析在一个\(1500\times1500\)的矩阵中,要你填入\(r=1,2,3\dots100\)的\(100\)个圆。求一种合法的填入方式使填入的圆可以相切但不能重叠。我们发现,\(1500\times1500\)的矩阵范围远远大于最大的直径\(l=200\),所以我......
  • proteus8 单步调试stm32 外置arm gcc
    10年前proteus7的时代,51单片机就已经可以用keil和proteus联调了,单步调试,像连接了一个jtag调试口一样。proteus官方提供的keil调试器驱动有arm设备,不过我反复尝试,虽然识别到ProteusVSMSimulator设备和端口,但是还是报错,无法成功。本文只是借助proteus内置的编辑器和单步调试器,......
  • OpenHarmony社区运营报告(2023年12月)
     • 截至2023年12月22日,OpenAtom OpenHarmony(简称“OpenHarmony")社区累计超过6700名贡献者,产生26.9万多个PR,2.4万多个Star,6.7万多个Fork,59个SIG。• 2023年12月16日,以“技术创新,照见未来”为主题的首届开放原子开发者大会OpenHarmony分论坛在无锡隆重举行。作为开放原子......
  • 浏览器读取计算机文件信息 showDirectoryPicker
    效果图代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>选择电脑文件夹</title&g......
  • VSCode+PlatformIO开发环境搭建
    VSCode+PlatformIO开发环境搭建使用VSCode搭建platform开发环境,可以实现在vscode中搭建MCU等平台的嵌入式开发IDE,实现类似于IAR、Keil等功能,包括代码编辑、项目编译、程序烧录、调试等基础功能,同时可以使用Platform及VSCode的众多插件功能,从而提高开发效率,接下来时开发环境搭建的......
  • Gorm 入门介绍与基本使用
    Gorm入门介绍与基本使用目录Gorm入门介绍与基本使用一、ORM简介1.1什么是ORM1.2使用ORM的好处1.2.1避免直接操作SQL语句1.2.2提高代码的可维护性1.2.3跨数据库兼容性1.3使用ORM的缺点1.3.1学习成本1.3.2性能开销1.4ORM解析过程1.4.1模型定义1.4.2数据验证1.4.3映射......
  • .NET如何创建Dockerfile文件构建镜像?
    创建一个WebApi项目,并且创建一个Dockerfile空文件,添加以下代码,7.0代表的你项目使用的SDK的版本,构建的时候也需要选择好指定的镜像tagFROMmcr.microsoft.com/dotnet/aspnet:7.0ASbaseWORKDIR/appEXPOSE80EXPOSE443FROMmcr.microsoft.com/dotnet/sdk:7.0ASbuildARGB......
  • Elementui el-form表单中ref的用法
    在ElementUI的el-form组件中,ref是用来获取对该表单组件的引用的属性。通过给el-form添加ref属性,你可以在Vue组件中通过引用来访问和操作这个表单组件,而不需要通过DOM查询或其他方式。使用ref属性可以在Vue组件的JavaScript部分直接访问el-form的实例,从而可以......
  • 解决mac arm 中 goland 无法 debug 问题
    新电脑不知道装了什么,导致无法debug现象可以run,没有问题不能debug,报错信息如下单元测试报错^Cgotooltest2json:signal:interruptmain方法debug报错^Ccouldnotlaunchprocess:stubexitedwhilewaitingforconnection:signal:interrupt解决之路网上找遍......
  • Sermant重磅更新,1.3.0 release版本发布
    本文分享自华为云社区《新特性速览!Sermant重磅更新,1.3.0release版本发布》,作者:华为云开源。Sermant社区在12月份正式发布了1.3.0release版本,这次更新中,Sermant新增服务治理插件:消息队列禁止消费插件。该插件允许在微服务运行时动态地控制消费者(如Kafka、RocketMQ)的消费行为,实现......