Attributs étendus

Attributs étendus

En informatique, les attributs étendus (EA - Extended Attributes) sont une fonctionnalité du système de fichiers.

On distingue en fait les attributs dits réguliers, réservés à l'usage du système de fichiers lui-même, des attributs dits étendus, qui en sont une extension. Ces derniers permettent à l'utilisateur d'un système de fichier d'associer des métadonnées, autrement dit un certain nombre d'informations supplémentaires, à un inode. Ils peuvent être de divers types, et sont utilisés, par exemple, pour stocker l'auteur d'un document, l'encodage des caractères d'un document texte, ou encore une somme de contrôle.

Sommaire

Fonctionnement

Au contraire des attributs réguliers, les attributs étendus ne sont pas interprétés par le système de fichiers, mais sont stockés et gérés séparément. Tout attribut étendu est identifié par une paire (nom:valeur) qui permet la manipulation des informations stockées. Les attributs étendus sont généralement limités en taille, mais ces limitations sont dépendantes du système de fichier utilisé et de sa configuration.

Pour des informations plus précises, se reporter à la documentation des systèmes de fichiers.

Quotas

L'espace occupé par les attributs étendus est effectivement pris en compte dans les quotas. Lorsque un utilisateur a atteint son quota, les attributs étendus ne peuvent plus être modifiés car cette opération nécessite de créer un nouveau bloc de donnée puis de libérer l'ancien bloc.

Support

Certains systèmes de fichiers nécessitent des options de montage particulières pour activer le support des attributs étendus.

Implementations

FreeBSD

À partir de FreeBSD 5.0, les systèmes de fichiers UFS1 et UFS2 incluent les attributs étendus pour tout fichier régulier. Depuis FreeBSD 8.0, les attributs étendus sont également supportés par le système de fichier ZFS. Chaque attribut est constitué d'un nom et de données associées. Le nom doit être une chaîne de caractères se terminant par un octet nul, et faire partie d'un espace de nommage identifié par un chiffre entier court. A l'heure actuelle, les deux espaces de nommage disponibles sont utilisateur (user) et système (system).

L'espace de nommage utilisateur n'a aucune restriction quant aux noms ou aux contenus utilisés.

L'espace de nommage système est principalement utilisé par le noyau pour les listes de contrôles d'accès (ACL).

Linux

Sous Linux, les systèmes de fichiers ext2, ext3, ext4, JFS, ReiserFS, XFS, Btrfs et OCFS2 1.6 incluent le support pour les attributs étendus. Abrégés xattr, cette fonctionnalité doit toutefois être activée dans la configuration du noyau (libattr). Tout fichier régulier peut disposer d'attributs étendus, chacun d'entre eux étant constitué d'un nom et de données associées. Le nom doit être une chaîne de caractères se terminant par un octet nul, et faire partie d'un espace de nommage parmi utilisateur (user), fiabilité (trusted), sécurité (security) and et système (system).

L'espace de nommage utilisateur n'a aucune restriction quant aux noms ou aux contenus.

L'espace de nommage système est principalement utilisé par le noyau pour les listes des contrôles d'accès (ACL).

L'espace de nommage sécurité est utilisé par exemple par SELinux.

Les attributs étendus ne sont pas couramment utilisés par les programme de l'Espace_utilisateur, malgré qu'ils soient supportés depuis le noyau 2.6[1]. Néanmoins, les logiciels Beagle et Dropbox utilisent déjà les attributs étendus, d'autre part freedesktop.org a recommandé officiellement leur utilisation.

Mac OS X

Mac OS X 10.4 (et versions suivantes) proposent les attributs étendus grâce aux fonctionnalités du système de fichier HFS+, en l'occurrence le concept de fork. Ce concept ne permet toutefois pas de stocker plus de données que ne peut contenir le nœud d'un Arbre_B. A tout fichier régulier peuvent être associés des attributs étendus. HFS+ supporte un nombre déterminé de fork, mais on ne sais pas vraiment si Mac OS impose une limite au nombre d'attributs étendus. Chaque attribut est caractérisé par un nom et des données associés. Le nom est une chaîne de caractères Unicode se terminant par un octet nul.

L'interface de programmation de Mac OS X supporte les opérations de listing[2], getting[3], setting[4], et removing[5] des attributs étendus pour les fichiers et dossiers. L'utilitaire xattr peut être utilisé depuis un terminal[6]. Depuis MacOS 10.6, les attributs étendus de l'espace utilisateur ne sont pas préservés ne sont pas sauvegardés par la plupart des applications Cocoa (TextEdit, Preview etc...).

OpenBSD

Le système d'exploitation OpenBSD supporte les attributs étendus. Dénommés flags, on peut les manipuler avec la commande chflags.

Solaris

Le système d'exploitation Solaris, à partir de la version 9, permet d'associer des attributs étendus aux fichiers, qui sont en fait des fork. En interne, ils sont en fait stockés et accédés comme des fichiers normaux: ils ne peuvent donc contenir le caractère "/" mais leur taille est illimitée. Les propriétaires et permissions peuvent également différer de celles fichiers associés.

La version 4 du Network File System supporte les attributs étendus de manière similaire à Solaris.

OS/2

Concernant OS/2 version 1.2 (et suivantes), le HPFS a été conçu initialement avec le support des attributs étendus, mais le support a également permit d'améliorer la FAT du système de fichier de DOS. Pour la compatibilité avec les autres systèmes utilisant des partitions FAT, les attributs OS/2 sont stockés dans un fichier unique "EA DATA. SF" situé dans le dossier racine. Ce fichier est normalement inaccessible lorsque un système d'exploitation supportant les attributs étendus accède au disque, mais peut être manipulé sous DOS par exemple.

Windows NT

Windows NT supporte les attributs étendus dans la FAT et le système de fichiers HPFS de manière similaire au système d'exploitation OS/2. Le système de fichiers NTFS a egalement été conçu pour les stocker, tels des fork de fichiers, afin de satisfaire le système OS/2 subsystem. Les attributs étendus OS/2 y sont accessibles aux programmes OS/2 de manière similaire, ainsi qu'aux programmes Windows grâce au appels systèmes BackupRead et BackupWrite. Les attributs étendus sont notablement utilisés par le serveur NFS du système POSIX Interix pour implémenter les permissions Unix.

Voir aussi

References

  1. le support pour les ACL et les attributs étendus a été introduit dans RHEL-3 en Octobre 2003 (www.redhat.com) (le patch existait déjà, mais officellement dans le noyau 2.6 sorti en Decembre 2003)
  2. (en) page de manuel listxattr pour Mac OS X
  3. (en) page de manuel getxattr pour Mac OS X
  4. (en) page de manuel setxattr pour Mac OS X
  5. (en) page de manuel removexattr pour Mac OS X
  6. (en) le paquet Python standard sur OS X, qui inclue l'utilitaire xattr

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Attributs étendus de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • XML Process Definition Language — XPDL (XML Process Definition Language ou langage (dérivé du) XML de définition de processus). C’est un standard de la Workflow Management Coalition qui permet de définir un processus métier ou processus d affaires à l aide du langage XML,… …   Wikipédia en Français

  • XPDL — XML Process Definition Language XPDL (XML Process Definition Language ou langage (dérivé du) XML de définition de processus). C’est un standard de la Workflow Management Coalition qui permet de définir un processus métier ou processus d affaires… …   Wikipédia en Français

  • SELinux — Security Enhanced Linux, abrégé SELinux, est un Linux security module (LSM), qui permet de définir une politique de contrôle d accès obligatoire aux éléments d un système basé sur Linux. Son architecture dissocie l application de la politique d… …   Wikipédia en Français

  • SE Linux — SELinux Security Enhanced Linux, abrégé SELinux, est un Linux security module (LSM), qui permet de définir une politique de contrôle d accès obligatoire aux éléments d un système basé sur Linux. Initié par la NSA sur la base de travaux menés avec …   Wikipédia en Français

  • Security-Enhanced Linux — SELinux Security Enhanced Linux, abrégé SELinux, est un Linux security module (LSM), qui permet de définir une politique de contrôle d accès obligatoire aux éléments d un système basé sur Linux. Initié par la NSA sur la base de travaux menés avec …   Wikipédia en Français

  • Security Enhanced Linux — SELinux Security Enhanced Linux, abrégé SELinux, est un Linux security module (LSM), qui permet de définir une politique de contrôle d accès obligatoire aux éléments d un système basé sur Linux. Initié par la NSA sur la base de travaux menés avec …   Wikipédia en Français

  • Selinux — Security Enhanced Linux, abrégé SELinux, est un Linux security module (LSM), qui permet de définir une politique de contrôle d accès obligatoire aux éléments d un système basé sur Linux. Initié par la NSA sur la base de travaux menés avec SCC et… …   Wikipédia en Français

  • AppArmor — (Application Armor) est un logiciel de sécurité pour Linux édité sous Licence publique générale GNU. AppArmor permet à l administrateur système d associer à chaque programme un profil de sécurité qui restreint ses accès au système d exploitation …   Wikipédia en Français

  • JFS2 — (pour Journaled File System 2) est un système de fichiers journalisé mis au point par IBM et disponible sous licence GPL. Depuis AIX version 5.1, JFS2 est proposé en plus de JFS comme système de fichiers Ses avantages et améliorations depuis JFS… …   Wikipédia en Français

  • ZETA — Pour les articles homonymes, voir Zeta (homonymie). ZETA est un système d exploitation de la société allemande YellowTAB. Il se veut une évolution de BeOS. Sommaire 1 Historique 2 …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”