Proteger archivos o carpetas hasta del mismo root – chattr & lsattr

¡Hola a todos!. Se oye algo amarillista el título, pero más o menos es así… se da la situación que hay archivos o carpetas que son de suma importancia y que no queremos que sean modificados ni eliminados, ni siquiera por alguien con privilegios de root en el sistema (¿ /etc/passwd por ejemplo?); podría ser por motivos de protección contra eliminación o modificación accidental, pero más que todo para ofrecer una «capa» más de seguridad al archivo.

Además de las propiedades de los archivos en el mundo de GNU/Linux (rwx, usuario/grupo propietario, etc.), tenemos unos atributos especiales no muy conocido que se pueden listar con el comando lsattr. Creo que hay más, pero solo describiré 3 de esos atributos especiales:

  • aAppend only → Permite únicamente agregar información al archivo pero no borrar nada.
  • eExtents → mejora el rendimiento al trabajar con archivos de gran tamaño y reduce la fragmentación.
  • iimmutable → Evita borrar, modificar, renombrar o agregar un enlace al archivo.

Para nuestro caso, nos interesa el parámetro i , el atributo de inmutabilidad.

Por cierto, es curioso el nombre que le pusieron a éste atributo; se trata de un atributo de Dios, quien no cambia:

Malaquías 3:6
Porque yo Jehová no cambio; por esto, hijos de Jacob, no habéis sido consumidos.

Pero bueno, continuando, veamos la salida normal del comando mencionado anteriormente:

Por defecto los archivos se crean con el atributo e (Extents), pero vamos a asignar, para ejemplificar mejor, el atributo  i (Immutable) al archivo «archivo-no-cambia.txt» para que se entienda mejor el concepto.

Para asignar estos atributos especiales, usamos el comando chattr , el cual es un comando que puede ser utilizado únicamente con privilegios de root. Veamos entonces su sintaxis básica.

Asignar atributo especial de inmutabilidad:

sudo chattr +i nombre-archivo.ext

Quitar atributo especial de inmutabilidad:

sudo chattr -i nombre-archivo.ext

Ahora, para nuestro ejemplo sería:

Hecho esto, podemos hacer pruebas… Al intentar agregar información a archivo-no-cambia.txt , veremos que no nos permite, de igual forma si queremos eliminarlo o modificarlo; inclusive, con privilegios de root (sudo), no nos permitirá. Miramos las propiedades del archivo con un ls y miramos que todo está normal… por eso, alguien no sepa al respecto, se quedaría hasta ahí y pensaría que hay algún problema con el sistema de archivos, disco duro o algo, pero No es así… se trata de la inmutabilidad que tiene el archivo; no se puede hacer nada si no es con el comando chattr.

Bien, eso sería todo. Hemos visto cómo asignar o quitar el atributo de inmutabilidad para archivos.

¡Saludos!


Comentarios por Facebook

comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*