Man page - fanotify_mark(2)

Packages contains this manual

Available languages:

en fr ja

Manual

fanotify_mark

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
FAN_OPEN_EXEC et FAN_OPEN_EXEC_PERM
BOGUES
VOIR AUSSI
TRADUCTION

NOM

fanotify_mark - Ajouter, supprimer ou modifier une marque fanotify sur un objet de systĂšme de fichiers

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <sys/fanotify.h>

int fanotify_mark(int fanotify_fd , unsigned int flags ,
uint64_t
mask , int dirfd ,
const char *_Nullable
pathname );

DESCRIPTION

Pour un aperçu de l’interface de programmation fanotify, consultez fanotify (7).

fanotify_mark () 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.

L’argument fanotify_fd est un descripteur de fichier renvoyĂ© par fanotify_init (2).

flags est un masque de bits décrivant la modification à réaliser. Il doit contenir exactement une des valeurs suivantes.
FAN_MARK_ADD

Les Ă©vĂ©nements dans mask seront ajoutĂ©s au masque de marque (ou au masque ignore). mask doit ĂȘtre non vide sinon l’erreur EINVAL surviendra.

FAN_MARK_REMOVE

Les Ă©vĂ©nements dans l’argument mask seront supprimĂ©s du masque de marque (ou du masque ignore). mask doit ĂȘtre non vide sinon l’erreur EINVAL surviendra.

FAN_MARK_FLUSH

Supprimer toutes les marques de systĂšmes de fichiers, de montages ou de rĂ©pertoires et fichiers du groupe fanotify. Si flags contient FAN_MARK_MOUNT , toutes les marques de montage seront supprimĂ©es du groupe. Si flags contient FAN_MARK_FILESYSTEM , 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 FAN_MARK_MOUNT ou FAN_MARK_FILESYSTEM peut ĂȘtre utilisĂ© avec FAN_MARK_FLUSH . mask est ignorĂ©.

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 EINVAL .

De plus, zĂ©ro ou plus des valeurs suivantes peuvent ĂȘtre incluses dans flags (avec une opĂ©ration OU bit Ă  bit).
FAN_MARK_DONT_FOLLOW

Si pathname est un lien symbolique, marquer le lien lui-mĂȘme, plutĂŽt que le fichier pointĂ© (par dĂ©faut, fanotify_mark () dĂ©rĂ©fĂ©rence pathname si c’est un lien symbolique).

FAN_MARK_ONLYDIR

Si l’objet de systĂšme de fichiers Ă  marquer n’est pas un rĂ©pertoire, l’erreur ENOTDIR surviendra.

FAN_MARK_MOUNT

Marquer le point de montage indiquĂ© par pathname . Si pathname n’est pas un point de montage lui-mĂȘme, le point de montage contenant pathname 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 objets de systĂšmes de fichiers soient identifiĂ©s par des identificateurs de fichier, tels que FAN_CREATE , FAN_ATTRIB , FAN_MOVE et FAN_DELETE_SELF , ne peuvent pas ĂȘtre fournis comme mask quand flags contient FAN_MARK_MOUNT . Une telle tentative renverra l’erreur EINVAL . L’utilisation de cet attribut exige la capacitĂ© CAP_SYS_ADMIN .

FAN_MARK_FILESYSTEM (depuis Linux 4.20)

Marquer le systĂšme de fichiers indiquĂ© par pathname . Le systĂšme de fichiers contenant pathname 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. L’utilisation de cet attribut exige la capacitĂ© CAP_SYS_ADMIN .

FAN_MARK_IGNORED_MASK

Les Ă©vĂ©nements de mask ne seront pas ajoutĂ©s ou supprimĂ©s du masque ignore. Remarquez que les attributs FAN_ONDIR et FAN_EVENT_ON_CHILD n’ont aucun effet quand ils sont fournis avec cet attribut. L’effet du positionnement des attributs FAN_ONDIR et FAN_EVENT_ON_CHILD dans le masque de marquage des Ă©vĂ©nements positionnĂ©s dans le masque ignore n’est pas dĂ©fini et dĂ©pend de la version du noyau Linux. En particulier, avant Linux 5.9, positionner un masque de marquage sur un fichier et une marque avec un masque ignore sur son rĂ©pertoire parent ne ferait pas ignorer les Ă©vĂ©nements sur le fichier, mĂȘme avec l’attribut FAN_EVENT_ON_CHILD dans le masque de marquage du rĂ©pertoire parent. Quand le masque ignore est mis Ă  jour avec l’attribut FAN_MARK_IGNORED_MASK sur une marque prĂ©cĂ©demment mise Ă  jour avec l’attribut FAN_MARK_IGNORE , la mise Ă  jour Ă©choue avec l’erreur EEXIST .

FAN_MARK_IGNORE (depuis Linux 6.0)

Cet attribut a le mĂȘme effet que de positionner l’attribut FAN_MARK_IGNORED_MASK . Les Ă©vĂ©nements du mask seront ajoutĂ©s ou supprimĂ©s du masque ignore. Contrairement Ă  l’attribut FAN_MARK_IGNORED_MASK , cet attribut a Ă©galement pour effet que les attributs FAN_ONDIR et FAN_EVENT_ON_CHILD agissent sur le masque ignore. En particulier, sauf si l’attribut FAN_ONDIR est positionnĂ© avec FAN_MARK_IGNORE , les Ă©vĂ©nements sur les rĂ©pertoires ne seront pas ignorĂ©s. Si l’attribut FAN_EVENT_ON_CHILD est positionnĂ© avec FAN_MARK_IGNORE , les Ă©vĂ©nements sur les enfants seront ignorĂ©s. Par exemple, une marque sur un rĂ©pertoire associĂ© Ă  un masque avec l’évĂ©nement FAN_CREATE et l’attribut FAN_ONDIR et un masque ignore avec un Ă©vĂ©nement FAN_CREATE et sans l’attribut FAN_ONDIR ne gardera que les Ă©vĂ©nements de crĂ©ation de sous-rĂ©pertoires. Lors de l’utilisation de l’attribut FAN_MARK_IGNORE pour ajouter Ă  un masque ignore une marque de montage, de systĂšme de fichiers ou d’inƓud de rĂ©pertoire, l’attribut FAN_MARK_IGNORED_SURV_MODIFY doit ĂȘtre indiquĂ©. Un oubli de faire cela donne une erreur EINVAL ou EISDIR .

FAN_MARK_IGNORED_SURV_MODIFY

Le masque ignore survivra aux Ă©vĂ©nements de modification. Si cet attribut n’est pas positionnĂ©, le masque ignore est effacĂ© quand un Ă©vĂ©nement de modification se produit sur l’objet marquĂ©. Ne pas utiliser cet attribut se fait gĂ©nĂ©ralement pour supprimer des Ă©vĂ©nements (comme FAN_OPEN ) sur un fichier spĂ©cifique, jusqu’à ce que le contenu de ce dernier ne soit modifiĂ©. Il est beaucoup moins utile de supprimer des Ă©vĂ©nements sur tout un systĂšme de fichiers ou un montage, ou bien sur tous les fichiers d’un rĂ©pertoire, jusqu’à ce qu’un contenu de fichier ne soit modifiĂ©. C’est pourquoi l’attribut FAN_MARK_IGNORE exige l’attribut FAN_MARK_IGNORED_SURV_MODIFY sur une marque d’inƓud de montage, de systĂšme de fichiers ou de rĂ©pertoire. Cet attribut ne peut pas ĂȘtre supprimĂ© d’une marque une fois qu’il a Ă©tĂ© positionnĂ©. Quand le masque ignore est mis Ă  jour sans cet attribut sur une marque prĂ©cĂ©demment mise Ă  jour avec les attributs FAN_MARK_IGNORE et FAN_MARK_IGNORED_SURV_MODIFY , la mise Ă  jour Ă©choue avec l’erreur EEXIST .

FAN_MARK_IGNORE_SURV

C’est un synonyme de ( FAN_MARK_IGNORE | FAN_MARK_IGNORED_SURV_MODIFY ).

FAN_MARK_EVICTABLE (depuis Linux 5.19)

Lorsqu’une marque d’inƓud est créée avec cet attribut, l’objet inƓud ne sera pas associĂ© au cache de l’inƓud, permettant ainsi Ă  l’objet inƓud d’ĂȘtre supprimĂ© du cache d’inƓud quand la pression sur la mĂ©moire du systĂšme est Ă©levĂ©e. La suppression de l’objet inƓud provoque aussi la perte de la marque suppressible. Quand le masque d’un inƓud suppressible est mis Ă  jour sans utiliser l’attribut FAN_MARK_EVICATBLE , l’inƓud marquĂ© est Ă©pinglĂ© dans le cache d’inƓuds et la marque n’est plus suppressible. Quand le masque d’une marque d’inƓud non suppressible est mis Ă  jour avec l’attribut FAN_MARK_EVICTABLE , la marque d’inƓud reste non suppressible et la mise Ă  jour Ă©choue avec l’erreur EEXIST . Les montages et les systĂšmes de fichiers ne sont pas des objets suppressibles, donc si on essaie de crĂ©er une marque de montage ou de systĂšme de fichiers avec l’attribut FAN_MARK_EVICTABLE , une erreur EINVAL se produira. Par exemple, les marques d’inƓud peuvent ĂȘtre utilisĂ©es en combinaison avec les marques de montage pour rĂ©duire la quantitĂ© d’évĂ©nements issus d’endroits sans intĂ©rĂȘt. L’écouteur d’évĂ©nements lit les Ă©vĂ©nements, vĂ©rifie si le chemin indiquĂ© dans l’évĂ©nement est digne d’intĂ©rĂȘt et si ce n’est pas le cas, il positionne une marque avec un masque ignore sur le rĂ©pertoire. Les marques d’inƓud suppressibles permettent d’utiliser cette mĂ©thode pour un grand nombre de rĂ©pertoires sans l’inconvĂ©nient de l’épinglage de tous les inƓuds et d’épuiser la mĂ©moire du systĂšme.

mask dĂ©finit les Ă©vĂ©nements Ă  Ă©couter (ou Ă  ignorer). C’est un masque de bits constituĂ© par les valeurs suivantes :
FAN_ACCESS

Créer un événement quand un fichier ou un répertoire (mais consultez BOGUES ) est accédé (en lecture).

FAN_MODIFY

Créer un événement quand un fichier est modifié (en écriture).

FAN_CLOSE_WRITE

Créer un événement quand un fichier modifiable en écriture est fermé.

FAN_CLOSE_NOWRITE

Créer un événement quand soit un fichier, soit un répertoire, en lecture seule, est fermé.

FAN_OPEN

Créer un événement quand soit un fichier, soit un répertoire est ouvert.

FAN_OPEN_EXEC (depuis Linux 5.0)

CrĂ©er un Ă©vĂ©nement quand un fichier est ouvert pour ĂȘtre exĂ©cutĂ©. Voir les NOTES pour plus de dĂ©tails.

FAN_ATTRIB (depuis Linux 5.1)

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 objets de systĂšme de fichiers par des identificateurs de fichier est nĂ©cessaire.

FAN_CREATE (depuis Linux 5.1)

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 objets de systÚme de fichiers par des identificateurs de fichier est nécessaire.

FAN_DELETE (depuis Linux 5.1)

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 objets de systĂšme de fichiers par des identificateurs de fichier est nĂ©cessaire.

FAN_DELETE_SELF (depuis Linux 5.1)

CrĂ©er un Ă©vĂ©nement quand un fichier, ou mĂȘme un rĂ©pertoire, marquĂ© est effacĂ©. Un groupe fanotify qui identifie les objets de systĂšme de fichiers par des identificateurs de fichier est nĂ©cessaire.

FAN_FS_ERROR (depuis Linux 5.16)

Créer un événement quand une erreur du systÚme de fichiers conduisant à une incohérence des métadonnées du systÚme de fichiers est détectée. Un enregistrement supplémentaire de type FAN_EVENT_INFO_TYPE_ERROR est renvoyé pour chaque événement du tampon de lecture. Un groupe fanotify qui identifie les objets de systÚme de fichiers par des identificateurs de fichier est nécessaire.

Les Ă©vĂ©nements de ce type dĂ©pendent de la prise en charge par le systĂšme de fichiers sous-jacent. À l’heure oĂč nous Ă©crivons, seul le systĂšme de fichiers ext4 signale les Ă©vĂ©nements FAN_FS_ERROR .

Voir fanotify (7) pour des détails supplémentaires.

FAN_MOVED_FROM (depuis Linux 5.1)

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 objets de systÚme de fichiers par des identificateurs de fichier est nécessaire.

FAN_MOVED_TO (depuis Linux 5.1)

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 objets de systÚme de fichiers par des identificateurs de fichier est nécessaire.

FAN_RENAME (depuis Linux 5.17)

Cet Ă©vĂ©nement contient les mĂȘmes informations que celles fournies par les Ă©vĂ©nements FAN_MOVED_FROM et FAN_MOVED_TO mais il est reprĂ©sentĂ© par un seul Ă©vĂ©nement ayant jusqu’à deux enregistrements. Un groupe fanotify qui identifie les objets de systĂšme de fichiers par des identificateurs de fichiers est nĂ©cessaire. Si l’objet de systĂšme de fichiers Ă  marquer n’est pas un rĂ©pertoire, l’erreur ENOTDIR sera gĂ©nĂ©rĂ©e.

FAN_MOVE_SELF (depuis Linux 5.1)

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 objets de systĂšme de fichiers par des identificateurs de fichier est nĂ©cessaire.

FAN_OPEN_PERM

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 FAN_CLASS_PRE_CONTENT ou FAN_CLASS_CONTENT est nĂ©cessaire.

FAN_OPEN_EXEC_PERM (depuis Linux 5.0)

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 FAN_CLASS_PRE_CONTENT ou FAN_CLASS_CONTENT est nĂ©cessaire. Voir les NOTES pour des dĂ©tails supplĂ©mentaires.

FAN_ACCESS_PERM

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 FAN_CLASS_PRE_CONTENT ou FAN_CLASS_CONTENT est nécessaire.

FAN_ONDIR

CrĂ©er des Ă©vĂ©nements pour les rĂ©pertoires — par exemple quand opendir (3), readdir (3) (mais voir BOGUES) et closedir (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 FAN_CREATE , FAN_DELETE , FAN_MOVED_FROM et FAN_MOVED_TO , il est nĂ©cessaire d’indiquer le drapeau FAN_ONDIR afin de crĂ©er des Ă©vĂ©nements quand des entrĂ©es de sous-rĂ©pertoire sont modifiĂ©es (Ă  savoir mkdir (2) ou rmdir (2)).

FAN_EVENT_ON_CHILD

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 FAN_CREATE , FAN_DELETE , FAN_MOVED_FROM et FAN_MOVED_TO 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 FAN_DELETE_SELF et FAN_MOVE_SELF 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Ă©.

Les valeurs composées suivantes sont définies :
FAN_CLOSE

Un fichier est fermé ( FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE ).

FAN_MOVE

Un fichier ou un répertoire a été déplacé ( FAN_MOVED_FROM | FAN_MOVED_TO ).

L’objet de systĂšme de fichiers Ă  marquer est dĂ©terminĂ© par le descripteur de fichier dirfd et le chemin indiquĂ© dans pathname :

-

si pathname est NULL, dirfd dĂ©finit l’objet de systĂšme de fichiers Ă  marquer ;

-

si pathname est NULL et que dirfd prend la valeur spéciale AT_FDCWD , le répertoire de travail actuel est à marquer ;

-

si pathname est absolu, il dĂ©finit l’objet de systĂšme de fichiers Ă  marquer et dirfd est ignoré ;

-

si pathname est relatif et que dirfd n’a pas la valeur AT_FDCWD , alors l’objet de systĂšme de fichiers Ă  marquer est dĂ©terminĂ© en interprĂ©tant pathname comme relatif au rĂ©pertoire rĂ©fĂ©rencĂ© par dirfd ;

-

si pathname est relatif et que dirfd a la valeur AT_FDCWD , alors l’objet de systĂšme de fichiers Ă  marquer est dĂ©terminĂ© en interprĂ©tant pathname par rapport au rĂ©pertoire de travail actuel (voir openat (2) pour une explication sur la raison d’ĂȘtre du paramĂštre dirfd ).

VALEUR RENVOYÉE

S’il rĂ©ussit, fanotify_mark () renvoie 0 . En cas d’erreur, il renvoie -1 et remplit errno avec la valeur d’erreur.

ERREURS

EBADF

Un descripteur de fichier incorrect a été passé dans fanotify_fd .

EBADF

pathname est relatif mais dirfd n’est ni AT_FDWCD ni un descripteur de fichier valable.

EEXIST

L’objet de systĂšme de fichiers indiquĂ© par dirfd et pathname comporte une marque mise Ă  jour sans l’attribut FAN_MARK_EVICTABLE et l’utilisateur a essayĂ© de mettre Ă  jour la marque avec l’attribut FAN_MARK_EVICTABLE .

EEXIST

L’objet de systĂšme de fichiers indiquĂ© par dirfd et pathname comporte une marque mise Ă  jour avec l’attribut FAN_MARK_IGNORE et l’utilisateur a essayĂ© de mettre Ă  jour la marque avec l’attribut FAN_MARK_IGNORED_MASK .

EEXIST

L’objet de systĂšme de fichiers indiquĂ© par dirfd et pathname comporte une marque mise Ă  jour avec les attributs FAN_MARK_IGNORE et FAN_MARK_IGNORED_SURV_MODIFY et l’utilisateur a essayĂ© de mettre Ă  jour la marque avec l’attribut FAN_MARK_IGNORE .

EINVAL

Une valeur incorrecte a Ă©tĂ© passĂ©e dans flags ou mask , ou fanotify_fd n’était pas un descripteur de fichier fanotify.

EINVAL

Le descripteur de fichier fanotify a été ouvert avec FAN_CLASS_NOTIF 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 ( FAN_OPEN_PERM ou FAN_ACCESS_PERM ).

EINVAL

Le groupe a Ă©tĂ© initialisĂ© sans FAN_REPORT_FID mais un ou plusieurs types d’évĂ©nements indiquĂ©s dans mask en ont besoin.

EINVAL

flags contient FAN_MARK_IGNORE et soit FAN_MARK_MOUNT ou FAN_MARK_FILESYSTEM , mais il ne contient pas FAN_MARK_IGNORED_SURV_MODIFY .

EISDIR

flags contient FAN_MARK_IGNORE mais pas FAN_MARK_IGNORED_SURV_MODIFY , et dirfd et pathname indiquent un répertoire.

ENODEV

Le systĂšme de fichiers indiquĂ© par dirfd et pathname n’est associĂ© Ă  aucun systĂšme de fichiers prenant en charge fsid (comme fuse (4)). tmpfs (5) ne gĂ©rait pas fsid avant Linux 5.13. Cette erreur ne peut ĂȘtre renvoyĂ©e qu’avec un groupe fanotify qui identifie les objets de systĂšme de fichiers par des identificateurs de fichier.

ENOENT

L’objet de systĂšme de fichiers indiquĂ© par dirfd et pathname n’existe pas. Cette erreur survient aussi lors d’une tentative de supprimer une marque d’un objet qui n’est pas marquĂ©.

ENOMEM

La mĂ©moire nĂ©cessaire n’a pas pu ĂȘtre allouĂ©e.

ENOSPC

Le nombre de marques pour cet utilisateur dĂ©passe la limite et l’attribut FAN_UNLIMITED_MARKS n’était pas indiquĂ© quand le descripteur de fichier fanotify a Ă©tĂ© créé avec fanotify_init (2). Voir fanotify (7) pour des dĂ©tails sur cette limite.

ENOSYS

Ce noyau n’implĂ©mente pas fanotify_mark (). L’interface de programmation fanotify n’est disponible que si le noyau a Ă©tĂ© configurĂ© avec CONFIG_FANOTIFY .

ENOTDIR

flags contient FAN_MARK_ONLYDIR , et dirfd et pathname n’indiquent pas de rĂ©pertoire.

ENOTDIR

mask contient FAN_RENAME et dirfd et pathname n’indiquent pas de rĂ©pertoire.

ENOTDIR

flags contient FAN_MARK_IGNORE ou le groupe fanotify a Ă©tĂ© initialisĂ© avec l’attribut FAN_REPORT_TARGET_FID et mask contient des Ă©vĂ©nements de modification d’entrĂ©e de rĂ©pertoire (comme FAN_CREATE , FAN_DELETE ), ou bien des attributs d’évĂ©nements de rĂ©pertoire (comme FAN_ONDIR , FAN_EVENT_ON_CHILD ), et dirfd et pathname n’indiquent pas de rĂ©pertoire.

EOPNOTSUPP

L’objet indiquĂ© par pathname 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 objets de systĂšmes de fichiers par des identificateurs de fichier. L’appel de name_to_handle_at (2) avec l’attribut AT_HANDLE_FID (depuis Linux 6.5) peut ĂȘtre utilisĂ© comme un test pour vĂ©rifier si un systĂšme de fichiers prend en charge le signalement d’évĂ©nements avec les identificateurs de fichiers.

EPERM

L’opĂ©ration n’est pas permise car l’appelant n’a pas la capacitĂ© requise.

EXDEV

Le systĂšme de fichiers indiquĂ© par pathname se trouve dans un sous-volume de systĂšme de fichiers (comme btrfs (5)) qui utilise un fsid diffĂ©rent de son superbloc racine. Cette erreur ne peut ĂȘtre renvoyĂ©e que par un groupe fanotify qui identifie les objets de systĂšme de fichiers par des identificateurs de fichier.

STANDARDS

Linux.

HISTORIQUE

Linux 2.6.37.

NOTES

FAN_OPEN_EXEC et FAN_OPEN_EXEC_PERM

Quand on utilise FAN_OPEN_EXEC ou FAN_OPEN_EXEC_PERM dans le mask , 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 execve (2), execveat (2) ou uselib (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).

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 execve (2) ou execveat (2).

Par exemple, si le binaire ELF suivant devait ĂȘtre appelĂ© et si une marque FAN_OPEN_EXEC a Ă©tĂ© placĂ©e sur / :

$ /bin/echo toto

Dans ce cas, l’application Ă  l’écoute devrait recevoir des Ă©vĂ©nements FAN_OPEN_EXEC , respectivement pour le binaire ELF et pour l’interprĂ©teur :

/bin/echo
/lib64/ld-linux-x86-64.so.2

BOGUES

Les bogues suivants étaient présents avant Linux 3.16 :

-

si flags contient FAN_MARK_FLUSH , dirfd et pathname doivent indiquer un objet de systĂšme de fichiers valable, mĂȘme si cet objet n’est pas utilisĂ©.

-

readdir (2) ne crĂ©e pas d’évĂ©nement FAN_ACCESS ;

-

si fanotify_mark () est appelé avec FAN_MARK_FLUSH , les valeurs incorrectes de flags ne sont pas vérifiées.

VOIR AUSSI

fanotify_init (2), fanotify (7)

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-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 .