Datei in $ HOME kann nicht gelöscht werden


8

Ich muss mein gesamtes System sichern, da meine Festplatte im Sterben liegt.

In $ HOME gibt es eine Datei, .rsync.logdie ich nicht als Benutzer oder als Root löschen kann.

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

Ich habe eine Dateisystemprüfung durchgeführt, aber das hat nicht funktioniert.

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--

und

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

Dateisystem ist ext4.

Ich muss diese Datei entfernen, bevor ich mein Backup von $ HOME erstellen kann. Wie kann ich das machen?


Das Entfernen einer Datei hat eher mit Berechtigungen für das Basisverzeichnis als mit Berechtigungen für die Datei selbst zu tun.
— Satō Katsura

In meinem Fall nicht. Ich konnte die Datei nicht löschen, als ich das kaputte System ausführte. Und ich habe dort in meinem $ HOME Zugriff gelesen und geschrieben. Und es wurde richtig montiert. Ich habe das sofort überprüft.

@SatoKatsura, aber die Datei- / Verzeichnisberechtigungen beschränken root normalerweise nicht.
— Ilkkachu

@ilkkachu Ah, ich habe den Teil über das Laufen als root verpasst.
— Satō Katsura

Antworten:


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

Es agibt das Flag "Nur anhängen" , das ein bisschen wie das unveränderliche Flag funktioniert, da es auch das Entfernen der Datei verhindert. Auch für root:

# 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

Eine Datei mit dem Attribut 'a' kann nur im Anhänge-Modus zum Schreiben geöffnet werden. Nur der Superuser oder ein Prozess mit der Funktion CAP_LINUX_IMMUTABLE kann dieses Attribut festlegen oder löschen.

chattr -a /media/alex/.../.rsync.log als Wurzel sollte es loswerden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.