编辑

编辑

我正在将计算机从 RHEL 4 迁移到 5。我们没有实际进行升级,而是创建了一个新的虚拟机(两台计算机都在云中),并且我正在两台计算机之间复制数据。

我遇到了以下文件,我需要从新机器中删除该文件,但无法删除,即使以 root 身份运行也是如此:

-rw-------  1 2003 2003  219 jan 11 14:22 .bash_history

该文件位于 /home/USER/ 内,其中 USER 是构建机器的人的帐户。他在旧机器上没有帐户,因此我尝试删除他的主文件夹,以便新机器与旧机器相符,但出现以下错误:

rm: ne peut enlever `.bash_history': Opération non permise

(翻译自法语:无法删除 XXX,不允许操作)

我尝试过使用以下命令,但这没有什么区别:

chattr -i .bash_history

创建 ID 为 2003 的用户是唯一的选择,还是有其他方法?


编辑

我尝试过使用rm -f,但遇到了同样的错误。我首先使用时遇到同样的错误chmod 777

我已经能够访问chown包含我要删除的文件的文件夹,因此它是:

drwx------ 2 root root 1024 jan 24 15:58 USER

编辑2

按照 Angus 的建议运行lsattr命令会得到以下输出:

-----a------- USER/.bash_history
------------- USER/..
------------- USER/.

该文件被标记为仅追加 - 使用此标志更改后,chattr -a .bash_history我就可以删除该文件。

答え1

检查权限目录。要删除其中的文件,您应该可以写入该文件

chmod ugo+w .

并且不是不可变的或仅附加的:

chattr -i -a .

ls -la和检查lsattr -a

答え2

我遇到了类似的问题,但之前尝试过权限和 chattr,但均无济于事。在终端中扎根。 CD 到目录。

然而,对我有用的是检查麻烦文件所在目录的权限 - 如果可以继续:

chmod ugo+w filename

这失败了 - 然后:

chattr -i -a filename 

被接受 - 然后

chmod ugo+w 

被接受的

rm filename

然后它就消失了。

HP 工作站上的 Fedora 25。

答え3

“sudo”可以使用相同的 user.group 运行“rm”命令

笔记:不确定这是否也适用于像你这样的 ids。

例子:

ls /path/to/dir_being_deleted
  drwxrwxrwx 2 nfsnobody nfsnobody   4096 Mar  8 06:55 .
  drwxrwxrwx 7 nfsnobody nfsnobody   4096 Mar  8 06:57 ..
  -rwxrwxrwx 1 nfsnobody nfsnobody      0 Mar  8 06:55 filename.txt

sudo -u nfsnobody -g nfsnobody rm -rf /path/to/dir_being_deleted

答え4

要使用添加到答案中chattr,我自己在尝试删除不需要的目录时遇到了这个问题,并发现使用

chattr-RVf-i<目录>

解决了我的问题。该目录里面有几十个文件夹,有好几层,

lsattr -la *

向我展示了尽管运行了其他人提到的基本内容,但大多数子文件夹内容仍然是不可变的。当我最终阅读时,我找到了 选项。 Whoda thunk 阅读说明...chattr -i -a <directory>-RVfman chattr

関連情報