xattr

XATTR(7)                   Manuel du programmeur Linux                  XATTR(7)



NOM
       xattr – Attributs étendus

DESCRIPTION
       Les attributs étendus sont des paires nom:valeur associées de façon
       permanente à des fichiers ou des répertoires, de manière similaire aux
       chaînes d’environnement associées à un processus. Un attribut peut être
       défini ou non. S’il l’est, sa valeur peut être absente ou non.

       Les attributs étendus sont des extensions aux attributs normaux qui sont
       associés à tous les inœuds (inode) du système (c’est-à-dire les données
       stat(2)). Il sont souvent utilisés pour fournir des fonctionnalités
       supplémentaires à un système de fichiers, par exemple, des fonctions de
       sécurité telles que les listes de contrôle d’accès (ACL) peuvent être
       mises en œuvre en utilisant les attributs étendus.

       Les utilisateurs ayant le droit de recherche pour un fichier ou un
       répertoire peuvent utiliser listxattr(2) pour récupérer une liste des
       noms des attributs définis pour ce fichier ou ce répertoire.

       Les attributs étendus sont obtenus sous forme d’objets atomiques. Leur
       lecture (getxattr(2)) récupère en entier la valeur d’un attribut et la
       stocke dans un tampon. Leur écriture (setxattr(2)) remplace toute valeur
       précédente par sa nouvelle valeur.

       L’espace utilisé pour les attributs étendus peut être décompté des quotas
       de disque du propriétaire du fichier ou du groupe de fichiers.

   Espaces de noms des attributs étendus
       Les noms d’attribut sont des chaînes terminées par NULL. Le nom
       d’attribut est toujours indiqué sous la forme complète
       espace_de_noms.attribut, par exemple, user.mime_type, trusted.md5sum,
       system.posix_acl_access ou security.selinux.

       Le mécanisme d’espace de noms est utilisé pour définir des classes
       différentes d’attributs étendus. Ces classes existent pour plusieurs
       raisons. Par exemple, les permissions et les capacités nécessaires pour
       manipuler les attributs étendus peuvent différer d’un espace de noms à un
       autre.

       Actuellement les classes d’attributs étendus security, system, trusted et
       user sont définies comme décrites ci-après. De nouvelles classes pourront
       être ajoutées dans le futur.

   Attributs étendus de sécurité
       L’espace de noms des attributs de sécurité est utilisé par les modules de
       sécurité du noyau, tels que Security Enhanced Linux et mettent en œuvre
       des capacités de fichier (consultez capabilities(7)). Les permissions de
       lecture et écriture des attributs de sécurité dépendent de la politique
       mise en œuvre pour chaque attribut de sécurité par le module de sécurité.
       Quand aucun module de sécurité n’est chargé, tous les processus ont
       l’accès en lecture des attributs étendus de sécurité et l’accès en
       écriture est limité aux processus qui ont la capacité CAP_SYS_ADMIN.

   attributs étendus du système
       Les attributs étendus du système sont utilisés par le noyau pour stocker
       des objets du système tels que les ACL (Access Control List).  L’accès en
       lecture et écriture dépend de la politique mise en œuvre pour chaque
       attribut du système implémenté par les systèmes de fichiers dans le
       noyau.

   Attributs étendus fiables
       Les attributs étendus fiables (trusted) sont visibles et accessibles
       uniquement aux processus qui ont la capacité CAP_SYS_ADMIN. Les attributs
       de cette classe sont utilisés pour implémenter des mécanismes en espace
       utilisateur (c’est-à-dire en dehors du noyau) qui conserve l’information
       dans des attributs étendus auxquels les processus ordinaires ne devraient
       pas avoir accès.

   Attributs étendus d’utilisateur
       Les attributs étendus d’utilisateur peuvent être assignés à des fichiers
       et des répertoires pour stocker des informations arbitraires
       supplémentaires telles que le type MIME, le jeu de caractères ou
       l’encodage du fichier. Les permissions d’accès pour les attributs
       d’utilisateur sont définis par les bits de permissions de fichier : la
       permission de lecture est nécessaire pour récupérer la valeur d’attribut
       et la permission d’écriture est nécessaire pour la modifier.

       Les bits de permission des fichiers normaux et des répertoires sont
       interprétés différemment des bits de permission de fichiers spéciaux et
       de liens symboliques. Pour les fichiers normaux et les répertoires, les
       bits de permission définissent l’accès aux contenus de fichier tandis que
       pour les fichiers spéciaux ils définissent l’accès au périphérique décrit
       par le fichier spécial. Les permissions de fichier des liens symboliques
       ne sont pas utilisées dans les vérifications d’accès. Ces différences
       pourraient permettre d’utiliser des ressources de système de fichiers
       d’une façon non contrôlable par les quotas de disque pour le groupe ou
       pour les fichiers spéciaux ou les répertoires accessibles à tous.

       Pour cette raison, les attributs étendus d’utilisateur sont autorisés
       pour les fichiers normaux et les répertoires, et l’accès aux attributs
       étendus d’utilisateur est restreint au propriétaire et aux utilisateurs
       avec les capacités appropriées pour les répertoires avec le bit sticky
       défini (consultez la page de manuel de chmod(1) pour une explication sur
       le bit sticky).

   Différences entre systèmes de fichiers
       Le noyau et le système de fichiers peuvent poser des limites sur le
       nombre maximal et la taille des attributs étendus pouvant être associés à
       un fichier. Le système de fichiers virtuel (VFS) impose comme limitations
       pour un nom d’attribut 255 octets et 64 ko pour sa valeur. La liste des
       noms d’attribut qui peut être renvoyée est aussi limitée à 64 ko
       (consultez la section BOGUES dans listxattr(2)).

       Certains systèmes de fichiers, tel Reiserfs (et, historiquement, ext2 et
       ext3), exigent que le système de fichiers soit monté avec l’option de
       montage user_xattr pour pouvoir utiliser les attributs étendus
       d’utilisateur.

       Dans les implémentations actuelles de systèmes de fichiers ext2, ext3 et
       ext4, le total des octets utilisés par les noms et valeurs de tous les
       attributs étendus de fichier doivent loger dans un seul bloc du système
       de fichiers (1024, 2048 ou 4096 octets, en fonction de la taille de bloc
       spécifiée lors de la création du système de fichiers).

       Dans les implémentations de système de fichiers Btrfs, XFS et Reiserfs,
       il n’existe pas dans la pratique de limite sur le nombre d’attributs
       étendus associés à un fichier et les algorithmes utilisés pour stocker
       les informations d’attributs étendus sur le disque sont
       redimensionnables.

       Dans les implémentations de système de fichiers JFS, XFS et Reiserfs, la
       limite pour les octets utilisés dans une valeur d’attribut étendu est le
       plafond imposé par le système de fichiers virtuel (VFS).

       Dans l’implémentation du système de fichiers Btrfs, le total des octets
       utilisés pour le nom, la valeur et les octets d’en-tête de
       l’implémentation est limité à la valeur nodesize du système de fichiers
       (16 ko par défaut).

CONFORMITÉ
       Les attributs étendus ne sont pas mentionnés dans POSIX.1, mais certains
       autres systèmes (par exemple, les BSD et Solaris) fournissent une
       fonctionnalité semblable.

NOTES
       Puisque les systèmes de fichiers pour lesquels les attributs étendus sont
       stockés peuvent être aussi utilisés sur des architectures avec un ordre
       pour les octets différents et une taille de mot de la machine différente,
       une attention devrait être portée à stocker les valeurs d’attribut dans
       un format indépendant de l’architecture.

       Cette page était précédemment appelée attr(5).

VOIR AUSSI
       attr(1), getfattr(1), setfattr(1), getxattr(2), ioctl_iflags(2),
       listxattr(2), removexattr(2), setxattr(2), acl(5), capabilities(7),
       selinux(8)

COLOPHON
       Cette page fait partie de la publication 5.13 du projet man-pages Linux.
       Une description du projet et des instructions pour signaler des anomalies
       et la dernière version de cette page peuvent être trouvées à l'adresse
       https://www.kernel.org/doc/man-pages/.


TRADUCTION
       La traduction française de cette page de manuel a été créée par
       Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin
       <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>,
       François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe
       Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-
       luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas
       Huriaux <thomas.huriaux@gmail.com>, Nicolas François
       <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>,
       Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier
       <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Paul
       Guillonneau <guillonneau.jeanpaul@free.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la GNU General Public License version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant les conditions de
       copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,
       veuillez envoyer un message à debian-l10n-french@lists.debian.org ⟨⟩.




Linux                              9 juin 2020                          XATTR(7)