Los atributos de archivo extendidos son características del sistema de archivos que permiten a los usuarios asociar archivos informáticos con metadatos no interpretados por el sistema de archivos, mientras que los atributos regulares tienen una finalidad estrictamente definida por el sistema de archivos (como permisos o registros de fechas de creación y modificación). A diferencia de las bifurcaciones , que generalmente pueden alcanzar el tamaño máximo del archivo, los atributos extendidos suelen tener un tamaño limitado a un valor significativamente menor que el tamaño máximo del archivo. Entre sus usos típicos se incluyen el almacenamiento del autor de un documento, la codificación de caracteres de un documento de texto plano, una suma de comprobación , un hash criptográfico o un certificado digital , así como información de control de acceso discrecional .
En los sistemas tipo Unix , los atributos extendidos suelen abreviarse como xattr . [ 1 ]
Implementaciones
AIX
En AIX , el sistema de archivos JFS2 v2 admite atributos extendidos, a los que se puede acceder mediante el comando getea . [ 2 ] Las API getea , [ 3 ] setea , [ 4 ] listea , [ 5 ] statea , [ 6 ] y removeea [ 7 ] admiten la obtención, configuración, listado, obtención de información sobre y eliminación de atributos extendidos.
BeOS/Haiku
En el ahora desaparecido BeOS y sus sucesores como Haiku , los atributos de archivo extendidos se utilizan ampliamente en programas base y de terceros. El sistema de archivos Be permite la indexación y consulta de atributos, lo que esencialmente le otorga características similares a las de una base de datos . Los usos de los atributos extendidos en sistemas tipo Be son variados: por ejemplo, Tracker y OpenTracker , los gestores de archivos de BeOS y Haiku respectivamente, almacenan las ubicaciones de los iconos de archivo en atributos, [ 8 ] el servicio "Mail" de Haiku almacena todo el contenido y los metadatos de los mensajes en atributos de archivo extendidos, [ 9 ] y los tipos MIME de los archivos se almacenan en sus atributos. Los atributos de archivo extendidos se pueden ver y editar en la GUI de los sistemas tipo Be a través del gestor de archivos, a menudo Tracker o derivados del mismo.
FreeBSD
En FreeBSD 5.0 y posteriores, los sistemas de archivos UFS1 , UFS2 y ZFS admiten atributos extendidos, utilizando la familia de llamadas al sistema extattr_ [ 10 ] . Cualquier archivo regular 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 entero pequeño. Actualmente, existen dos espacios de nombres: usuario y sistema. El espacio de nombres de usuario no tiene restricciones con respecto a la nomenclatura o el contenido. El espacio de nombres del sistema es utilizado principalmente por el kernel para listas de control de acceso y 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 [ 11 ] admiten atributos extendidos (abreviados xattr ) cuando están habilitados en la configuración del kernel. Cualquier archivo o directorio regular 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 con respecto a nombres o contenidos. El espacio de nombres confiable es accesible solo para procesos que tienen la capacidad CAP_SYS_ADMIN, por ejemplo, por el usuario root. El espacio de nombres del sistema es utilizado principalmente por el kernel para listas de control de acceso . El espacio de nombres de seguridad es utilizado por SELinux , por ejemplo.
El soporte para el concepto de atributo extendido de un borrador POSIX.1e que había sido retirado [ 12 ] en 1997 se agregó a Linux alrededor de 2002. [ 13 ] [ 14 ] A partir de 2016, todavía no son de uso generalizado por los programas de Linux en el espacio de usuario, pero son utilizados por Beagle, OpenStack Swift , Dropbox , el marco de metadatos semánticos de KDE (Baloo), Chromium , Wget , cURL y Snapcraft .
El kernel de Linux permite que los atributos extendidos tengan nombres de hasta 255 bytes y valores de hasta 64 KiB, [ 15 ] al igual que XFS y ReiserFS , pero ext2 / 3 / 4 y btrfs imponen límites mucho menores, requiriendo que todos los atributos (nombres y valores) de un archivo quepan en un "bloque del sistema de archivos" (normalmente 4 KiB). Según POSIX.1e, los nombres deben comenzar con uno de los siguientes: security , system , trusted y user, seguido de un punto. Esto define los cuatro espacios de nombres de los atributos extendidos. [ 16 ]
Se puede acceder a los atributos extendidos y modificarlos utilizando los comandos getfattry setfattrdel attrpaquete en la mayoría de las distribuciones. [ 17 ] Las API se llaman getxattry setxattr.
macOS
macOS X 10.4 y versiones posteriores admiten atributos extendidos mediante la función de árbol B* de archivos de atributos del sistema de archivos HFS+ , que permite bifurcaciones con nombre. Si bien las bifurcaciones con nombre en HFS+ admiten cantidades de datos arbitrariamente grandes a través de extensiones, la compatibilidad del sistema operativo con los atributos extendidos solo admite atributos en línea, limitando su tamaño al que cabe dentro de un único nodo del árbol B*. Cualquier archivo regular puede contener una lista de atributos extendidos. HFS+ admite un número arbitrario de bifurcaciones con nombre, y se desconoce si macOS impone algún límite al número 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 de atributos extendidos abierto ) y la convención es usar una cadena DNS inversa (similar a los identificadores de tipo uniforme ) como nombre del atributo.
macOS admite listar, [ 18 ] obtener, [ 19 ] establecer, [ 20 ] y eliminar [ 21 ] atributos extendidos de archivos o directorios mediante una API similar a la de Linux. Desde la línea de comandos, estas capacidades se exponen a través de la utilidad xattr . [ 22 ]
Desde macOS 10.5, los archivos descargados de la World Wide Web se marcan mediante com.apple.quarantineatributos de archivo extendidos. [ 23 ] 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 Cocoa comunes (TextEdit, Vista Previa, 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 . [ 24 ]
Sistema operativo/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 también se añadió compatibilidad con ellos al sistema de archivos FAT de DOS. Para la compatibilidad con otros sistemas operativos que utilizan una partición FAT, los atributos de OS/2 se almacenan en un único archivo " EA DATA. SF" ubicado en el directorio raíz. Este archivo normalmente es inaccesible cuando un sistema operativo que admite atributos extendidos gestiona el disco, pero se puede manipular libremente en, por ejemplo, DOS. Los archivos y directorios con atributos extendidos utilizan uno o más clústeres dentro de este archivo. El número de clúster lógico del primer clúster utilizado se almacena en la entrada de directorio del archivo o directorio propietario . [ 25 ] Estos dos bytes se utilizan para otros fines en el sistema de archivos FAT32, por lo que los atributos extendidos de OS/2 no se pueden almacenar en este sistema de archivos.
Algunas partes de OS/2 versión 2.0 y posteriores, como Workplace Shell, utilizan varios atributos extendidos estandarizados (también llamados EA ) para identificar el tipo de archivo, los comentarios, los iconos del ordenador y las palabras clave relacionadas con el archivo. Los programas escritos en el lenguaje interpretado Rexx almacenan una versión del código ya analizada como 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 manera que los archivos. Internamente, se almacenan y acceden como archivos normales, por lo que sus nombres no pueden contener caracteres "/" [ 26 ] y su propiedad y permisos pueden diferir de los del archivo padre.
La versión 4 del sistema de archivos de red admite atributos extendidos de forma muy similar a como lo hace Solaris.
Windows NT
En Windows NT , los atributos extendidos con nombres de hasta 255 caracteres ASCII y valores de hasta 65535 bytes son compatibles con FAT , [ 25 ] HPFS y NTFS , pero sin compatibilidad a través de la API Win32 . Esto se implementó como parte del subsistema OS/2 . Son utilizados notablemente por el servidor NFS del subsistema POSIX Interix para implementar permisos similares a los de Unix. El Subsistema de Windows para Linux, añadido en la Actualización de Aniversario de Windows 10, los utiliza con fines similares, almacenando el modo de archivo de Linux, el propietario, el ID del dispositivo (si corresponde) y las fechas de los archivos en los atributos extendidos. [ 27 ]
Además, NTFS puede almacenar atributos extendidos de longitud arbitraria en forma de flujos de datos alternativos (ADS), un tipo de bifurcación . Los complementos para el administrador de archivos Total Commander , como NTFS Descriptions y QuickSearch eXtended, admiten el filtrado de la lista de archivos por metadatos contenidos en ADS o la búsqueda de los mismos. [ 28 ] [ 29 ] NTFS-3G admite la asignación de ADS a atributos extendidos en FUSE ; también asigna atributos de archivo de esa manera. [ 30 ]
Véase también
Referencias
- ↑ – Manual del programador de Linux – Descripción general, convenciones y miscelánea
- ↑ "Comando getea" . Documentación de IBM AIX V7.2 . IBM . Consultado el 11 de julio de 2017 .
- ↑ "Subrutina getea" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 1. IBM . Consultado el 11 de julio de 2017 .
- ↑ "subrutina setea" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 2. IBM . Consultado el 11 de julio de 2017 .
- ↑ "listea Subroutine" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 1. IBM . Consultado el 11 de julio de 2017 .
- ↑ "Subrutina statea" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 2. IBM . Consultado el 11 de julio de 2017 .
- ↑ "removeea Subroutine" . Documentación de IBM AIX V7.2: Sistema operativo base y extensiones, volumen 2. IBM . Consultado el 11 de julio de 2017 .
- ↑ "Atributos" . Guía del usuario de Haiku . Haiku, Inc. Consultado el 28 de enero de 2021 .
- ↑ "Taller: Gestión de correos electrónicos" . Guía del usuario de Haiku . Haiku, Inc. Consultado el 28 de enero de 2021 .
- ↑ – Manual de llamadas al sistema de FreeBSD
- ↑ Kim, Jaegeuk (2012-10-05). " [ PATCH 13/16 ] f2fs: agregar funcionalidades xattr y acl" . Recuperado el 2017-07-11 .
- ↑ Schaufler, Casey (30-04-2002). "¿Posix.1e?" . Grupo de noticias : comp.security.unix .
- ↑ "v2.5.3 git commit log" . 2002-02-05 . Consultado el 2017-07-11 .
- ↑ "Notas de la versión de Red Hat Enterprise Linux AS 3 (edición x86)" . Red Hat . 2003. Archivado del original el 9 de julio de 2017. Consultado el 11 de julio de 2017. La
funcionalidad EA (Atributos Extendidos) y ACL (Listas de Control de Acceso) ya está disponible para sistemas de archivos ext3. Además, la funcionalidad ACL está disponible para NFS.
- ↑ "linux/include/uapi/linux/limits.h" . 13 de octubre de 2012. Consultado el 11 de julio de 2017 .
- ↑ – Manual del programador de Linux – Descripción general, convenciones y miscelánea
- ↑ "Comandos para manipular atributos extendidos del sistema de archivos" . GNU Savannah . Consultado el 11 de julio de 2017 .
- ↑ – Manual de llamadas al sistema de Darwin y macOS
- ↑ – Manual de llamadas al sistema de Darwin y macOS
- ↑ – Manual de llamadas al sistema de Darwin y macOS
- ↑ – Manual de llamadas al sistema de Darwin y macOS
- ↑ – Manual de comandos generales de Darwin y macOS
- ↑ "Notas de la versión de Launch Services" . developer.apple.com .
- ↑ Dale Rahn (2005-07-03). "Registro CVS para src/sys/ufs/ufs/Attic/extattr.h" .
- 1 2 Eager, Bob (2000-10-28). "Implementación de atributos extendidos en el sistema de archivos FAT" . Recuperado el 2017-07-11 .
- ↑ – Manual de referencia de estándares, entornos, macros, conjuntos de caracteres y otros aspectos de Solaris 11.4
- ↑ Hammons, Jack (15 de junio de 2016). "Soporte del sistema de archivos WSL" . MSDN . Consultado el 11 de julio de 2017 .
- ↑ "Descripciones NTFS 1.2.1" . TotalCmd.net . Consultado el 16 de abril de 2018 .
- ↑ "QuickSearch eXtended" . TotalCmd.net . Consultado el 16 de abril de 2018 .
- ↑ "Atributos extendidos" . Tuxera . Archivado del original el 14 de agosto de 2020.
- Sistemas de archivos informáticos
- Metadatos