1

Convertir un archivo a no modificable usando atributos de Linux

Los archivos de Linux pueden por medio de atributos pueden declararse no modificables, esto quiere decir que ni aun con la cuenta root se puede eliminar.
Esto es util si se quiere evitar modificaciones accidentales a un archivo, por ejemplo creamos un archivo

[root@localhost usertodelete]# touch Archivo_immutable.txt
[root@localhost usertodelete]#
[root@localhost usertodelete]# ll
total 0
-rw-r–r--. 1 root root 0 May 21 20:59 Archivo_immutable.txt

Hasta aca no hay nada especial con el archivo pero si seteamos el atributo i usando el comando
[root@localhost usertodelete]# chattr +i Archivo_immutable.txt
[root@localhost usertodelete]# lsattr
----i----------- ./Archivo_immutable.txt

Y ahora tratamos de eliminar vamos a notar que no nos deja
[root@localhost usertodelete]# rm -f Archivo_immutable.txt
rm: cannot remove ‘Archivo_immutable.txt’: Operation not permitted

Tampoco renombrarlo
[root@localhost usertodelete]# mv Archivo_immutable.txt Archivo_immutable1.txt
mv: cannot move ‘Archivo_immutable.txt’ to ‘Archivo_immutable1.txt’: Operation not permitted

Esto es debido al atributo que le agregamos
a - añadir solo: el archivo solo se puede abrir para añadir.
c - comprimido: activa la compresión a nivel de sistema de archivos para el archivo.
i - inmutable: no se puede modificar, eliminar, renombrar ni vincular. Solo puede ser establecido por el superusuario.
j - diario de datos: utiliza journal para escribir datos de archivos y metadatos.
m - sin compresión: desactiva la compresión a nivel de sistema de archivos para el archivo.
A - sin actualización atime: No se modificará el atime del archivo.
C - sin copia en escritura (CoW): desactiva la copia en escritura, para los sistemas de archivos que lo admitan.
(Tomado de la fuente https://wiki.archlinux.org/title/File_permissions_and_attributes_(Español)

Para agregar un atributo se utiliza el comando
chattr +<atributo>
Para removerlo
chattr -<atributo>

Aca vemos el cambio si se remueve el atributo
[root@localhost usertodelete]# chattr -i Archivo_immutable.txt
[root@localhost usertodelete]# lsattr
---------------- ./Archivo_immutable.txt
[root@localhost usertodelete]# mv Archivo_immutable.txt Archivo_immutable1.txt
[root@localhost usertodelete]# ll
total 0
-rw-r–r--. 1 root root 0 May 21 20:59 Archivo_immutable1.txt

Escribe tu comentario
+ 2