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'
- Le fichier est immuable : aucune modification du contenu ou des
métadonnées du fichier n'est autorisée (droits,
horodatage, propriété, nombre de liens et ainsi de suite)
(cette restriction s'applique même au superutilisateur). Seul un
processus privilégié (CAP_LINUX_IMMUTABLE) peut
positionner ou effacer cet attribut.
- 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)
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.