GNU/Linux >> Tutoriels Linux >  >> Linux

Syntaxe du fichier de configuration Loggedfs ?

Quelle est la syntaxe du fichier de configuration LoggedFS ?


La documentation officielle n'avait que des instructions d'utilisation pour le loggedfs commande et un exemple de fichier de configuration. Ok, c'est du XML, mais quels sont tous les tags et attributs possibles et que signifient-ils ?

Réponse acceptée :

J'ai fouillé dans Config.cpp , le fichier responsable de l'analyse de la configuration. L'exemple de configuration fait en fait un assez bon travail pour capturer les options disponibles - il n'y en a pas beaucoup

Lorsque je fais référence à "l'exemple de sortie" ci-dessous, je parle de cette ligne (extraite au hasard de la page d'exemple) :

17:29:35 (src/loggedfs.cpp:136) getattr /var/ {SUCCESS} [ pid = 8700 kded [kdeinit] uid = 1000 ]

La balise racine est <loggedFS> . Il a deux attributs facultatifs :

  • logEnabled est une chaîne - "true" signifie qu'il doit en fait afficher les informations de journal ; toute autre chose désactive toute journalisation. La valeur par défaut est "true", car c'est en quelque sorte le but du programme
  • printProcessName est une chaîne - "true" signifie que la sortie du journal inclura le nom du processus, tout le reste signifie qu'il ne le fera pas. La valeur par défaut est "vrai". Dans l'exemple de sortie, kded [kdeinit] est le nom du processus

Les seuls nœuds enfants dont il se soucie sont <include> et <exclude> . Dans l'exemple, ils les regroupent sous <includes> et <excludes> blocs, mais ceux-ci sont ignorés par l'analyseur (comme tous les autres nœuds sauf <include> et <exclude> ).

Naturellement, <include> les règles lui font afficher la ligne de journal si elles correspondent, tandis que <exclude> les lignes ne le font pas. En cas de chevauchement, <exclude> remplace <include> . Normalement, vous avez besoin d'au moins un <include> règle à faire correspondre pour qu'un événement soit enregistré, mais une exception est s'il y a 0 <include> règles — alors tous les événements sont enregistrés, même s'il y a des <exclude> correspondants lignes .

Les deux <include> et <exclude> prendre les mêmes attributs :

  • extension est une expression régulière qui correspond au chemin absolu du fichier auquel on a accédé/modifié/quel que soit (extension est un nom plutôt pauvre, mais je suppose que c'est l'usage courant). Par exemple, si vous touch /mnt/loggedfs/some/file , l'expression régulière en extension devrait correspondre (partiellement) à /mnt/loggedfs/some/file
  • uid est une chaîne qui contient soit un entier soit * . La règle ne correspond à une opération donnée que si le propriétaire du processus à l'origine de l'opération possède l'ID utilisateur spécifié (* signifie naturellement que tout ID utilisateur correspond). Dans l'exemple de sortie, 1000 est l'uid
  • action est le type spécifique d'opération effectuée sur le système de fichiers. Dans l'exemple de sortie, getattr est l'acte. Les actions possibles sont :
    • accès
    • chmod
    • chown
    • getattr
    • lien
    • mkdir
    • mkfifo
    • mknod
    • ouvrir
    • ouvert en lecture seule
    • open-readwrite
    • ouvert en écriture seule
    • lire
    • readdir
    • lire le lien
    • renommer
    • rmdir
    • statfs
    • lien symbolique
    • tronquer
    • dissocier
    • utime
    • ustensiles
    • écrire
  • retname est une expression régulière. Si le code de retour de l'opération de système de fichiers réelle effectuée par LoggedFS est 0, l'expression régulière est comparée à la chaîne SUCCESS . Un code de retour différent de zéro le fait correspondre à FAILURE . Ce sont les seules valeurs possibles, donc vous allez probablement soit coder en dur SUCCESS , FAILURE , ou utilisez .* si vous voulez les deux. Dans l'exemple de sortie, SUCCESS est le retname

Contrairement au <loggedFS> attributs, ceux-ci n'ont pas de valeurs par défaut. De plus, bien que l'analyseur reconnaisse les attributs inconnus et les erreurs, il ne détecte pas les attributs manquants, donc si vous oubliez un attribut, il utilisera de la mémoire non initialisée.

Connexe :Linux – Trouver des répertoires qui contiennent plus d'un fichier de la même extension ?
Linux
  1. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  2. Fichier de configuration de la base de données Magento 2

  3. Comment vérifier la syntaxe sudoers

  4. Comment rediriger la sortie d'un programme vers un fichier Zip ? ?

  5. « xterm » ou « xterm » dans le fichier de configuration ?

Bash :Écrire dans un fichier

Fichiers d'inventaire et de configuration Ansible

Procédure :configuration de base des fichiers IPTables

Comment rediriger la sortie de system() vers un fichier ?

Coloriser la sortie de queue

Impossible de sortir les données MySQL dans le fichier