.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2013, Heinrich Schuchardt .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of .\" this manual under the conditions for verbatim copying, provided that .\" the entire resulting derived work is distributed under the terms of .\" a permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume. .\" no responsibility for errors or omissions, or for damages resulting. .\" from the use of the information contained herein. The author(s) may. .\" not have taken the same level of care in the production of this. .\" manual, which is licensed free of charge, as they might when working. .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH FANOTIFY_MARK 2 "1 novembre 2020" Linux "Manuel du programmeur Linux" .SH NOM fanotify_mark \- Ajouter, supprimer ou modifier une marque fanotify sur un objet de système de fichiers .SH SYNOPSIS .nf \fB#include \fP .PP \fBint fanotify_mark(int \fP\fIfanotify_fd\fP\fB, unsigned int \fP\fIflags\fP\fB,\fP \fB uint64_t \fP\fImask\fP\fB, int \fP\fIdirfd\fP\fB, const char *\fP\fIpathname\fP\fB);\fP .fi .SH DESCRIPTION Pour un aperçu de l’interface de programmation fanotify, consultez \fBfanotify\fP(7). .PP \fBfanotify_mark\fP() ajoute, supprime ou modifie une marque fanotify sur un objet de système de fichiers. L’appelant doit avoir le droit de lecture sur l’objet de système de fichiers à marquer. .PP L’argument \fIfanotify_fd\fP est un descripteur de fichier renvoyé par \fBfanotify_init\fP(2). .PP \fIflags\fP est un masque de bits décrivant la modification à réaliser. Il doit contenir exactement une des valeurs suivantes. .TP \fBFAN_MARK_ADD\fP Les événements dans \fImask\fP seront ajoutés au masque de marque (ou au masque ignore). \fImask\fP doit être non vide sinon l’erreur \fBEINVAL\fP surviendra. .TP \fBFAN_MARK_REMOVE\fP Les événements dans l’argument \fImask\fP seront supprimés du masque de marque (ou du masque ignore). \fImask\fP doit être non vide sinon l’erreur \fBEINVAL\fP surviendra. .TP \fBFAN_MARK_FLUSH\fP Supprimer toutes les marques de systèmes de fichiers, de montages ou de répertoires et fichiers du groupe fanotify. Si \fIflags\fP contient \fBFAN_MARK_MOUNT\fP, toutes les marques de montage seront supprimées du groupe. Si \fIflags\fP contient \fBFAN_MARK_FILESYSTEM\fP, toutes les marques de systèmes de fichiers seront supprimées du groupe. Sinon, toutes les marques des répertoires et fichiers seront supprimées. Aucun autre attribut et au plus un des attributs \fBFAN_MARK_MOUNT\fP ou \fBFAN_MARK_FILESYSTEM\fP peut être utilisé avec \fBFAN_MARK_FLUSH\fP. \fImask\fP est ignoré. .PP Si aucune des valeurs précédentes n’est indiquée, ou si plus d’une est indiquée, l’appel échoue avec l'erreur \fBEINVAL\fP. .PP De plus, zéro ou plus des valeurs suivantes peuvent être incluses dans \fIflags\fP (avec une opération OU bit à bit). .TP \fBFAN_MARK_DONT_FOLLOW\fP Si \fIpathname\fP est un lien symbolique, marquer le lien lui\-même, plutôt que le fichier pointé (par défaut, \fBfanotify_mark\fP() déréférence \fIpathname\fP si c’est un lien symbolique). .TP \fBFAN_MARK_ONLYDIR\fP Si l’objet de système de fichiers à marquer n’est pas un répertoire, l’erreur \fBENOTDIR\fP surviendra. .TP \fBFAN_MARK_MOUNT\fP Marquer le point de montage indiqué par \fIpathname\fP. Si \fIpathname\fP n’est pas un point de montage lui\-même, le point de montage contenant \fIpathname\fP sera marqué. Tous les répertoires, sous\-répertoires et fichiers contenus dans le point de montage seront surveillés. Les événements qui exigent que les systèmes de fichiers soient identifiés par des identificateurs de fichier, tels que \fBFAN_CREATE\fP, \fBFAN_ATTRIB\fP, \fBFAN_MOVE\fP et \fBFAN_DELETE_SELF\fP, ne peuvent pas être fournis comme \fImask\fP quand \fIflags\fP contient \fBFAN_MARK_MOUNT\fP. Une telle tentative renverra l'erreur \fBEINVAL\fP. .TP \fBFAN_MARK_FILESYSTEM\fP (depuis Linux 4.20) .\" commit d54f4fba889b205e9cd8239182ca5d27d0ac3bc2 Marquer le système de fichiers indiqué par \fIpathname\fP. Le système de fichiers contenant \fIpathname\fP sera marqué. Tous les fichiers et répertoires contenus dans le système de fichiers issus de n'importe quel point de montage seront surveillés. .TP \fBFAN_MARK_IGNORED_MASK\fP Les événements dans \fImask\fP seront ajoutés ou supprimés du masque ignore. .TP \fBFAN_MARK_IGNORED_SURV_MODIFY\fP Le masque ignore survivra aux événements de modification. Si cet attribut n’est pas défini, le masque ignore est effacé quand un événement de modification survient pour le fichier ou répertoire ignorés. .PP \fImask\fP définit les événements à écouter (ou à ignorer). C’est un masque de bits constitué par les valeurs suivantes\ : .TP \fBFAN_ACCESS\fP Créer un événement quand un fichier ou un répertoire (mais consultez \fBBOGUES\fP) est accédé (en lecture). .TP \fBFAN_MODIFY\fP Créer un événement quand un fichier est modifié (en écriture). .TP \fBFAN_CLOSE_WRITE\fP Créer un événement quand un fichier modifiable en écriture est fermé. .TP \fBFAN_CLOSE_NOWRITE\fP Créer un événement quand soit un fichier, soit un répertoire, en lecture seule, est fermé. .TP \fBFAN_OPEN\fP Créer un événement quand soit un fichier, soit un répertoire est ouvert. .TP \fBFAN_OPEN_EXEC\fP (depuis Linux 5.0) .\" commit 9b076f1c0f4869b838a1b7aa0edb5664d47ec8aa Créer un événement quand un fichier est ouvert pour être exécuté. Voir les NOTES pour plus de détails. .TP \fBFAN_ATTRIB\fP (depuis Linux 5.1) .\" commit 235328d1fa4251c6dcb32351219bb553a58838d2 Créer un événement quand les métadonnées d'un fichier ou d'un répertoire ont changé. Un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier est nécessaire. .TP \fBFAN_CREATE\fP (depuis Linux 5.1) .\" commit 235328d1fa4251c6dcb32351219bb553a58838d2 Créer un événement quand un fichier ou un répertoire a été créé dans un répertoire parent marqué. Un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier est nécessaire. .TP \fBFAN_DELETE\fP (depuis Linux 5.1) .\" commit 235328d1fa4251c6dcb32351219bb553a58838d2 Créer un événement quand un fichier ou un répertoire a été effacé d'un répertoire parent marqué. Un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier est nécessaire. .TP \fBFAN_DELETE_SELF\fP (depuis Linux 5.1) .\" commit 235328d1fa4251c6dcb32351219bb553a58838d2 Créer un événement quand un fichier, ou même un répertoire, marqué est effacé. Un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier est nécessaire. .TP \fBFAN_MOVED_FROM\fP (depuis Linux 5.1) .\" commit 235328d1fa4251c6dcb32351219bb553a58838d2 Créer un événement quand un fichier ou un répertoire a été déplacé depuis un répertoire parent marqué. Un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier est nécessaire. .TP \fBFAN_MOVED_TO\fP (depuis Linux 5.1) .\" commit 235328d1fa4251c6dcb32351219bb553a58838d2 Créer un événement quand un fichier ou un répertoire est déplacé vers un répertoire parent marqué. Un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier est nécessaire. .TP \fBFAN_MOVE_SELF\fP (depuis Linux 5.1) .\" commit 235328d1fa4251c6dcb32351219bb553a58838d2 Créer un événement quand un fichier, ou même un répertoire, marqué a été déplacé. Un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier est nécessaire. .TP \fBFAN_OPEN_PERM\fP Créer un événement quand une permission d’ouvrir un fichier ou un répertoire est demandée. Un descripteur de fichier fanotify créé avec \fBFAN_CLASS_PRE_CONTENT\fP ou \fBFAN_CLASS_CONTENT\fP est nécessaire. .TP \fBFAN_OPEN_EXEC_PERM\fP (depuis Linux 5.0) .\" commit 66917a3130f218dcef9eeab4fd11a71cd00cd7c9 Créer un événement quand une permission d’ouvrir un fichier en exécution est demandée. Un descripteur de fichier fanotify créé avec \fBFAN_CLASS_PRE_CONTENT\fP ou \fBFAN_CLASS_CONTENT\fP est nécessaire. Voir les NOTES pour des détails supplémentaires. .TP \fBFAN_ACCESS_PERM\fP Créer un événement quand une permission de lire un fichier ou un répertoire est demandée. Un descripteur de fichier fanotify créé avec \fBFAN_CLASS_PRE_CONTENT\fP ou \fBFAN_CLASS_CONTENT\fP est nécessaire. .TP \fBFAN_ONDIR\fP Créer des événements pour les répertoires —\ par exemple quand \fBopendir\fP(3), \fBreaddir\fP(3) (mais voir BOGUES) et \fBclosedir\fP(3) sont appelés. Sans cet attribut, les événements ne sont créés que pour les fichiers. Dans le contexte des événements d’entrée de répertoire tels que \fBFAN_CREATE\fP, \fBFAN_DELETE\fP, \fBFAN_MOVED_FROM\fP et \fBFAN_MOVED_TO\fP, il est nécessaire d'indiquer le drapeau \fBFAN_ONDIR\fP afin de créer des événements quand des entrées de sous\-répertoire sont modifiées (à savoir \fBmkdir\fP(2) ou \fBrmdir\fP(2)). .TP \fBFAN_EVENT_ON_CHILD\fP Des événements pour les enfants directs des répertoires marqués seront créés. L’attribut n’a pas d’effet lors du marquage de montages ou de systèmes de fichiers. Remarquez qu’aucun événement n’est créé pour les enfants des sous\-répertoires des répertoires marqués. De manière plus spécifique, les événements de modification d’entrée d'un répertoire \fBFAN_CREATE\fP, \fBFAN_DELETE\fP, \fBFAN_MOVED_FROM\fP et \fBFAN_MOVED_TO\fP ne sont pas générés pour des modifications effectuées dans les sous\-répertoires de répertoires marqués. Remarquez que les événements \fBFAN_DELETE_SELF\fP et \fBFAN_MOVE_SELF\fP ne sont pas générés pour les enfants de répertoires marqués. Pour surveiller des arborescences complètes de répertoires, le montage ou le système de fichiers adéquat doit être marqué. .PP Les valeurs composées suivantes sont définies\ : .TP \fBFAN_CLOSE\fP Un fichier est fermé (\fBFAN_CLOSE_WRITE\fP|\fBFAN_CLOSE_NOWRITE\fP). .TP \fBFAN_MOVE\fP Un fichier ou un répertoire a été déplacé (\fBFAN_MOVED_FROM\fP|\fBFAN_MOVED_TO\fP). .PP L’objet de système de fichiers à marquer est déterminé par le descripteur de fichier \fIdirfd\fP et le chemin indiqué dans \fIpathname\fP\ : .IP * 3 si \fIpathname\fP est NULL, \fIdirfd\fP définit l’objet de système de fichiers à marquer\ ; .IP * si \fIpathname\fP est NULL et que \fIdirfd\fP prend la valeur spéciale \fBAT_FDCWD\fP, le répertoire de travail actuel est à marquer\ ; .IP * si \fIpathname\fP est absolu, il définit l’objet de système de fichiers à marquer et \fIdirfd\fP est ignoré\ ; .IP * si \fIpathname\fP est relatif et que \fIdirfd\fP n’a pas la valeur \fBAT_FDCWD\fP, alors l’objet de système de fichiers à marquer est déterminé en interprétant \fIpathname\fP comme relatif au répertoire référencé par \fIdirfd\fP\ ; .IP * si \fIpathname\fP est relatif et que \fIdirfd\fP a la valeur \fBAT_FDCWD\fP, alors l’objet de système de fichiers à marquer est déterminé en interprétant \fIpathname\fP comme relatif au répertoire de travail actuel. .SH "VALEUR RENVOYÉE" S'il réussit, \fBfanotify_mark\fP() renvoie\ \fB0\fP. En cas d'erreur, il renvoie\ \fB\-1\fP et remplit \fIerrno\fP avec la valeur d'erreur. .SH ERREURS .TP \fBEBADF\fP Un descripteur de fichier incorrect a été passé dans \fIfanotify_fd\fP. .TP \fBEINVAL\fP Une valeur incorrecte a été passée dans \fIflags\fP ou \fImask\fP, ou \fIfanotify_fd\fP n'était pas un descripteur de fichier fanotify. .TP \fBEINVAL\fP Le descripteur de fichier fanotify a été ouvert avec \fBFAN_CLASS_NOTIF\fP ou le groupe fanotify identifie des systèmes de fichiers par des identificateurs de fichier et le masque contient un attribut pour des événements de permission (\fBFAN_OPEN_PERM\fP ou \fBFAN_ACCESS_PERM\fP). .TP \fBENODEV\fP Le système de fichiers indiqué par \fIpathname\fP n'est associé à aucun système de fichiers prenant en charge \fIfsid\fP (comme \fBtmpfs\fP(5)). Cette erreur ne peut être renvoyée qu'avec un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier. .TP \fBENOENT\fP L’objet de système de fichiers indiqué par \fIdirfd\fP et \fIpathname\fP n’existe pas. Cette erreur survient aussi lors d’une tentative de supprimer une marque d’un objet qui n’est pas marqué. .TP \fBENOMEM\fP La mémoire nécessaire n’a pas pu être allouée. .TP \fBENOSPC\fP Le nombre de marques dépasse la limite de\ 8192 et l’attribut \fBFAN_UNLIMITED_MARKS\fP n’était pas indiqué quand le descripteur de fichier fanotify a été créé avec \fBfanotify_init\fP(2). .TP \fBENOSYS\fP Ce noyau n’implémente pas \fBfanotify_mark\fP(). L’interface de programmation fanotify n'est disponible que si le noyau a été configuré avec \fBCONFIG_FANOTIFY\fP. .TP \fBENOTDIR\fP \fIflags\fP contient \fBFAN_MARK_ONLYDIR\fP, et \fIdirfd\fP et \fIpathname\fP n’indiquent pas de répertoire. .TP \fBEOPNOTSUPP\fP L'objet indiqué par \fIpathname\fP est associé à un système de fichiers qui ne gère pas l'encodage d’identificateurs de fichier. Cette erreur ne peut être renvoyée que lorsqu'un groupe fanotify identifie les systèmes de fichiers par des identificateurs de fichier. .TP \fBEXDEV\fP Le système de fichiers indiqué par \fIpathname\fP se trouve dans un sous\-volume de système de fichiers (comme \fBbtrfs\fP(5)) qui utilise un \fIfsid\fP différent de son superbloc racine. Cette erreur ne peut être renvoyée que par un groupe fanotify qui identifie les systèmes de fichiers par des identificateurs de fichier. .SH VERSIONS \fBfanotify_mark\fP() a été introduit dans la version\ 2.6.36 du noyau Linux et activé dans la version\ 2.6.37. .SH CONFORMITÉ Cet appel système est spécifique à Linux. .SH NOTES .SS "FAN_OPEN_EXEC et FAN_OPEN_EXEC_PERM" Quand on utilise \fBFAN_OPEN_EXEC\fP ou \fBFAN_OPEN_EXEC_PERM\fP dans le \fImask\fP, des événements de ces types ne seront renvoyés que lorsque l'exécution directe d'un programme se produit. Plus particulièrement, cela signifie que les événements de ces types seront créés pour les fichiers ouverts en utilisant \fBexecve\fP(2), \fBexecveat\fP(2) ou \fBuselib\fP(2). Les événements de ces types n'apparaîtront pas quand un interpréteur est passé pour interprétation d'un fichier (ou s'il est en cours de lecture). .PP De plus, si une marque a aussi été placée sur l'éditeur de liens dynamiques de Linux, un utilisateur doit s'attendre aussi à recevoir un événement associé quand un objet ELF a été ouvert avec succès en utilisant \fBexecve\fP(2) ou \fBexecveat\fP(2). .PP Par exemple, si le binaire ELF suivant devait être appelé et si une marque \fBFAN_OPEN_EXEC\fP a été placée sur \fI/\fP\ : .PP .in +4n .EX $ /bin/echo toto .EE .in .PP Dans ce cas, l'application à l'écoute devrait recevoir des événements \fBFAN_OPEN_EXEC\fP, respectivement pour le binaire ELF et pour l'interpréteur\ : .PP .in +4n .EX /bin/echo /lib64/ld\-linux\-x86\-64.so.2 .EE .in .SH BOGUES Les bogues suivants étaient présents dans les noyaux Linux avant la version\ 3.16\ : .IP * 3 .\" Fixed by commit 0a8dd2db579f7a0ac7033d6b857c3d5dbaa77563 Si \fIflags\fP contient \fBFAN_MARK_FLUSH\fP, \fIdirfd\fP et \fIpathname\fP doivent indiquer un objet de système de fichiers valable, même si cet objet n’est pas utilisé. .IP * .\" Fixed by commit d4c7cf6cffb1bc711a833b5e304ba5bcfe76398b \fBreaddir\fP(2) ne crée pas d’événement \fBFAN_ACCESS\fP\ ; .IP * .\" Fixed by commit cc299a98eb13a9853675a9cbb90b30b4011e1406 si \fBfanotify_mark\fP() est appelé avec \fBFAN_MARK_FLUSH\fP, les valeurs incorrectes de \fIflags\fP ne sont pas vérifiées. .SH "VOIR AUSSI" \fBfanotify_init\fP(2), \fBfanotify\fP(7) .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP 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/. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Philippe MENGUAL . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE 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 à .MT debian-l10n-french@lists.debian.org .ME .