Uso de chattr.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org

Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.

Introducción.

La herramienta chattr es fundamental para la protección de la integridad del sistema de archivos, ofreciendo un nivel adicional de seguridad más allá de los permisos tradicionales.

Acerca de chattr.

Puede utilizar chattr para cambiar los atributos de los sistemas de archivos ext2, ext3, ext4 y Xfs. Desde cierto punto de vista, es análogo a chmod, pero con diferente sintaxis y opciones. Utilizado adecuadamente, dificulta las acciones en el sistema de archivos por parte de un intruso que haya logrado suficientes privilegios en un sistema.

En la mayoría de los casos, cuando un intruso consigue suficientes privilegios en un sistema, lo primero que hará será eliminar los registros de sus actividades modificando estructuras de los archivos de bitácoras del sistema y otros componentes. Utilizar chattr ciertamente es un obstáculo fácil de librar para un usuario experto, pero afortunadamente la gran mayoría de los intrusos potenciales distan mucho de serlo, dependiendo enormemente de diversos programas o guiones ―los denominados rootkits y zappers― para eliminar aquello que permita descubrir sus actividades.

Utilizar chattr, incluido en el paquete e2fsprogs, que se instala de forma predeterminada en todas las distribuciones de GNU/Linux por tratarse de un componente esencial, hace más difícil borrar o alterar bitácoras, archivos de configuración y componentes del sistema. Theodore Ts'o es el desarrollador y quien se encarga de mantener e2fsprogs, mismo que se distribuye bajo los términos de la licencia GNU/GPL, e incluye otras herramientas como e2fsck, e2label, fsck.ext2, fsck.ext3, fsck.ext4, mkfs.ext2, mkfs.ext3, mkfs.ext4, tune2fs y dumpe2fs, entre muchas otras.

El manual con la descripción completa del uso de chattr puede consultarse ejecutando lo siguiente:

man 1 chattr

URL: https://e2fsprogs.sourceforge.net

Opciones.

A continuación se presentan las opciones principales del mandato chattr:

Operadores.

Los operadores determinan la acción a realizar sobre los atributos de un archivo o directorio:

Atributos.

Los atributos modificables con chattr proporcionan controles avanzados sobre el comportamiento de los archivos en el sistema de archivos.

Uso de chattr.

La sintaxis general del mandato es la siguiente:

chattr [-RV] +-=[AacDdijsSu] [-v versión] archivo(s)

Ejemplos.

A continuación se presentan ejemplos prácticos del uso de chattr para proteger archivos.

Genere un archivo de prueba denominado algo.txt:

touch algo.txt

Agregue el atributo inmutable al archivo algo.txt ejecutando lo siguiente:

chattr +i algo.txt

Verifique que se ha establecido dicho atributo ejecutando lsattr utilizando algo.txt como argumento:

lsattr algo.txt

Si intenta sobrescribir el archivo:

echo "Hola mundo" > algo.txt

El sistema devolverá un error debido a que el archivo se ha convertido en inmutable y por lo tanto se impide su modificación.

Elimine el atributo inmutable del archivo algo.txt ejecutando lo siguiente:

chattr -i algo.txt

Verifique que se ha eliminado el atributo ejecutando lsattr:

lsattr algo.txt

Añada el atributo sólo-adjuntar al archivo algo.txt:

chattr +a algo.txt

Verifique el atributo que ha sido establecido:

lsattr algo.txt

Si intenta nuevamente sobrescribir el contenido:

echo "Hola mundo" > algo.txt

Al igual que con el atributo i, será imposible reemplazar contenido. Sin embargo, si ejecuta lo siguiente para adjuntar texto:

echo "Hola mundo" >> algo.txt

El sistema debió permitir adjuntar datos al final del archivo algo.txt.

Elimine el atributo sólo-adjuntar al archivo algo.txt:

chattr -a algo.txt

Verifique que se ha eliminado el atributo:

lsattr algo.txt

En sistemas de archivos Ext3 y Xfs, ejecutar lo siguiente establece que el archivo algo.txt sólo tendrá los atributos a, A, s y S:

chattr =aAsS algo.txt

En sistemas de archivos Ext4, lo anterior siempre fallará porque es imposible eliminar el atributo e con chattr. En su lugar, ejecute lo siguiente:

chattr =eaAsS algo.txt

Verifique los atributos que han sido establecidos:

lsattr algo.txt

📝 Nota sobre sistemas de archivos modernos

Los atributos descritos son compatibles con los sistemas de archivos ext4 y Xfs utilizados de forma predeterminada en distribuciones modernas como AlmaLinux, Rocky Linux y RHEL 8/9/10. El atributo e (extents) es nativo y permanente en ext4, por lo que cualquier operación con chattr debe incluirlo en la lista de atributos al utilizar el operador =.