¡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:
- a → Append only → Permite únicamente agregar información al archivo pero no borrar nada.
- e → Extents → mejora el rendimiento al trabajar con archivos de gran tamaño y reduce la fragmentación.
- i → immutable → 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