Skip to main content

Atributos extendidos en los ficheros de Linux

Podemos clasificar los atributos extendidos en los de sistema que son los que proporcionan cualidades al archivo  y los de usuario que permiten ampliar la información del archivo. También es aplicable a los directorios.

Atributos extendidos de sistema

Los sistemas de archivos ext2/3/4 permiten asignar a los ficheros unos atributos que modifican las cualidades o el comportamiento de los mismos. No son permisos, pero alguno de ellos realiza una función similar al limitar el poder modificar o eliminar su información. Estos atributos sólo son modificables por el administrador.

Para poder ver los atributos usaremos el comando lsattr:

Los atributos más comunes son:

  • a: sólo append (sólo se pueden agregar datos, no modificar los existentes).
  • A: no atime (no se mantiene la fecha y hora de acceso).
  • d: no dump (se ignora al momento de hacer backups con el programa dump).
  • D: el directorio se sincroniza a disco en cada escritura.
  • i: inmutable (no se puede modificar, sólo renombrar o eliminar).
  • S: el archivo se sincroniza a disco en cada escritura.
  • e: extent, Indica que el archivo está utilizando extents para mapear los bloques en disco.

Para modificar un atributo se utiliza el comando chattr conjuntamente con “+[atributo]” o “-[atributo]” para añadirlo o eliminarlo.

Por ejemplo si queremos que no se pueda borrar o modificar el archivo prueba.txt:

chattr +i prueba.txt

Atributos extendidos de usuario

Estos atributos no tienen ninguna influencia en los permisos de ficheros, añaden pares de clave-valor a los ficheros.

Para poder utilizarlos es necesario haber instalado el paquete attr y que el sistema de ficheros haya sido montado con la opción user_xattr.

Para añadir o quitar atributos usaremos el comando attr con las siguientes opciones:

  • -ql: Lista todos los atributos
  • -qs: Añade/Modifica atributos
  • -qg: Muestra el valor de un atributo
  • -qr: Elimina atributos

Por ejemplo añadamos el atributo “autor” al archivo fichero1.txt:

attr -qs autor -V “Etaboada” fichero1.txt

Preservar los atributos extendidos

Debemos tener en cuenta que alguna de las operaciones que se realizan con los ficheros pueden eliminar los atributos extendidos, para evitarlo hay que agregar opciones especificas al comando:

cp

–preserve=mode,ownership,timestamps,xattr

mv

Los preserva por defecto a excepción de que el destino no permita atributos extendidos

tar

–xattrs (para creación y extracción)

bsdtar

-p (para extracción)

rsync

–xattrs