即使以超级用户身份运行,也无法删除文件


48

我正在将一台机器从RHEL 4迁移到5。不是实际进行升级,而是创建了一个新的VM(两台机器都在云中),并且正在跨这两者之间复制数据。

我遇到了以下文件,该文件需要从新计算机上删除,但即使以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

lsattr按照Angus的建议运行命令,输出如下:

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

该文件被标记为仅追加-在使用chattr -a .bash_history我能够删除该文件的情况下更改此标志。

Answers:


54

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

chmod ugo+w .

且不可变或仅附加:

chattr -i -a .

ls -la和检查lsattr -a


谢谢..我不得不在命名*文件上运行此文件,该文件在Centos 7
minimum中

不幸的是,对于/vendor/laracasts/generators/.git/objects/pack/,当我运行时chattr -i -a .,我得到了chattr: Inappropriate ioctl for device while reading flags on .,并且我无法留下Composer留下rm的讨厌.idx文件(因为“不允许操作”)。
瑞安

啊,对我来说,一种解决方法是退出Laravel Homestead Vagrant VirtualBox,回到Windows 10(仍然使用Git Bash)并rm从那里退出文件。然后composer update能够完成。
瑞安

chattr -i -a工作了。
xji

9

我有一个类似的问题,但之前尝试同时使用权限和chattr都没有用。根在终端。CD到目录。

但是对我有用的是检查麻烦文件所在目录的权限-如果可以,请继续执行以下操作:

chmod ugo+w filename

这失败了-然后:

chattr -i -a filename 

被接受-然后

chmod ugo+w 

被接受

rm filename

它不见了。

hp工作站上的Fedora 25。


'chmod ugo + w filename”完全帮了我
大忙

1

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

注意:不确定是否也可以像您一样使用id。

例:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.