¡Mira en este artículo cómo evitar que tus archivos y directorios tengan su contenido alterado cambiando su atributo a inmutable!
Hay ciertas situaciones en las que no queremos que un archivo cambie, ya sea porque contiene alguna información que no debe ser editada, o para evitar que las automatizaciones actualicen el archivo. En este artículo aprenderás cómo hacer inmutable un archivo mediante un comando de Linux. ¿Vamos?
Qué es un archivo inmutable
Un archivo inmutable es un archivo cuyas propiedades no se pueden modificar, ni el contenido ni el propio nombre del archivo. Esto es válido en caso de que se haya programado algún proceso para editar el archivo, impidiéndolo.
En este artículo utilizaremos el comando chattr de Linux que tiene la función de hacer inmutables los archivos, haciendo imposible incluso para el usuario root editar el archivo sin antes eliminar el atributo que hace inmutable el archivo.
Cómo hacer un archivo inmutable
Para hacer que un archivo sea inmutable tendrás que ejecutar un comando de línea de comandos, consulta nuestro artículo sobre cómo realizar una conexión SSH en tu servidor.
El comando chattr, que significa change attribute, puede conceder la propiedad inmutable a un archivo o directorio. Consulta sus variaciones:
1. Hacer un archivo inmutable
Para hacer inmutable un archivo, ejecuta el siguiente comando:
chattr +i [archivo]
Usando la flag +i en el archivo, el archivo es inmutable, y no puede ser editado, eliminado o renombrado por ningún otro archivo ni por root.
En el ejemplo anterior, después de aplicar el atributo inmutable al archivo ejemplo.txt observa como no se permite editar el archivo con el comando echo en la siguiente línea.
Para eliminar el atributo inmutable del archivo, utiliza el siguiente comando en el mismo archivo:
chattr -i [archivo]
2. Hacer inmutable un directorio
Hacer inmutable un directorio es el mismo proceso que hacer inmutable un archivo, pero en lugar de introducir el nombre del archivo, se introduce el nombre del directorio. De este modo
chattr +i [directorio]
La eliminación del atributo inmutable también sigue el mismo patrón que para un archivo:
chattr -i [directorio]
Sin embargo, si quieres que este cambio se aplique recursivamente a otros directorios dentro del directorio indicado, utiliza la flag -R:
chattr -R +i [directorio]
Para eliminar el atributo inmutable de forma recursiva, basta con cambiar la flag de +i para -i:
chattr -R -i [directorio]
3. Permitir apenas anexos
El comando chattr también permite evitar ediciones en el archivo con excepción para de nuevos anexos en nuevas líneas, pero sin poder eliminar, o editar las líneas existentes en el archivo. Esto se hace utilizando la flag +a:
chattr +a [archivo]
Y para volver el archivo a su estado normal, utiliza la flag -a:
chattr -a [archivo]
Conclusiones Finales
En este artículo aprendiste cómo hacer inmutable un archivo utilizando el comando chattr de Linux, consulta el manual del comando para conocer más detalles al respecto.
También recomiendo estos otros materiales relacionados con este tema:
¡Hasta la próxima! :^)