5.4. Atributos

Los sistemas de archivos permiten asociar a cada archivo un conjunto de atributos, que tienen diversa utilidad.

5.4.1. Atributos extendidos

Un atributo extendido es una pareja clave/valor asociada a un determinado archivo. La mayor parte de los sistemas de archivos utilizados en Linux los soportan. Existen cuatro tipos (cada uno asociado a un espacio de nombres distinto):

Atributos extendidos de seguridad (security)

Son atributos que se utilizan para los módulos de seguridad del kernel como SELinux o para implementar las capacidades.

Atributos extendidos de sistema (system):

Se utilizan para implementar las ACL, por lo que se manipulan a través de las herramientas propias de manipulación de listas de control de acceso.

Atributos extendidos de confianza (trusted):

Son atributos solamente accesibles para los procesos que tiene la capacidad CAP_SYS_ADMIN.

Atributos extendidos de usuario (user):

Son atributos definidos a volutad por el usuario sobre archivos regulares y directorios. Son estos atributos a los que dedicaremos el epígrafe.

Ver también

Para más información consulte la página de manual de xattr(7).

Para poder definidor atributos extendidos de usuarios se precisan dos requisitos:

  • Que el sistema de archivos los soporte y los tenga habilitados (lo cual es lo habitual en sistemas de archivos modernos):

    $ grep xattr /proc/fs/ext4/sda1/options
    user_xattr
    
  • Tener instalado el paquete attr:

    # apt install attr
    

El paquete proporciona las herramientas básicas para manipular los atributos extendidos de usuario:

attr

Consulta y define (exclusivamente) archivos extendidos de usuarios:

$ touch archivo
$ attr -qs autor -V "Perico de los Palotes" archivo
$ attr -qs desc -V "Un archivo vacio" archivo

Esto ha fijado dos atributos: autor y desc (de descripción). Los atributos son arbitrarios, así que pueden usarse cualquier nombre. Podemos consultados también con attr:

$ attr -ql archivo
autor
desc
$ attr -qg autor archivo
Perico de los Palotes

También pueden borrarse atributos ya creados:

$ attr -qr autor archivo
$ attr -ql archivo
desc

Nota

Dado que la orden sólo manipula atributos extendidos de usuario, se prescinde por completo de la expresión del espacio de nombres user, que es dentro del cual se definen este tipo de atributos extendidos

El paquete attr también incluye los programas setfattr y getfattr, que permiten fijar, borrar y consultar permisos.

Advertencia

Cuando se usan setfattr y getfattr a los nombres de los atributos se les debe añadir la expresión del espacio de nombres user: user.autor, user.desc, etc.

5.4.2. Atributos de archivo

Cada archivo de ext4 tiene asociado un conjunto de flags, que reciben el nombre de atributos de archivo y que afectan al comportamiento según se activen o desactiven. No son en modo alguno permisos, aunque alguno de estos atributos influye en la capacidad del usuario para modificar o eliminar su información. Para manipularlos es necesario ser administrador.

lsattr

Sirve para comprobar cuáles son los atributos que tiene asignados el archivo:

$ lsattr archivo
-------------e-- archivo

Sólo tiene activo el atributo e[1].

chattr

Permite modificar el atributo con un signo + para activarlo y con un signo menos para desactivarlo. Por ejemplo, para hacer inmutable el archivo (lo cual implica que sea imborrable):

# chattr +i archivo
# lsaatr archivo
----i--------e-- archivo

Hecho esto, será imposible alterar de forma alguna el archivo, incluso siendo administrador:

# rm archivo
rm: no se puede borrar «archivo»: Operación no permitida
# echo "GGGGG" >> archivo
-su: archivo: Permiso denegado

Notas al pie