Linux删除文件提示Operation not permitted的处理办法

经常有同事问,删除文件/目录时报Operation not permitted错误,这个要如何处理?!

这个一般是权限的问题,比如:

1. 普通用户且有足够的权限的话,一般文件夹可能是别的服务/进程掉用该文件夹

lsof +D  /Dir/Your/Want/To/Delete/

先执行上面的命令,查询到调用该文件夹的进程IDs,然后再kill掉,这个时候应该就可以删了!

2. 普通用户且缺乏权限的话,如果要删除该文件夹则要借助su或者sudo命令来删除

3. 如果是root用户,依然报上面的错的话,则该档案很可能被锁定

[root@linux ~]# lsattr YourFile
  ---i---------- YourFile

则要借助lsattr命令来查看是否是系统添加了i,属性,比如上面。这个参数可以让一个档案『不能被删除、改名、设定连结也无法写入或新增数据!对于系统安全性有相当大的帮助!这个命令也是你既然是root用户,依然不能执行删除操作的原因。 然后再借助chattr命令来去除该属性

[root@linux ~]# chattr -i YourFile
[root@linux ~]# lsattr YourFile
[root@linux ~]#

然后就可以删除该文件了!

注意:i属性chattr命令并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。大家可以想想:比如说/tmp目录,所有的用户可以创建并删除自己的临时性文件,root用户也一样,如果该目录下的文件,连root用户都不能删除的话,情况会如何呢?

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Linux下利用unzip命令如何解压多个文件详解

    linux中提示没有unzip命令解决方法 如果你如法使用unzip命令解压.zip文件,可能是你没有安装unzip软件,下面是安装方法 命令: yum list | grep zip/unzip #获取安装列表 安装命令: yum install zip #提示输入时,请输入y: 安装命令:yum install unzip #提示输入时,请输入y: Linux下直接使用unzip *.zip解压多个文件会报错 可以使用unzip '*.zip'或者 unzip "*.zip"或者u

  • Linux下对各种压缩文件的处理方法

    Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法: tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 来举例说明一下: # tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包.-c是表示产生新的包,-f指定包的文件名. # tar -rf all

  • Windwos下使用winscp和批处理实现通过SSH端口上传文件到Linux服务器上

    Windwos下使用winscp和批处理实现通过SSH端口上传文件到Linux服务器上 今天同事想在windows上使用winscp上传文件到linux服务器上,又想偷懒想使用批处理来进行上传,还好只固定上传一个php文件,多了还真不好搞. 1.下载winscp 大家可以去网上自己找,我把winscp安装在c:下的 2.把要执行的命令保存到文件winscp.bat里,这个winscp.bat可以自己创建,我是放在d:下的. winscp.bat脚本内容: 复制代码 代码如下: option co

  • Linux文件处理常用命令操作技巧

    我是Linux初学者,做个笔记,以下是Linux几个常用文件处理命令: 命令提示符 [root@localhost~]# 其中: root                          表示当前登录用户 localhost 表示主机名 ~ 表示当前所在目录(家目录) # 表示超级用户名的提示符 普通用户的提示符是$ 查询目中内容:ls ls [选项] [文件或目录] 选项有: -a 显示所有文件,包括隐藏文件 -l   显示详细信息 -d 查看目录属性 -h 人性化显示文件大小 -i 显示i

  • Linux一行命令处理批量文件详解

    前言 最好的方法不一定是你最快能想到的.工作中针对临时使用的脚本不要求健壮,写出来越快越好.这里提供一种使用sed命令构造命令解决处理批量文件的技巧,供参考. 需求案例1 将当前目录下所有的0_80_91.txt.0_80_92.txt.0_80_93.txt....等几十个文件的文件名修改为0_81_91.txt.0_81_92.txt.0_81_93.txt.也就是将文件名中的80修改为81. 实现命令为:ls *.txt |sed -nr 's/(0_)(80)(.*)/mv \1\2\3

  • Linux查找处理文件名后包含空格的文件(两种方法)

    当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名后有空格呢? 又怎么批量替换处理掉这些空格呢? 方法1: 输入文件名后使用Tab键,如果使用Tab键后面出现\ \ \这样的可见字符,那么该文件名包含空格.当然,这个方法弊端很大,例如,效率低下,不能批量查找,只有当你怀疑某个文件名后有空格,这个方法才比较凑效.另外,不能查找文件中间包含空格的文件名.如下测试所示: [root@DB-Server kerry]# cat >"test.txt " it is o

  • 在 Linux 中不使用 CD 命令进入目录/文件夹的方法

    众所周知,如果没有 cd 命令,我们无法 Linux 中切换目录.这个没错,但我们有一个名为 shopt 的 Linux 内置命令能帮助我们解决这个问题. shopt 是一个 shell 内置命令,用于设置和取消设置各种 bash shell 选项,由于它已安装,因此我们不需要再次安装它. 是的,我们可以在启用此选项后,可以不使用 cd 命令切换目录. 我们将在本文中向你展示如何操作.这是一个小的调整,但对于那些从 Windows 迁移到 Linux 的新手来说非常有用. 这对 Linux 管理

  • Linux删除文件提示Operation not permitted的处理办法

    经常有同事问,删除文件/目录时报Operation not permitted错误,这个要如何处理?! 这个一般是权限的问题,比如: 1. 普通用户且有足够的权限的话,一般文件夹可能是别的服务/进程掉用该文件夹 lsof +D  /Dir/Your/Want/To/Delete/ 先执行上面的命令,查询到调用该文件夹的进程IDs,然后再kill掉,这个时候应该就可以删了! 2. 普通用户且缺乏权限的话,如果要删除该文件夹则要借助su或者sudo命令来删除 3. 如果是root用户,依然报上面的错

  • Linux 删除文件夹和文件的命令(强制删除包括非空文件)

    linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思 1.删除文件夹实例: rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 2.删除文件使用实例: rm -f /var/log

  • MacOS无法挂载NFS Operation not permitted错误解决办法

    MacOS无法挂载NFS Operation not permitted错误解决办法 新装的Openfiler开启nfs之后,用Macbook的图形界面通过 Finder-->前往-->连接服务器 无法连接. 先在服务器上自己挂自己试了一下,没有问题,说明问题可能在Macbook客户端上. 在Macbook上打开终端: sh-3.2# showmount -e 10.0.0.55 Exports list on 10.0.0.55: /home 10.0.0.0/24 sh-3.2# moun

  • 删除文件提示文件正在被另一个人或程序使用的解决方法

    如果找不到哪个程序在使用这个文件,可以试试 procexp.exe. 打开procexp.exe,按下面提示打开Find Handle 输入那个正在使用的文件名,查找.就可以看到哪个程序正在使用这个文件 结束那个正在使用进程,原来不能删除的文件就可以删除了.注意,结束正在使用的系统进程可能会使系统重新启动或丢失正在打开的文档资料. 下图是查到dll的操作 查找结果 同样的方法,可以查看哪些进程正在使用某个dll.然后结束进程后再删除某个dll 上面方法可以删除大部分正在使用的文件,但达不到100

  • 深入理解linux执行文件提示No such file or directory的背后原因

    1 背景 最近一直在研究在ZC706-ARM开发板的linux系统中弄一套编译系统(不支持apt),刚好发现公司有一套英伟达的ARM开发板且带有ubunut系统(支持apt),此时产生一个想法,英伟达板子上编译的程序能否在ZC706的板子上运行? 2 过程 在英伟达的开发板中 gcc a.c生成a.out,然后拷贝到ZC706中执行出现"No such file or directory" 以前遇到的是以下原因: 文件本身不存在或者文件损坏 无执行权限 (chmod 777 xxx)

  • Linux删除文件不同方法效率对比

    测试一下Linux下面删除大量文件的效率. 首先建立50万个文件 $ test for i in $(seq 1 500000);do echo text >>$i.txt;done 1. rm删除 $ time rm -f * zsh: sure you want to delete all the files in /home/hungerr/test [yn]? y zsh: argument list too long: rm rm -f * 3.63s user 0.29s syst

  • Linux系统删除文件夹和文件的命令

    linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思 删除文件夹实例: rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 删除文件使用实例: rm -f /var/log/htt

  • Linux命令行删除文件实操方法

    rm命令 rm命令是大多数人在删除文件时经常使用的命令,它用于删除一个文件或者目录. rm命令的语法如下: rm /path/to/file 还可以删除文件夹和子文件夹中的所有文件,如下所示: rm -R /path/to/folder 文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令.但是,我们可以通过使用各种方法在某种程度上防止误删文件.例,如果要删除多个文件,则可以在删除每个文件之前得到提示,以便确保删除正确的文件. rm -i /path/to/file 每当运行上述命

  • Linux 按时间批量删除文件命令(删除N天前文件)

    需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据. 可以使用下面一条命令去完成: find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \; 这个是根据时间删除. 下面简要解释一下,这句shell命令: find /home/lifeccp/dicom/studies -mtime +21 -name "*.*"

  • Linux bash删除文件中含“指定内容”的行功能示例

    本文实例讲述了Linux bash删除文件中含"指定内容"的行功能.分享给大家供大家参考,具体如下: #!/bin/sh # 功能: 删除文件中含"指定内容"的行 # 运行方式: ./dline.sh c.log ==> 产生输出文件: c.log0 array=( "rm -f lvr_3531_pf_new" "arm-hisiv100-linux-gcc " "In function " &qu

随机推荐