Atributos de archivo extendidos - Extended file attributes

Los atributos de archivo extendidos son características del sistema de archivos que permiten a los usuarios asociar archivos de computadora con metadatos no interpretados por el sistema de archivos, mientras que los atributos regulares tienen un propósito estrictamente definido por el sistema de archivos (como permisos o registros de tiempos de creación y modificación). A diferencia de las bifurcaciones , que generalmente pueden ser tan grandes como el tamaño máximo de archivo, los atributos extendidos generalmente tienen un tamaño limitado a un valor significativamente menor que el tamaño máximo de archivo. Los usos típicos incluyen el almacenamiento del autor de un documento, la codificación de caracteres de un documento de texto sin formato o una suma de verificación , hash criptográfico o certificado digital e información de control de acceso discrecional .

En sistemas similares a Unix, los atributos extendidos generalmente se abrevian como xattr .

Implementaciones

AIX

En AIX , el sistema de archivos JFS2 v2 da soporte a atributos ampliados, a los que se puede acceder mediante el mandato getea . Las API getea , setea , listea , statea y removeea admiten la obtención , configuración, listado, obtención de información y eliminación de atributos extendidos.

BeOS / Haiku

En el ahora desaparecido BeOS y sucesores como Haiku , los atributos de archivo extendidos se utilizan ampliamente en programas básicos y de terceros. El sistema de archivos Be permite la indexación y consulta de atributos, dando esencialmente el sistema de archivos de base de datos -como características. Los usos de los atributos extendidos en los sistemas Be-like son variados: por ejemplo, Tracker y OpenTracker , los administradores de archivos de BeOS y Haiku respectivamente, almacenan las ubicaciones de los íconos de archivos en atributos, el servicio "Correo" de Haiku almacena todo el contenido del mensaje y metadatos en atributos de archivo extendidos y los tipos de archivos MIME se almacenan en sus atributos. Los atributos de archivo extendidos se pueden ver y editar en la GUI de los sistemas Be-like a través del administrador de archivos, a menudo Tracker o sus derivados.

FreeBSD

En FreeBSD 5.0 y posteriores, los sistemas de archivos UFS1 , UFS2 y ZFS admiten atributos extendidos, utilizando la familia extattr_ de llamadas al sistema. Cualquier archivo normal puede tener una lista de atributos extendidos. Cada atributo consta de un nombre y los datos asociados. El nombre debe ser una cadena terminada en nulo y existe en un espacio de nombres identificado por un identificador de espacio de nombres de número entero pequeño. Actualmente, existen dos espacios de nombres: usuario y sistema. El espacio de nombres de usuario no tiene restricciones en cuanto a nombres o contenidos. El kernel utiliza principalmente el espacio de nombres del sistema para las listas de control de acceso y el control de acceso obligatorio .

Linux

En Linux , los sistemas de archivos ext2 , ext3 , ext4 , JFS , Squashfs , UBIFS , Yaffs2 , ReiserFS , Reiser4 , XFS , Btrfs , OrangeFS , Lustre , OCFS2 1.6 , ZFS y F2FS admiten atributos extendidos (abreviado xattr ) cuando están habilitados en el kernel configuración. Cualquier archivo o directorio normal puede tener atributos extendidos que consisten en un nombre y datos asociados. El nombre debe ser una cadena terminada en nulo precedida por un identificador de espacio de nombres y un carácter de punto. Actualmente, existen cuatro espacios de nombres: usuario, confiable, seguridad y sistema. El espacio de nombres de usuario no tiene restricciones en cuanto a nombres o contenidos. El kernel utiliza principalmente el espacio de nombres del sistema para las listas de control de acceso . SELinux , por ejemplo, utiliza el espacio de nombres de seguridad .

El soporte para el concepto de atributo extendido de un borrador POSIX.1e que se había retirado en 1997 se agregó a Linux alrededor de 2002. A partir de 2016, aún no están en uso generalizado por los programas de Linux del espacio de usuario, pero Beagle , OpenStack los usa Swift , Dropbox , el marco de metadatos semánticos de KDE (Baloo), Chromium , Wget y cURL .

El núcleo de Linux permite atributo extendido para tener nombres de hasta 255 bytes y valores de hasta 64 KIB, al igual que XFS y ReiserFS , pero ext2 / 3 / 4 y btrfs imponer límites mucho más pequeñas, que requiere que todos los atributos (nombres y valores) de un archivo para que quepa en un "bloque de sistema de archivos" (generalmente 4 KiB). Según POSIX.1e, se requiere que los nombres comiencen con uno de seguridad , sistema , confiable y usuario más un punto. Esto define los cuatro espacios de nombres de atributos extendidos.

Se puede acceder a los atributos extendidos y modificarlos usando los comandos getfattry setfattrdel attrpaquete en la mayoría de las distribuciones. Las API se denominan getxattry setxattr.

Mac OS

Mac OS X 10.4 y versiones posteriores admiten atributos extendidos mediante el uso de la función de árbol B * de Atributos del sistema de archivos HFS + que permite bifurcaciones con nombre. Aunque las bifurcaciones nombradas en HFS + admiten cantidades arbitrariamente grandes de datos a través de extensiones, el soporte del sistema operativo para atributos extendidos solo admite atributos en línea, lo que limita su tamaño a lo que puede caber dentro de un solo nodo de árbol B *. Cualquier archivo normal puede tener una lista de atributos extendidos. HFS + admite una cantidad arbitraria de bifurcaciones con nombre y se desconoce si macOS impone algún límite en la cantidad de atributos extendidos.

Cada atributo consta de un nombre y los datos asociados. El nombre es una cadena Unicode terminada en nulo . No existen restricciones de espacio de nombres (lo que lo convierte en un sistema xattr abierto ) y la convención es utilizar una cadena DNS inversa (similar a los identificadores de tipo uniforme ) como nombre de atributo.

macOS admite enumerar, obtener, configurar y eliminar atributos extendidos de archivos o directorios mediante una API similar a Linux. Desde la línea de comandos, estas habilidades se exponen a través de la utilidad xattr .

Desde macOS 10.5, los archivos que se originan en la web se marcan con com.apple.quarantineatributos de archivo extendidos. En algunas versiones anteriores de macOS (como Mac OS X 10.6 ), los atributos extendidos del espacio de usuario no se conservaban al guardar en aplicaciones comunes de Cocoa (TextEdit, Preview, etc.).

OpenBSD

El soporte para atributos de archivo extendidos se eliminó del código fuente de OpenBSD en 2005 debido a la falta de interés en las listas de control de acceso .

OS / 2

En OS / 2 versión 1.2 y posteriores, el sistema de archivos de alto rendimiento se diseñó teniendo en cuenta los atributos extendidos, pero el soporte para ellos también se instaló en el sistema de archivos FAT de DOS. Para compatibilidad con otros sistemas operativos que utilizan una partición FAT, los atributos de OS / 2 se almacenan dentro de un único archivo " EA DATA. SF" ubicado en el directorio raíz. Este archivo es normalmente inaccesible cuando un sistema operativo que soporta atributos extendidos administra el disco, pero se puede manipular libremente bajo, por ejemplo, DOS. Los archivos y directorios que tienen atributos extendidos utilizan uno o más clústeres dentro de este archivo. El número de grupo lógico del primer grupo utilizado se almacena dentro de la entrada del directorio del directorio o del archivo propietario . Estos dos bytes se utilizan para otros fines en el sistema de archivos FAT32 y, por lo tanto, los atributos extendidos de OS / 2 no se pueden almacenar en este sistema de archivos.

Partes de OS / 2 versión 2.0 y posteriores, como Workplace Shell, utilizan varios atributos extendidos estandarizados (también llamados EA ) para propósitos como identificar el tipo de archivo, comentarios, íconos de computadora y palabras clave sobre el archivo. Los programas escritos en el lenguaje interpretado Rexx almacenan una versión ya analizada del código como un atributo extendido, para permitir una ejecución más rápida.

Solaris

Solaris versión 9 y posteriores permiten que los archivos tengan "atributos extendidos", que en realidad son bifurcaciones ; el tamaño máximo de un "atributo extendido" es el mismo que el tamaño máximo de un archivo, y se leen y escriben de la misma forma que los archivos. Internamente, en realidad se almacenan y se accede a ellos como archivos normales, por lo que sus nombres no pueden contener caracteres "/" y su propiedad y permisos pueden diferir de los del archivo principal.

La versión 4 del sistema de archivos de red admite atributos ampliados de la misma forma que Solaris.

Windows NT

En Windows NT , los atributos extendidos de longitud limitada son compatibles con FAT , HPFS y NTFS . Esto se implementó como parte del subsistema OS / 2 . En particular, son utilizados por el servidor NFS del subsistema Interix POSIX para implementar permisos similares a Unix. El Subsistema de Windows para Linux agregado en la Actualización de aniversario de Windows 10 los usa para propósitos similares, almacenando el modo de archivo de Linux, el propietario, la ID del dispositivo (si corresponde) y la hora del archivo en los atributos extendidos.

Además, NTFS puede almacenar atributos extendidos de longitud arbitraria en forma de flujos de datos alternativos (ADS), un tipo de bifurcación de recursos . Complementos para el administrador de archivos Total Commander , como descripciones de NTFS y QuickSearch eXtended, permiten filtrar la lista de archivos o buscar metadatos contenidos en ADS. NTFS-3G admite la asignación de ADS a atributos extendidos en FUSE ; también asigna atributos de archivo de esa manera.

Ver también

Referencias