.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2013, Heinrich Schuchardt .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH fanotify_init 2 "5 février 2023" "Pages du manuel de Linux 6.03" .SH NOM fanotify_init \- Créer et initialiser un groupe fanotify .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP /* Définition des constantes \fBO_*\fP */ \fB#include \fP .PP \fBint fanotify_init(unsigned int \fP\fIflags\fP\fB, unsigned int \fP\fIevent_f_flags\fP\fB);\fP .fi .SH DESCRIPTION Pour un aperçu de l’interface de programmation fanotify, consultez \fBfanotify\fP(7). .PP \fBfanotify_init\fP() initialise un nouveau groupe fanotify et renvoie un descripteur de fichier pour la file d’événements associée au groupe. .PP Le descripteur de fichier est utilisé dans les appels de \fBfanotify_mark\fP(2) pour indiquer les fichiers, les répertoires, les points de montage et les systèmes de fichiers pour lesquels les événements fanotify seront créés. Ces événements sont reçus en lisant le descripteur de fichier. Certains événements ne sont qu’informatifs, indiquant qu’il y a eu un accès au fichier. D’autres événements peuvent être utilisés pour déterminer si une autre application a le droit d’accéder à un fichier ou répertoire. Le droit d’accéder aux objets de système de fichiers est accordé en écrivant dans le descripteur de fichier. .PP Plusieurs programmes peuvent utiliser l’interface fanotify en même temps pour surveiller les mêmes fichiers. .PP Le nombre de groupes fanotify par utilisateur est limité. Voir \fBfanotify\fP(7) pour des détails sur cette limite. .PP L’argument \fIflags\fP contient un champ multibit définissant la classe de notification de l’application écoutant et d’autres champs monobit indiquant le comportement du descripteur de fichier. .PP Si plusieurs écoutants d’événements de permission existent, la classe de notification est utilisée pour établir l’ordre dans lequel les écoutants reçoivent les événements. .PP Une seule des classes de notification suivantes peut être indiquée dans \fIflags\fP. .TP \fBFAN_CLASS_PRE_CONTENT\fP Cette valeur permet de recevoir des événements notifiant de l'accès à un fichier et des événements de décisions de permission d'accès à un fichier. Elle est conçue pour les écoutants d’événement qui doivent accéder aux fichiers avant qu’ils ne contiennent leurs données finales. Cette classe de notification pourrait être utilisée par exemple par des gestionnaires de stockage hiérarchisé. L'utilisation de cet attribut exige la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBFAN_CLASS_CONTENT\fP Cette valeur permet de recevoir des événements notifiant l'accès à un fichier et des événements de décisions de permission d'accès à un fichier. Elle est conçue pour les écoutants d’événement qui doivent accéder aux fichiers quand ils contiennent déjà leur contenu final. Cette classe de notification pourrait être utilisée par exemple par des programmes de détection de logiciels malveillants. L'utilisation de cet attribut exige la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBFAN_CLASS_NOTIF\fP C’est la valeur par défaut. Elle n’a pas besoin d’être indiquée. Cette valeur ne permet de recevoir que des événements notifiant qu’un fichier a été accédé. Les décisions de permission avant que le fichier ne soit accédé ne sont pas possibles. .PP Les écoutants avec différentes classes de notification recevront les événements dans l’ordre \fBFAN_CLASS_PRE_CONTENT\fP, \fBFAN_CLASS_CONTENT\fP, \fBFAN_CLASS_NOTIF\fP. L’ordre de notification pour les écoutants dans la même classe de notification n’est pas défini. .PP Les bits suivants peuvent de plus être définis dans \fIflags\fP. .TP \fBFAN_CLOEXEC\fP Placer l'attribut «\ close\-on\-exec\ » (\fBFD_CLOEXEC\fP) sur le nouveau descripteur de fichier. Consultez la description de l'attribut \fBO_CLOEXEC\fP dans \fBopen\fP(2). .TP \fBFAN_NONBLOCK\fP Activer l’attribut non bloquant (\fBO_NONBLOCK\fP) pour le descripteur de fichier. La lecture du descripteur de fichier ne bloquera pas. À la place, si aucune donnée n’est disponible, \fBread\fP(2) échouera avec l’erreur \fBEAGAIN\fP. .TP \fBFAN_UNLIMITED_QUEUE\fP Supprimer la limite du nombre d'événements pour la file d’événements. Voir \fBfanotify\fP(7) pour des détails sur cette limite. L’utilisation de cet attribut nécessite la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBFAN_UNLIMITED_MARKS\fP Supprimer la limite du nombre de marques fanotify par utilisateur. Voir \fBfanotify\fP(7) pour des détails sur cette limite. L’utilisation de cet attribut nécessite la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBFAN_REPORT_TID\fP (depuis Linux 4.20) .\" commit d0a6a87e40da49cfc7954c491d3065a25a641b29 Signaler l'ID d'un thread (TID) au lieu de l'ID du processus (PID) dans le champ \fIpid\fP de la \fIstruct fanotify_event_metadata\fP fournie à \fBread\fP(2) (voir \fBfanotify\fP(7)). L'utilisation de cet attribut exige la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBFAN_ENABLE_AUDIT\fP (depuis Linux 4.15) .\" commit de8cd83e91bc3ee212b3e6ec6e4283af9e4ab269 Activer la génération d'entrées de journal d'audit sur des tentatives d'accès effectuées par des événements de droits. La réponse de l'événement de droits doit être marquée par l'attribut \fBFAN_AUDIT\fP pour qu'une entrée de journal d'audit soit générée. L'utilisation de cet attribut exige la capacité \fBCAP_AUDIT_WRITE\fP. .TP \fBFAN_REPORT_FID\fP (depuis Linux 5.1) .\" commit a8b13aa20afb69161b5123b4f1acc7ea0a03d360 Cette valeur permet la réception d'événements qui contiennent des informations complémentaires sur l'objet du système de fichiers sous\-jacent corrélé à un événement. Un enregistrement supplémentaire de type \fBFAN_EVENT_INFO_TYPE_FID\fP enferme les informations sur l'objet et est inclus dans la structure générique des métadonnées de l'événement. Le descripteur de fichier utilisé pour représenter l'objet lié à un événement est remplacé par un identificateur de fichier. Il est conçu pour les applications qui trouvent que l'utilisation d'un identificateur de fichier pour identifier un objet convient mieux qu'un descripteur de fichier. De plus, il peut être utilisé par des applications supervisant un répertoire ou un système de fichiers qui s'intéressent aux modifications d'entrée de répertoire telles que \fBFAN_CREATE\fP, \fBFAN_DELETE\fP, \fBFAN_MOVE\fP et \fBFAN_RENAME\fP, ou à des événements tels que \fBFAN_ATTRIB\fP, \fBFAN_DELETE_SELF\fP et \fBFAN_MOVE_SELF\fP. Tous les événements ci\-dessus exigent un groupe fanotify identifiant les objets de système de fichiers par des identificateurs de fichier. Remarquez que sans l'attribut \fBFAN_REPORT_TARGET_FID\fP, pour les événements de modification d'entrée de répertoire, il existe un enregistrement d'informations qui identifie le répertoire modifié et non l'objet enfant créé/supprimé/déplacé. L'utilisation de \fBFAN_CLASS_CONTENT\fP ou de \fBFAN_CLASS_PRE_CONTENT\fP n'est pas autorisée avec cet attribut et donnera une erreur \fBEINVAL\fP. Voir \fBfanotify\fP(7) pour des informations supplémentaires. .TP \fBFAN_REPORT_DIR_FID\fP (depuis Linux 5.9) .\" commit 83b7a59896dd24015a34b7f00027f0ff3747972f Les événements des groupes fanotify initialisés avec cet attribut contiendront (voir les exceptions ci\-dessous) des informations supplémentaires sur l'objet d'un répertoire corrélé à un événement. Un enregistrement supplémentaire de type \fBFAN_EVENT_INFO_TYPE_DFID\fP enferme les informations sur l'objet répertoire et est inclus dans la structure générique des métadonnées de l'événement. Pour des événements qui arrivent sur un objet qui n'est pas un répertoire, la structure supplémentaire inclut un identificateur de fichier qui identifie l'objet de système de fichiers du répertoire parent. Remarquez qu'il n'y a pas de garantie que l'objet système de fichiers du répertoire ne se trouve à l'emplacement décrit par l’information d’identificateur de fichier au moment où l'événement est reçu. S'il est associé à l'attribut \fBFAN_REPORT_FID\fP, il se peut que deux enregistrements soient signalés avec des évènements qui se produisent sur un objet non répertoire, un pour identifier l'objet non répertoire lui\-même, et un pour identifier l’objet répertoire parent. Remarquez que dans certains cas, un objet de système de fichiers n'a pas de parent, par exemple quand un événement se produit sur un fichier non lié mais ouvert. Dans ce cas, avec l'attribut \fBFAN_REPORT_FID\fP l'événement sera signalé avec un seul enregistrement pour identifier l'objet non répertoire, puisqu'il n'y a pas de répertoire associé à l'événement. Sans l'attribut \fBFAN_REPORT_FID\fP, aucun événement ne sera signalé. Voir \fBfanotify\fP(7) pour des détails supplémentaires. .TP \fBFAN_REPORT_NAME\fP (depuis Linux 5.9) .\" commit 929943b38daf817f2e6d303ea04401651fc3bc05 Les événements des groupes fanotify initialisés avec cet attribut contiendront des informations supplémentaires sur le nom de l'entrée de répertoire corrélé à un événement. Cet attribut doit être fourni en association avec l'attribut \fBFAN_REPORT_DIR_FID\fP. Le fait de fournir cette valeur d'attribut sans \fBFAN_REPORT_DIR_FID\fP aboutira à l'erreur \fBEINVAL\fP. Cet attribut peut être combiné à l'attribut \fBFAN_REPORT_FID\fP. Un enregistrement supplémentaire de type \fBFAN_EVENT_INFO_TYPE_DFID_NAME\fP, qui enferme les informations sur l'entrée de répertoire, est inclus dans la structure générique des métadonnées de l'événement et remplace l'enregistrement des informations supplémentaires de type \fBFAN_EVENT_INFO_TYPE_DFID\fP. L'enregistrement supplémentaire inclut un identificateur de fichier qui identifie un objet de système de fichiers de répertoire suivi d'un nom qui identifie une entrée dans ce répertoire. Pour les événements de modification d'entrée de répertoire \fBFAN_CREATE\fP, \fBFAN_DELETE\fP et \fBFAN_MOVE\fP, le nom signalé est celui de l'entrée de répertoire créée/effacée/déplacée. L'événement \fBFAN_RENAME\fP peut contenir deux enregistrements d'information. L'un, de type \fBFAN_EVENT_INFO_TYPE_OLD_DFID_NAME\fP, identifie l'ancienne entrée de répertoire. L’autre, de type \fBFAN_EVENT_INFO_TYPE_NEW_DFID_NAME\fP, identifie la nouvelle entrée de répertoire. Pour les autres événements qui se produisent sur un objet répertoire, l’identificateur rapporté est celui de l'objet répertoire lui\-même et le nom signalé est «\ .\ ». Pour les autres événements qui se produisent sur un objet non répertoire, l’identificateur de fichier signalé est celui de l'objet répertoire parent et le nom signalé est celui de l'entrée d'un répertoire où se situait l'objet au moment de l'événement. La raison derrière cette logique est que l’identificateur de fichier du répertoire signalé peut être passé à \fBopen_by_handle_at\fP(2) pour récupérer un descripteur de fichier de répertoire ouvert et que ce descripteur de fichier ainsi que le nom signalé puissent être utilisés pour appeler \fBfstatat\fP(2). La même règle qui s'applique au type d'enregistrement \fBFAN_EVENT_INFO_TYPE_DFID\fP s'applique aussi au type d'enregistrement \fBFAN_EVENT_INFO_TYPE_DFID_NAME\fP\ : si un objet non répertoire n'a pas de parent, soit l'événement ne sera pas signalé, soit il le sera sans les informations d'entrée de répertoire. Remarquez qu'il n'existe pas de garantie que l'objet de système de fichiers se trouve à l'endroit décrit par les informations de l'entrée de répertoire au moment où l'événement est reçu. Voir \fBfanotify\fP(7) pour des détails supplémentaires. .TP \fBFAN_REPORT_DFID_NAME\fP C'est un synonyme de (\fBFAN_REPORT_DIR_FID\fP|\fBFAN_REPORT_NAME\fP). .TP \fBFAN_REPORT_TARGET_FID\fP (depuis Linux 5.17) .\" commit d61fd650e9d206a71fda789f02a1ced4b19944c4 Les événements des groupes fanotify initialisés avec cet attribut contiendront des informations supplémentaires sur l'enfant corrélé aux événements de modification d'entrée de répertoire. Cet attribut doit être fourni en association avec les attributs \fBFAN_REPORT_FID\fP, \fBFAN_REPORT_DIR_FID\fP et \fBFAN_REPORT_NAME\fP. Sans cela, l'erreur \fBEINVAL\fP sera renvoyée. Pour les événements de modification d'entrée de répertoire \fBFAN_CREATE\fP, \fBFAN_DELETE\fP, \fBFAN_MOVE\fP et \fBFAN_RENAME\fP, un enregistrement supplémentaire de type \fBFAN_EVENT_INFO_TYPE_FID\fP est signalé en plus des enregistrements d'information de type \fBFAN_EVENT_INFO_TYPE_DFID\fP, \fBFAN_EVENT_INFO_TYPE_DFID_NAME\fP, \fBFAN_EVENT_INFO_TYPE_OLD_DFID_NAME\fP et \fBFAN_EVENT_INFO_TYPE_NEW_DFID_NAME\fP. L'enregistrement supplémentaire comprend un identifiant de fichier qui identifie l'objet enfant de système de fichier auquel se rapporte l'entrée de répertoire. .TP \fBFAN_REPORT_DFID_NAME_TARGET\fP C'est un synonyme de (\fBFAN_REPORT_DFID_NAME\fP|\fBFAN_REPORT_FID\fP|\fBFAN_REPORT_TARGET_FID\fP). .TP \fBFAN_REPORT_PIDFD\fP (depuis Linux 5.15) .\" commit af579beb666aefb17e9a335c12c788c92932baf1 Les événements des groupes fanotify initialisés avec cet attribut contiendront des informations supplémentaires dans la structure générique \fIfanotify_event_metadata\fP. Cet enregistrement d’informations sera de type \fBFAN_EVENT_INFO_TYPE_PIDFD\fP et contiendra un pidfd pour le processus responsable de la génération d'un événement. Un pidfd renvoyé dans cet objet enregistrement n'est pas différent du pidfd renvoyé lors d'un appel \fBpidfd_open\fP(2). Cet enregistrement sert aux applications qui veulent déterminer de manière fiable si le processus responsable de la génération d'un événement a été recyclé ou terminé. L'utilisation de l'attribut \fBFAN_REPORT_TID\fP avec \fBFAN_REPORT_PIDFD\fP n'est pas prise en charge actuellement et si on essaie de faire cela, une erreur \fBEINVAL\fP sera renvoyée. Cette limite est actuellement imposée par l'API de pidfd car elle ne gère actuellement que la création de pidfds pour des leaders de groupes de threads. La création de pidfds pour autre chose que les leaders de groupes de thread pourra être gérée dans l'avenir, annulant cette exception. Pour plus de détails sur l'enregistrement d'informations, voir \fBfanotify\fP(7). .PP L’argument \fIevent_f_flags\fP définit les attributs d’état de fichier qui seront définis sur les descriptions de fichiers ouverts qui sont créées pour les événements fanotify. Pour plus de précisions sur ces attributs, consultez la description des valeurs de \fIflags\fP dans \fBopen\fP(2). \fIevent_f_flags\fP contient un champ multibit pour le mode d’accès. Ce champ peut prendre une des valeurs suivantes\ : .TP \fBO_RDONLY\fP Cette valeur permet l’accès en lecture seule. .TP \fBO_WRONLY\fP Cette valeur permet l’accès en écriture seule. .TP \fBO_RDWR\fP Cette valeur permet l’accès en lecture et écriture. .PP Des bits supplémentaires peuvent être définis dans \fIevent_f_flags\fP. Les valeurs les plus utiles sont les suivantes\ : .TP \fBO_LARGEFILE\fP Activer la prise en charge de fichiers dépassant 2\ Go. Sans cet attribut, une erreur \fBEOVERFLOW\fP surviendra lors d’une tentative d’ouverture d’un gros fichier surveillé par un groupe fanotify sur un système 32\ bits. .TP \fBO_CLOEXEC\fP (depuis Linux\ 3.18) .\" commit 0b37e097a648aa71d4db1ad108001e95b69a2da4 Activer l'attribut «\ close\-on\-exec\ » pour le descripteur de fichier. Consultez la description de l'attribut \fBO_CLOEXEC\fP dans \fBopen\fP(2) pour savoir pourquoi cela peut être utile. .PP Les valeurs suivantes sont aussi permises\ : \fBO_APPEND\fP, \fBO_DSYNC\fP, \fBO_NOATIME\fP, \fBO_NONBLOCK\fP et \fBO_SYNC\fP. Indiquer n’importe quel autre attribut dans \fIevent_f_flags\fP provoque l’erreur \fBEINVAL\fP (mais consultez \fBBOGUES\fP). .SH "VALEUR RENVOYÉE" S'il réussit, \fBfanotify_init\fP() renvoie un nouveau descripteur de fichier. En cas d'erreur, il renvoie\ \fB\-1\fP et \fIerrno\fP contient le code d'erreur. .SH ERREURS .TP \fBEINVAL\fP .\" commit 23c9deeb3285d34fd243abb3d6b9f07db60c3cf4 Une valeur incorrecte a été passée dans \fIflags\fP ou \fIevent_f_flags\fP. \fBFAN_ALL_INIT_FLAGS\fP (obsolète depuis Linux\ 4.20) définit tous les bits permis pour \fIflags\fP. .TP \fBEMFILE\fP Le nombre de groupes fanotify pour cet utilisateur dépasse la limite. Voir \fBfanotify\fP(7) pour des détails sur cette limite. .TP \fBEMFILE\fP La limite du nombre de descripteurs de fichiers par processus a été atteinte. .TP \fBENOMEM\fP Échec d’allocation mémoire pour le groupe de notification. .TP \fBENOSYS\fP Ce noyau n’implémente pas \fBfanotify_init\fP(). L’interface de programmation fanotify n'est disponible que si le noyau a été configuré avec \fBCONFIG_FANOTIFY\fP. .TP \fBEPERM\fP L’opération n’est pas permise car l’appelant n’a pas la capacité requise. .SH VERSIONS \fBfanotify_init\fP() a été introduit dans Linux\ 2.6.36 et activé dans Linux\ 2.6.37. .PP .\" commit 7cea2a3c505e87a9d6afc78be4a7f7be636a73a7 .\" commit 7cea2a3c505e87a9d6afc78be4a7f7be636a73a7 Avant Linux 5.13, l'appel à \fBfanotify_init\fP() exigeait la capacité \fBCAP_SYS_ADMIN\fP. Depuis Linux\ 5.13, les utilisateurs peuvent appeler \fBfanotify_init\fP() sans la capacité \fBCAP_SYS_ADMIN\fP, pour créer et initialiser un groupe fanotify avec des fonctionnalités limitées. .TP Les limites imposées à l'écoutant d'un événement créé par un utilisateur sans la capacité \fBCAP_SYS_ADMIN\fP sont les suivantes\ : .RS .IP \[bu] 3 L'utilisateur ne peut pas demander une file d'attente d'événements illimitée en utilisant \fBFAN_UNLIMITED_QUEUE\fP. .IP \[bu] L'utilisateur ne peut pas demander un nombre illimité de marques en utilisant \fBFAN_UNLIMITED_MARKS\fP. .IP \[bu] L'utilisateur ne peut pas demander à utiliser des classes de notification \fBFAN_CLASS_CONTENT\fP ou \fBFAN_CLASS_PRE_CONTENT\fP. Cela signifie que l'utilisateur ne peut pas de demander des événements de droits. .IP \[bu] L'utilisateur doit créer un groupe qui identifie l'objet système de fichiers par des identificateurs de fichier, par exemple en fournissant l'attribut \fBFAN_REPORT_FID\fP. .IP \[bu] L'utilisateur est limité aux inœuds de marques. La possibilité de marquer un point de montage ou un système de fichiers à l'aide de \fBfanotify_mark\fP(), à travers l'utilisation de \fBFAN_MARK_MOUNT\fP ou de \fBFAN_MARK_FILESYSTEM\fP, n'est pas autorisée. .IP \[bu] L'objet événement de la file d'attente d'événements est limité en termes d'information disponible pour l'utilisateur non privilégié. Un utilisateur ne recevra pas non plus le pid qui a généré l'événement, sauf si le processus qui écoute a lui\-même généré l'événement. .RE .SH STANDARDS Cet appel système est spécifique à Linux. .SH BOGUES Le bogue suivant était présent avant Linux\ 3.18\ : .IP \[bu] 3 .\" Fixed by commit 0b37e097a648aa71d4db1ad108001e95b69a2da4 \fBO_CLOEXEC\fP est ignoré lorsqu'il est passé dans \fIevent_f_flags\fP. .PP Le bogue suivant était présent avant Linux\ 3.14\ : .IP \[bu] 3 .\" Fixed by commit 48149e9d3a7e924010a0daab30a6197b7d7b6580 l’argument \fIevent_f_flags\fP n’est pas vérifié pour les attributs incorrects. Les attributs qui ne sont conçus que pour une utilisation interne, comme \fBFMODE_EXEC\fP, peuvent être définis et seront donc définis pour les descripteurs de fichier renvoyés lors de la lecture depuis le descripteur de fichier fanotify. .SH "VOIR AUSSI" \fBfanotify_mark\fP(2), \fBfanotify\fP(7) .PP .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 . .PP 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. .PP 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 .