无法删除$ HOME中的文件


8

我必须备份我的整个系统,因为我的硬盘快要死了。

在$ HOME中,有一个.rsync.log我无法以用户或root身份删除的文件。

LANG=C rm -f /media/alex/3c68c336-bf8d-46f8-bc04-58d3e160f2b1/alex/.rsync.log 
rm: cannot remove '/media/alex/3c68c336-bf8d-46f8-bc04-58d3e160f2b1/alex/.rsync.log': Operation not permitted

我运行了文件系统检查,但这没有用。

LANG=C getfacl /media/alex/3c68c336-bf8d-46f8-bc04-58d3e160f2b1/alex/.rsync.log 
getfacl: Removing leading '/' from absolute path names
# file: media/alex/3c68c336-bf8d-46f8-bc04-58d3e160f2b1/alex/.rsync.log
# owner: alex
# group: alex
user::rw-
group::r--
other::r--

lsattr /media/alex/3c68c336-bf8d-46f8-bc04-58d3e160f2b1/alex/.rsync.log 
-----a-------e-- /media/alex/3c68c336-bf8d-46f8-bc04-58d3e160f2b1/alex/.rsync.log

文件系统是ext4。

从$ HOME进行备份之前,需要删除该文件。我该怎么办?


删除文件与基本目录的权限有关,而不是与文件本身的权限有关。
聪桂

就我而言,不是。运行损坏的系统时,我无法删除文件。而且我已经在$ HOME中读写访问了。而且安装正确。我立刻检查了一下。

@SatoKatsura,但文件/目录权限通常不限制root用户。
ilkkachu

@ilkkachu啊,我错过了有关以root身份运行的部分。
佐藤桂

Answers:


16
$ lsattr /media/alex/.../.rsync.log 
-----a-------e-- /media/alex/.../.rsync.log

a存在追加唯一标志,它不工作有点像,它也可以防止删除该文件的不可变的标志。同样对于根:

# touch file.txt ; chattr +a file.txt ; lsattr file.txt ; rm file.txt
-----a-------e-- file.txt
rm: cannot remove `file.txt': Operation not permitted

设置了'a'属性的文件只能在追加模式下打开以进行写入。只有超级用户或具有CAP_LINUX_IMMUTABLE功能的进程才能设置或清除此属性。

chattr -a /media/alex/.../.rsync.log 作为根应该摆脱它。

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.