Provided by: manpages-fr_4.26.0-1_all 

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).
STANDARDS
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), FS_IOC_GETFLAGS(2const), FS_IOC_SETFLAGS(2const),
listxattr(2), removexattr(2), setxattr(2), acl(5), capabilities(7), selinux(8)
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 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.
Pages du manuel de Linux 6.9.1 13 juin 2024 xattr(7)