d3us

Hoy toca hablar de chattr, una utilidad para nuestra terminal que sirve para asignar diferentes atributos a nuestros archivos en Linux. Uno de los objetivos principales de esta herramienta es el de proteger nuestros archivos de cambios involuntarios o borrados accidentales y lo mejor de todo, te protegerá incluso aunque ejecutes comandos de borrado o modificación siendo superusuario (root).

Los atributos de los que vamos a hablar hoy son soportados por los sistemas de archivos de Linux nativos como ext2, ext3, ext4, btrfs, etc... Uno no podrá eliminar ni modificar los archivos con los atributos que usemos, aunque tenga todos los permisos para hacerlo.

La sintaxis de este comando es la siguiente:

chattr [operador] [atributo] [archivo]

Algunos de los atributos disponibles

Stian Eikeland
Stian Eikeland

Aquí os dejo una lista traducida de las opciones y atributos que podemos usar para asignárselos a los archivos mediante chattr. Hay algunos que son muy interesantes como -s (borrado de forma segura) o -i (inmutable).

Opciones.

  • -R Cambia de manera descendente los atributos de directorios y sus contenidos. Los enlaces simbólicos que se encuentren, son ignorados.
  • -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.

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.

  • 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.
  • 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.
  • u Cuando un archivo con este atributo es eliminado, sus contenidos son guardados permitiendo recuperar el archivo con herramientas para tal fin.

Hagamos archivos intocables

chattr

Para realizar el ejemplo sin miedo a dañar nada, usaremos unos archivos de prueba llamados carpeta-prueba y archivo-prueba.txt. Procedamos a crearlos:

    $ mkdir carpeta-prueba
    $ touch archivo-prueba.txt


Ahora, lo único que tenemos que hacer es usar la sintaxis antes descrita para proteger nuestros archivos.

    $ sudo chattr +i carpeta-prueba/
    $ sudo chattr +i archivo-prueba.txt


Es importante saber que i solo puede ser asignada por un usuario con privilegios de superusuario. Ahora podremos comprobar los atributos mediante el siguiente comando:

    $ lsattr


Si intentamos borrar los archivos no nos dejará ni siendo superusuario, por lo que para volver a la normalidad el estado de los archivos:

    $ sudo chattr -i carpeta-prueba/
    $ sudo chattr -i archivo-prueba.txt


Y con esto ya podremos eliminarlos o modificarlos. Echadle un vistazo a los demás atributos, seguro que encontráis algo útil.

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito

También en Hipertextual:

One reply on “Chattr: haz intocables tus archivos importantes en Linux”

Los comentarios están cerrados.