Uso de chattr.

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

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2014 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Acerca de chattr.

Puede utilizar chattr para cambiar los atributos de los sistemas de archivos ext2,ext3 y ext4. 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 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: http://e2fsprogs.sourceforge.net/

Opciones.

-RCambia de manera descendente los atributos de directorios y sus contenidos. Los enlaces simbólicos que se encuentren, son ignorado
-VSalida de charttr más descriptiva, mostrando además la versión del programa.
-vVer el número de versión del programa.

Operadores.

+Hace que se añadan los atributos especificados a los atributos existentes de un archivo.
-Hace que se eliminen los atributos especificados de los atributos existentes de un archivo
=Hace que se reemplacen los atributos existentes por los atributos especificados.

Atributos.

AEstablece que la fecha del último acceso (atime) no se modifica.
aEstablece que el archivo sólo se puede abrir en modo de adjuntar para escritura.
cEstablece que el archivo es comprimido automáticamente en el disco por el núcleo del sistema operativo. Al realizar lectura de este archivo, se descomprimen los datos. La escritura de dicho archivo comprime los datos antes de almacenarlos en el disco.
DCuando se trata de un directorio, establece que los datos se escriben de forma sincrónica en el disco. Es decir, los datos se escriben inmediatamente en lugar de esperar la operación correspondiente del sistema operativo. Es equivalente a la opción dirsync de mount, pero aplicada a un subconjunto de archivos.
dEstablece que el archivo no sea candidato para respaldo al utilizar la herramienta dump.
eIndica que el archivo o directorio utiliza extensiones (extents) para la cartografía de bloques en la unidad de almacenamiento, particularmente de sistemas de archivos Ext4. Cabe señalar que chattr es incapaz de eliminar este atributo.
iEstablece que el archivo será inmutable. Es decir, se impide que el archivo sea eliminado, renombrado, que se pueden apuntar enlaces simbólicos hacia éste o escribir datos en el archivo.
jEn los sistemas de archivos ext3 y ext4, cuando se montan con las opciones data=ordered o data=writeback, se establece que el archivo será escrito en el registro por diario (Journal). Si el sistema de archivos se monta con la opción data=journal (opción predeterminada), todo el sistema de archivos se escribe en el registro por diario y por lo tanto el atributo no tiene efecto.
sCuando un archivo tiene este atributo, los bloques utilizados en el disco duro son escritos con ceros, de modo que los datos no se puedan recuperar por medio alguno. Es la forma más segura de eliminar datos.
SCuando el archivo tiene este atributo, sus cambios son escritos de forma sincrónica en el disco duro. Es decir, los datos se escriben inmediatamente en lugar de esperar la operación correspondiente del sistema operativo. Es equivalente a la opción sync de mount.
uCuando un archivo con este atributo es eliminado, sus contenidos son guardados permitiendo recuperar el archivo con herramientas para tal fin.

Uso de chattr.

chattr [-RV] +-=[AacDdijsSu] [-v versión] archivos

Ejemplos.

Genere el archivo 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 ejecuta lo siguiente:

echo "Hola mundo" > algo.txt

Lo anterior 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 utilizando algo.txt como argumento:

lsattr algo.txt

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

chattr +a algo.txt

Verifique el atributo que ha sido establecido ejecutando lsattr utilizando algo.txt como argumento:

lsattr algo.txt

Si ejecuta lo siguiente:

echo "Hola mundo" > algo.txt

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

echo "Hola mundo" >> algo.txt

Se permitirá adjuntar datos al archivo algo.txt.

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

chattr -a algo.txt

Verifique que se ha eliminado el atributo ejecutando lsattr utilizando algo.txt como argumento:

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 ejecutando lsattr utilizando algo.txt como argumento:

lsattr algo.txt