LoggedFS構成ファイルの構文は何ですか?
公式ドキュメントには、loggedfs
コマンドの使用方法と設定ファイルの例しかありませんでした。OK、それはXMLですが、可能なすべてのタグと属性は何で、それらはどういう意味ですか?
LoggedFS構成ファイルの構文は何ですか?
公式ドキュメントには、loggedfs
コマンドの使用方法と設定ファイルの例しかありませんでした。OK、それはXMLですが、可能なすべてのタグと属性は何で、それらはどういう意味ですか?
回答:
Config.cpp
構成の解析を担当するファイルであるを突き抜けました。設定例は実際に利用可能なオプションをキャプチャするのにかなり良い仕事をします-それほど多くありません
以下の「出力例」を参照するときは、この行について話しています(サンプルページからランダムにプルされています)。
17:29:35 (src/loggedfs.cpp:136) getattr /var/ {SUCCESS} [ pid = 8700 kded [kdeinit] uid = 1000 ]
ルートタグは<loggedFS>
です。2つのオプション属性があります。
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
*
。操作の原因となったプロセスの所有者が指定されたユーザーIDを持っている場合(*
当然、ユーザーIDが一致することを意味します)、ルールは特定の操作とのみ一致します。出力例で1000
は、はuidですgetattr
は、はアクションです。可能なアクションは次のとおりです。
SUCCESS
。ゼロ以外の戻りコードは、と照合しFAILURE
ます。これらは、唯一の可能な値ですので、ほとんどの場合、あなたはどちらかのハードコーディングするつもりだSUCCESS
、FAILURE
または使用.*
しますが、両方をしたい場合。出力例でSUCCESS
は、retname
<loggedFS>
属性とは異なり、これらにはデフォルトがありません。また、パーサーは不明な属性を認識してエラーを出力しますが、欠落している属性は検出しないため、属性を忘れた場合は初期化されていないメモリが使用されます。
<include extension="/a" uid="*" action=".*" retname=".*" />
、パスに含まれるファイルを操作するすべての操作に一致し/a
ます/foo/abc/bar
。あなたはおそらくそれらすべてを^
and $
で固定したいでしょうが、それからそれが一致するためにパス全体を含める必要があります
/a
、除外/a/b
および含める/a/b/c
、されて/a/b/c
見て?ディレクトリを含めると、常にその内容が含まれますか?