我正在将计算机从 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>
-RVf
man chattr