No se puede borrar el archivo en $ HOME

8

Tengo que hacer una copia de seguridad de todo mi sistema, porque mi HDD está muriendo.

En $ HOME hay un archivo .rsync.logque no puedo borrar como mi usuario o como 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

Ejecuté una comprobación del sistema de archivos, pero eso no funcionó.

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

y

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

El sistema de archivos es ext4.

Necesito deshacerme de este archivo antes de hacer mi copia de seguridad desde $ HOME. ¿Como lo puedo hacer?

Rui F Ribeiro
fuente
Eliminar un archivo tiene que ver con permisos en el directorio base, en lugar de con permisos en el archivo en sí.
Satō Katsura
En mi caso no. No pude borrar el archivo cuando estaba ejecutando el sistema roto. Y he leído y escrito acess allí en mi $ HOME. Y fue montado correctamente. Lo comprobé de inmediato.
@SatoKatsura, pero los permisos de archivo / directorio no suelen limitar la raíz.
ilkkachu
@ilkkachu Ah, me perdí la parte de correr como root.
Satō Katsura

Respuestas:

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

El ano es el append única bandera , que funciona un poco como la bandera inmutable en que también evita la eliminación del archivo. También para 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

Un archivo con el conjunto de atributos 'a' solo se puede abrir en modo de agregado para escritura. Solo el superusuario o un proceso que posee la capacidad CAP_LINUX_IMMUTABLE puede establecer o borrar este atributo.

chattr -a /media/alex/.../.rsync.log como root debería deshacerse de él.

ilkkachu
fuente