Linux 文件/文件夹无法删除问题解决方案
最近我们的服务器被黑客攻击,然后有些文件的属性被修改,导致我们无法删除病毒文件,同时采用 root 用户也无法删除,现在把解决方案记录下来。
普通删除
如果文件是当前用户的,那么使用 rm 命令就可以删除
rm -rf file.sh
如果无法删除,则尝试使用 root 用户删除,如果无法删除那么请看下面的说明。
需要了解的命令
如果普通的删除方式没有用,那么我们需要了解下面的命令来进行删除
lsattr
lsattr 命令用于显示文件的属性,使用方式如下
# 列出 file.sh 文件的属性
lsattr file.sh
# 列出当前目录下所有文件以及文件夹的属性
lsattr
属性说明
- i 属性设置之后可使文件不能被删除、改名,设置连接也无法写入或添加数据,只有 root 用户才能设置
- a 属性设置之后,文件只能增加数据,既不能删除也不能修改数据,只有 root 用户才能设置
- A 设置A属性后,若你访问此文件或目录时,它的访问时间 atime 不会被修改,可避免I/O较慢的机器过度访问磁盘。这对速度较慢的计算机有帮助。
- s 属性设置之后,如果文件被删除,将从硬盘彻底删除
- S 属性设置之后,文件将同步写入硬盘(一般为异步)
- u 属性设置之后,文件删除后数据内容还存在磁盘中,可以找回文件
- e 代表该文件为可执行文件
详细说明请参考:https://baike.baidu.com/item/chattr/9841067?fr=aladdin
chattr
chattr 用于修改文件属性,该命令请切换至 root 用户下使用,如果是 ubuntu 用户可在命令前加 sudo 进行修改
# 为 file.sh 文件增加 i 标识
chattr +i file.sh
# 为 file.sh 文件去除 i 标识
chattr -i file.sh
# 为 file.sh 增加 i, a 两个标识
chattr +ia file.sh
# 为 file.sh 文件移除 i, a 两个标识
chattr -ia file.sh
详细操作请参考: https://baike.baidu.com/item/chattr/9841067?fr=aladdin
实际操作
由上文中得知当文件设置 i 和 a 任意一个属性我们就无法对文件进行删除操作,那么我们首先移除 i, a 属性,然后执行删除:
# 移除 i, a 属性
chattr -ia file.sh
# 查看是否移除成功
lsattr file.sh
# 移除文件
rm -rf file.sh
如果文件还未删除成功,则我们需要考虑文件所属的文件夹是否设置了 i 或 a 属性(这一点确实很难发现)
# 退回上一级
cd ..
# 直接使用 lsattr 命令,这样可以列出当前文件夹下所有文件和文件夹的属性
# 不要使用 lsattr 文件夹 这样的语法,这样是列出该文件夹下的文件的属性
lsattr
如果文件夹被设置则对文件夹的属性执行移除操作,然后再删除文件夹里面的文件
收获
- 虽然 lsattr 和 chattr 是在这次清除病毒的过程中发现的,但是通过了解文件属性,发现我们在实际的工作中可以通过文件属性来保护重要的文件避免被误删,以及确保误删后能够恢复文件。
- 对于文件的操作后如果还是没有效果,我们可以尝试从文件夹入手解决。
Linux 文件/文件夹无法删除问题解决方案的更多相关文章
- Windows与Linux下文件操作监控的实现
一.需求分析: 随着渲染业务的不断进行,数据传输渐渐成为影响业务时间最大的因素.究其原因就是因为数据传输耗费较长的时间.于是,依托于渲染业务的网盘开发逐渐成为迫切需要解决的需求.该网盘的实现和当前市场 ...
- Linux中RM快速删除大量文件/文件夹方法
昨天遇到一个问题,在Linux中有一个文件夹里面含有大量的Cache文件(夹),数量级可能在百万级别,使用rm -rf ./* 删除时间慢到不可接受.Google了一下,查到了一种方法,试用了下确实比 ...
- (转)Linux下查看文件和文件夹大小 删除日志
场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除 ...
- 学习Linux二(创建、删除文件和文件夹命令)
转自:http://www.cnblogs.com/zf2011/archive/2011/05/17/2049155.html 今天学习了几个命令,是创建.删除文件和文件夹的,在linux里,文件 ...
- linux复制文件夹、重命名文件夹、删除文件夹
linux中复制命令为cp(即copy缩写),重命名使用mv命令(即move缩写)来实现,删除命令为rm(即remove缩写). 如果操作对象是单个文件,复制和删除以及重命名很简单,如下: cp a. ...
- Linux下查看文件和文件夹大小 删除日志
场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除 ...
- Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身
Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身 rm -rf *
- Linux 新建文件/文件夹,删除文件文件夹,查找文件 打开文件
1.新建文件夹:mkdir xx 2.新建文件: touch 1.py 3.删除文件/文件夹: rm -r xx rm 1.py 4.打开文件:cat 1.py 只显示前几行 :head -2 1. ...
- 【Linux】linux中删除指定文件外所有其他文件(夹)的问题
今天碰到要删除指定文件(夹)外的其他文件的问题.网上查到的方法是这样的 需要在当前文件夹中进行: rm -rf !(keep) #删除keep文件之外的所有文件 rm -rf !(keep1|keep ...
随机推荐
- 解决ubuntu unity下gvim菜单消失的问题
#问题描述:在终端下用gvim 指令打开 gvim就不显示菜单.在不启用unity的桌面环境下用终端打开gvim是有菜单的.从程序菜单中打开gvim是显示菜单的.用sudo打开gvim也可以显示菜单, ...
- Jmeter(二十六)_数据驱动测试
花了一点时间做了一个通用的执行引擎,好处就是我不用再关注测试脚本的内容,而是用测试用例的数据去驱动我们执行的方向.(这个只适合单个接口的测试,具体运用到接口自动化时,还是要靠手动去编写脚本!) 首先我 ...
- jdbc连接阿里云服务器上的MySQL数据库 及 数据库IP限制
问题1:Jdbc 如何连接阿里云服务器上的MySQL数据库? 解决: 上截图: 其中IP是阿里云服务器的公网IP地址. 问题2: 刚开始接手开发的时候,使用Navicat连接阿里云服务器上的数据后 ...
- java之web开发过滤器
我们通常上网的时候都会遇到一个问题,看到一个视频之类的,想要点开观看,点击之后,网页 提醒你:您尚未登录,是否要登录?然后巴拉巴拉跑去输账号密码. 那么这就是一个过滤器的功能,当你要访问一个资源的时候 ...
- TensorFlow图像处理API
TensorFlow提供了一些常用的图像处理接口,可以让我们方便的对图像数据进行操作,以下首先给出一段显示原始图片的代码,然后在此基础上,实践TensorFlow的不同API. 显示原始图片 impo ...
- 2017阿里Java编程题第2题
题意是给一组数字+符号(自增1:^,相乘*,相加+)和一个长度为16的stack.栈空取数返回-1,栈满推数返回-2. 输入样例是1 1 + 2 ^ 3 * 这样子,做的时候紧张忽略了空格,用char ...
- 13.git的简单使用
安装 https://git-scm.com/downloads 一直点下一步就可以,安装完后打开方法:‘开始菜单’-->'Git'-->''Git Bash 安装完成后设置名字和电子邮件 ...
- python_自定日历
>>> from datetime import date>>> daysOfMonth=[31,28,31,30,31,30,31,31,30,31,30,31] ...
- 实验效果展示(会声会影+FSCapture)
第一步,视频录制: 利用屏幕录制软件(Eg:FSCapture,可设定矩形区域)录制信号采集过程,存储. 第二步,视频叠加制作 1)导入视频 2)主轨,复叠轨视频安插&时序调整 3)两个视频图 ...
- 利用AOP实现SqlSugar自动事务
先看一下效果,带接口层的三层架构: BL层: public class StudentBL : IStudentService { private ILogger mLogger; private r ...