Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org/
Licencia de este documento: Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2022 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.
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/
-R | Cambia de manera descendente los atributos de directorios y sus contenidos. Los enlaces simbólicos que se encuentren, son ignorado |
-V | Salida de charttr más descriptiva, mostrando además la versión del programa. |
-v | Ver el número de versión del programa. |
+ | 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. |
A | Establece que la fecha del último acceso (atime) no se modifica. |
a | Establece que el archivo sólo se puede abrir en modo de adjuntar para escritura. |
c | Establece 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. |
D | Cuando 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. |
d | Establece que el archivo no sea candidato para respaldo al utilizar la herramienta dump. |
e | Indica 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. |
i | Establece 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. |
j | En 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. |
s | Cuando 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. |
S | Cuando 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. |
u | Cuando un archivo con este atributo es eliminado, sus contenidos son guardados permitiendo recuperar el archivo con herramientas para tal fin. |
chattr [-RV] +-=[AacDdijsSu] [-v versión] archivos
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
Lo anterior debió 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