为什么我不能以根用户身份删除此文件?


20

我有2个文件的目录考试。我需要删除文件,但权限被拒绝。甚至rm -rf命令也无法删除这些文件。我以root用户身份登录。

在此处输入图片说明


13
(1)请尽可能将来自终端的文本作为文本发布。理想情况下,将其复制并粘贴。如果您除了手动转录外没有其他方法来捕获文本,则可以这样做,但要透露您正在做,并包括屏幕捕获图像,以便我们再次检查您的输入。(2)当您对权限有疑问时,请始终执行ls -la,以便我们可以看到.(目录)上的权限。
G-Man说'恢复莫妮卡'

Answers:


39

从root用户检查文件的属性

# lsattr 

如果您注意到i(不可变)或a(仅追加),请删除以下属性:

# man chattr
# chattr -i [filename]
# chattr -a [filename]

1
哇,真是棘手。感谢您发布此解决方案;我处于机智的尽头。我敢肯定,这是不知何故与我异口同声地同步; 它被置于“未知”状态(由于多种原因),这意味着(无法删除)我无法删除的目录被设置为仅追加(这是典型的一致)。但是我不知道如何查看/重置仅追加模式!你是救命稻草 我希望原始海报也能解决他们的问题。
Gwyneth Llewelyn

这是一个救星。
卢卡

16

rm抱怨您没有删除文件的权限的最常见原因是,目录上的权限禁止您删除文件。为了删除文件,您需要对该目录具有写权限。文件的权限无关紧要(删除只读文件之前rm不会-f提示确认,但这仅是确认,而不是限制)。在某些Unix变体中,例如OSX(但不是Linux),文件上的ACL可以防止其删除;如果文件上有ACL条目,ls -l则将显示@在权限字段的末尾。

以root用户身份访问会绕过权限,因此root用户甚至可以在只读目录中删除文件。

来自的输出在权限列的末尾ls -l显示a .。这表明该文件具有SELinux安全上下文。与基本权限和ACL不同,文件上的SELinux安全上下文可以控制允许谁删除它。此外,SELinux不能总是被root绕过(有可能以用户ID 0运行进程,但其权限与SELinux策略设计者选择的权限一样少)。要查看SELinux上下文允许您做什么,请运行ls -lZ . exam_a

可以防止文件被删除的另一件事是,该文件或包含该文件的目录是否具有仅追加或不可变的Linux属性。运行lsattr -d . exam_a以查看Linux属性。如果aor i属性处于启用状态,则需要将其删除(chattr -a -i . exam_a)才能删除文件。只有root可以做到。根无法绕过这些属性来删除文件,必须先关闭这些属性。

防止删除文件的另一件事是,如果文件系统以只读方式安装,但是在这种情况下,您会收到其他错误消息。

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.