IOCTL_IFLAGS(2) Manuel du programmeur Linux IOCTL_IFLAGS(2)

ioctl_iflags - opérations ioctl() pour les drapeaux d'inœud

Divers systèmes de fichiers sous Linux prennent en charge la notion de drapeaux d'inœud – des attributs qui modifient la sémantique des fichiers et des répertoires. Ces attributs peuvent être récupérés et modifiés en utilisant deux opérations ioctl(2) :


int attr;
fd = open("pathname", ...);
ioctl(fd, FS_IOC_GETFLAGS, &attr);  /* Positionner les drapeaux actuels
                                       dans 'attr' */
attr |= FS_NOATIME_FL;              /* Modifier le masque de bits renvoyé */
ioctl(fd, FS_IOC_SETFLAGS, &attr);  /* Mettre à jour les drapeaux pour
                                       l'inœud auquel renvoie 'fd' */

Les commandes lsattr(1) et chattr(1) fournissent des interfaces avec ces deux opérations, permettant à l'utilisateur de voir et de modifier les drapeaux d'inœud associés à un fichier.

Les drapeaux suivants sont pris en charge (présentés ci-dessous avec la lettre correspondante à utiliser pour indiquer le drapeau avec lsattr(1) et chattr(1)) :

FS_APPEND_FL 'a'
Le fichier ne peut être ouvert qu'avec le drapeau O_APPEND (cette restriction s'applique même au superutilisateur). Seul un processus privilégié (CAP_LINUX_IMMUTABLE) peut positionner ou effacer l'attribut.
FS_COMPR_FL 'c'
Stocker le fichier dans un format compressé sur le disque. Cet attribut n'est pas géré par la plupart des implémentations de systèmes de fichiers en vogue, sauf btrfs(5).
FS_DIRSYNC_FL 'D' (depuis Linux 2.6.0)
Écrire les modifications de répertoire de manière synchronisée sur le disque. Ce drapeau fournit une sémantique équivalente à l'option MS_DIRSYNC de mount(2), mais sur une base individuelle à un répertoire. Ce drapeau ne peut être appliqué qu'à des répertoires.
FS_IMMUTABLE_FL 'i'
The file is immutable: no changes are permitted to the file contents or metadata (permissions, timestamps, ownership, link count, and so on). (This restriction applies even to the superuser.) Only a privileged process (CAP_LINUX_IMMUTABLE) can set or clear this attribute.
FS_JOURNAL_DATA_FL 'j'
Activer la journalisation des fichiers sur les systèmes de fichiers ext3(5) et ext4(5). Sur un système de fichiers effectuant une journalisation en mode ordered ou writeback, un processus privilégié (CAP_SYS_RESOURCE) peut positionner ce drapeau pour activer la journalisation des mises à jour des données sur une base individuelle à un fichier.
FS_NOATIME_FL 'A'
Ne pas mettre à jour la dernière date d'accès du fichier lors d'un accès au fichier. Cela peut apporter de meilleures performances d'E/S pour des applications qui n'ont pas besoin d'un horodatage rigoureux. Ce drapeau fournit une fonctionnalité identique au drapeau MS_NOATIME de mount(2), mais sur une base individuelle à un fichier.
FS_NOCOW_FL 'C' (depuis Linux 2.6.39)
Le fichier ne sera pas sujet aux mises à jour de copie sur écriture. Ce drapeau n'a d'effet que sur les systèmes de fichiers gérant la sémantique de copie sur écriture tels que Btrfs. Voir chattr(1) et btrfs(5).
FS_NODUMP_FL 'd'
Ne pas inclure ce fichier dans les sauvegardes faites avec dump(8).
FS_NOTAIL_FL 't'
Ce drapeau n'est pris en charge que par ReiserFS. Il désactive la fonctionnalité tail-packing de ReiserFS, qui essaie d'empaqueter de petits fichiers (et le fragment de fin de fichiers plus gros) dans le même bloc de disque que les métadonnées du fichier.
FS_PROJINHERIT_FL 'P' (depuis Linux 4.5)
Hériter du quota de l'identifiant du projet. Les fichiers et les sous-répertoires hériteront de l'identifiant du projet du répertoire. Ce drapeau ne peut être appliqué qu'à des répertoires.
FS_SECRM_FL 's'
Marquer le fichier comme faisant partie des suppressions sécurisées. Cette fonctionnalité n'est implémentée par aucun système de fichiers, puisque l'effacement sécurisé d'un fichier d’un média d'enregistrement est étonnamment difficile.
FS_SYNC_FL 'S'
Marquer un fichier comme pouvant faire l'objet de synchronisation de mises à jour. Pour les fichiers, cela rend synchrones toutes les écritures (comme l’étaient toutes les ouvertures de fichier avec le drapeau O_SYNC). Pour les répertoires, cela a le même effet que le drapeau FS_DIRSYNC_FL.
FS_TOPDIR_FL 'T'
Marquer le fichier comme devant faire l'objet d'un traitement spécial dans le cadre de la stratégie d'allocation de blocs Orlov. Voir chattr(1) pour les détails. Ce drapeau ne peut être appliqué qu'à des répertoires et il n'a d'effet que sur ext2, ext3 et ext4.
FS_UNRM_FL 'u'
Permettre au fichier d'être restauré s'il est effacé. Cette fonctionnalité n'est implémentée par aucun système de fichiers, car il est possible d'implémenter des mécanismes de restauration de fichiers en dehors du noyau.

Dans la plupart des cas, lorsqu'un des drapeaux ci-dessus est positionné sur un répertoire, le drapeau est transmis aux fichiers et aux sous-répertoires créés dans ce répertoire. Les exceptions sont FS_TOPDIR_FL, qui ne peut pas être héritier, et FS_DIRSYNC_FL, dont seuls les sous-répertoires peuvent hériter.

Les drapeaux d'inœuds sont une extension non standard de Linux.

Pour modifier les attributs de l'inœud d'un fichier en utilisant l'opération FS_IOC_SETFLAGS, l'UID effectif du processus appelant doit correspondre à celui du propriétaire du fichier, ou l’appelant doit avoir la capacité CAP_FOWNER.

Le type du paramètre donné aux opérations FS_IOC_GETFLAGS et FS_IOC_SETFLAGS est int *, malgré le fait que dans le fichier source include/uapi/linux/fs.h du noyau le paramètre soit long *.

chattr(1), lsattr(1), mount(2), btrfs(5), ext4(5), xfs(5), xattr(7), mount(8)

Cette page fait partie de la publication 5.11 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/.

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-Philippe MENGUAL <jpmengual@debian.org>

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.

19 novembre 2019 Linux