LoggedFS構成ファイルの構文


8

LoggedFS構成ファイルの構文は何ですか?

公式ドキュメントには、loggedfsコマンドの使用方法と設定ファイルの例しかありませんでした。OK、それはXMLですが、可能なすべてのタグと属性は何で、それらはどういう意味ですか?

回答:


8

Config.cpp構成の解析を担当するファイルであるを突き抜けました。設定例は実際に利用可能なオプションをキャプチャするのにかなり良い仕事をします-それほど多くありません

以下の「出力例」を参照するときは、この行について話しています(サンプルページからランダムにプルされています)。

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

ルートタグは<loggedFS>です。2つのオプション属性があります。

  • logEnabledは文字列です。「true」は、実際にログ情報を出力する必要があることを意味します。それ以外のものはすべてのロギングを無効にします。プログラムの全体的な要点なので、デフォルトは「true」です。
  • printProcessNameは文字列です。「true」はログ出力にプロセス名が含まれることを意味し、それ以外の場合は含まれません。デフォルトは「true」です。出力例でkded [kdeinit]は、はプロセス名です

対象となる子ノードは<include>およびのみ<exclude>です。この例では、それらはunder <includes>および<excludes>block をグループ化しますが、それらはパーサーによって無視されます(<include>および以外の他のノードと同様<exclude>)。

当然、<include>ルールは一致する場合にログ行を出力しますが、行が一致しない場合はログ行を出力します<exclude>。オーバーラップが発生した場合は、を<exclude>オーバーライドします<include>。通常<include>、イベントをログに記録するには、一致するルールが少なくとも1つ必要ですが、<include>ルールが0の場合は例外です。一致する<exclude>行があっても、すべてのイベントがログに記録されます。

両方とも同じ属性<include><exclude>取ります:

  • 拡張子は、アクセス/変更/何でもされたファイルの絶対パスと照合される正規表現です(extensionかなり貧弱な名前ですが、これは一般的な使用法だと思います)。たとえば、の場合touch /mnt/loggedfs/some/file、の正規表現はextension(部分的に)一致する必要があります/mnt/loggedfs/some/file
  • uidは、整数またはのいずれかを含む文字列です*。操作の原因となったプロセスの所有者が指定されたユーザーIDを持っている場合(*当然、ユーザーIDが一致することを意味します)、ルールは特定の操作とのみ一致します。出力例で1000は、はuidです
  • actionは、ファイルシステムで実行される特定のタイプの操作です。出力例でgetattrは、はアクションです。可能なアクションは次のとおりです。
    • アクセス
    • chmod
    • チャウン
    • getattr
    • リンク
    • mkdir
    • mkfifo
    • mknod
    • 開いた
    • オープン読み取り専用
    • オープンリードライト
    • オープン書き込み専用
    • 読んだ
    • readdir
    • readlink
    • リネーム
    • rmdir
    • statfs
    • シンボリックリンク
    • 切り捨てる
    • リンクを解除
    • utime
    • utimens
    • 書く
  • retnameは正規表現です。LoggedFSによって実行された実際のファイルシステム操作の戻りコードが0の場合、正規表現は文字列と照合されますSUCCESS。ゼロ以外の戻りコードは、と照合しFAILUREます。これらは、唯一の可能な値ですので、ほとんどの場合、あなたはどちらかのハードコーディングするつもりだSUCCESSFAILUREまたは使用.*しますが、両方をしたい場合。出力例でSUCCESSは、retname

<loggedFS>属性とは異なり、これらにはデフォルトがありません。また、パーサーは不明な属性を認識してエラーを出力しますが、欠落している属性は検出しないため、属性を忘れた場合は初期化されていないメモリが使用されます。


デフォルトの包含/除外リストは何ですか(空なので、何も含まれていないと思います)?あなたが含まれている場合/a、除外/a/bおよび含める/a/b/c、されて/a/b/c見て?ディレクトリを含めると、常にその内容が含まれますか?
Gilles 'SO-悪をやめる'

@Gillesディレクトリについては何も認識せず、完全な絶対パスを取得して正規表現と照合します。したがって<include extension="/a" uid="*" action=".*" retname=".*" />、パスに含まれるファイルを操作するすべての操作に一致し/aます/foo/abc/bar。あなたはおそらくそれらすべてを^and $で固定したいでしょうが、それからそれが一致するためにパス全体を含める必要があります
Michael Mrozek

@ギレスルールがないことは実際には特別なケースなので、私はそれを答えに追加します
Michael Mrozek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.