GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Syntax der Loggedfs-Konfigurationsdatei?

Wie lautet die Syntax der LoggedFS-Konfigurationsdatei?


Die offizielle Dokumentation enthielt nur Gebrauchsanweisungen für das loggedfs Befehl und ein Beispiel für eine Konfigurationsdatei. Ok, es ist XML, aber was sind all die möglichen Tags und Attribute und was bedeuten sie?

Akzeptierte Antwort:

Ich habe Config.cpp durchstöbert , die Datei, die für das Parsen der Konfiguration verantwortlich ist. Die Beispielkonfiguration erfasst die verfügbaren Optionen ziemlich gut – es gibt nicht sehr viele

Wenn ich mich auf „die Beispielausgabe“ unten beziehe, spreche ich von dieser Zeile (zufällig aus der Beispielseite gezogen):

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

Das Root-Tag ist <loggedFS> . Es hat zwei optionale Attribute:

  • logEnabled ist ein String – „true“ bedeutet, dass eigentlich Protokollinformationen ausgegeben werden sollten; alles andere deaktiviert die gesamte Protokollierung. Standardmäßig „true“, da dies der springende Punkt des Programms ist
  • printProcessName ist eine Zeichenfolge – „true“ bedeutet, dass die Protokollausgabe den Prozessnamen enthält, alles andere bedeutet, dass dies nicht der Fall ist. Standardmäßig „true“. In der Beispielausgabe kded [kdeinit] ist der Prozessname

Die einzigen untergeordneten Knoten, um die es sich kümmert, sind <include> und <exclude> . Im Beispiel gruppieren sie diese unter <includes> und <excludes> Blöcke, aber diese werden vom Parser ignoriert (ebenso wie alle anderen Knoten außer <include> und <exclude> ).

Natürlich <include> Regeln bewirken, dass die Protokollzeile ausgegeben wird, wenn sie übereinstimmen, während <exclude> Linien bewirken, dass dies nicht der Fall ist. Im Falle einer Überschneidung <exclude> überschreibt <include> . Normalerweise benötigen Sie mindestens einen <include> Regel für ein zu protokollierendes Ereignis, aber eine Ausnahme ist, wenn 0 <include> vorhanden sind Regeln — dann werden alle Ereignisse protokolliert, selbst wenn es übereinstimmende <exclude> gibt Linien .

Sowohl <include> und <exclude> Nehmen Sie die gleichen Attribute:

  • Erweiterung ist ein regulärer Ausdruck, der mit dem absoluten Pfad der Datei abgeglichen wird, auf die zugegriffen/geändert/was auch immer (extension ist ein ziemlich schlechter Name, aber ich denke, das ist die übliche Verwendung). Zum Beispiel, wenn Sie touch /mnt/loggedfs/some/file berühren , der reguläre Ausdruck in extension müsste (teilweise) mit touch /mnt/loggedfs/some/file übereinstimmen
  • uid ist ein String, der entweder eine ganze Zahl oder * enthält . Die Regel stimmt nur dann mit einer bestimmten Operation überein, wenn der Eigentümer des Prozesses, der die Operation verursacht hat, die angegebene Benutzer-ID (* bedeutet natürlich, dass jede Benutzer-ID übereinstimmt). In der Beispielausgabe 1000 ist die uid
  • Aktion ist die spezifische Art der Operation, die auf dem Dateisystem ausgeführt wird. In der Beispielausgabe getattr ist die Aktion. Die möglichen Aktionen sind:
    • Zugriff
    • chmod
    • chown
    • getattr
    • verlinken
    • mkdir
    • mkfifo
    • mknod
    • offen
    • offen-schreibgeschützt
    • open-readwrite
    • open-writeonly
    • lesen
    • readdir
    • Leselink
    • umbenennen
    • rmdir
    • Statistiken
    • symlink
    • kürzen
    • Verknüpfung aufheben
    • Zeit
    • Utimes
    • schreiben
  • retname ist ein regulärer Ausdruck. Wenn der Rückgabecode der tatsächlichen Dateisystemoperation, die von LoggedFS ausgeführt wird, 0 ist, wird der reguläre Ausdruck mit der Zeichenfolge SUCCESS abgeglichen . Ein Rückgabecode ungleich Null bewirkt, dass er mit FAILURE abgeglichen wird . Dies sind die einzig möglichen Werte, also werden Sie höchstwahrscheinlich entweder SUCCESS fest codieren , FAILURE , oder verwenden Sie .* wenn du beides willst. In der Beispielausgabe SUCCESS ist der retname

Anders bei <loggedFS> Attribute, diese haben keine Standardwerte. Auch wenn der Parser unbekannte Attribute erkennt und Fehler ausgibt, erkennt er keine fehlenden Attribute. Wenn Sie also ein Attribut vergessen, verwendet er nicht initialisierten Speicher.

Verwandte:Linux – Finden Sie Verzeichnisse, die mehr als eine Datei mit derselben Erweiterung enthalten?
Linux
  1. Eingabe-/Ausgabeumleitung in Linux/Unix

  2. So überprüfen Sie die Syntax von Sudoers

  3. Wie wird die Syntaxhervorhebung in einer Datei angezeigt?

  4. Wie leite ich die Ausgabe eines Programms in eine Zip-Datei um?

  5. „xterm“ oder „xterm“ in der Konfigurationsdatei?

Bash:In Datei schreiben

Ansible Inventar- und Konfigurationsdateien

Gewusst wie:Grundlegende IPTables-Dateikonfiguration

Schwanzausgabe einfärben

Einfache Beispiel-Auditd-Konfiguration?

MySQL-Daten können nicht in Datei ausgegeben werden