bart - ファイル整合性スキャナおよびレポータ
/usr/bin/bart create [ -n] [-R root_directory] [-r rules_file | -]
/usr/bin/bart create [-n] [-R root_directory] -I [file_name]...
/usr/bin/bart compare [-i attribute ] [-p] [-r rules_file | -] control-manifest test-manifest
bart(8) とは、暗号化強度チェックサムとファイルシステムメタデータを使用して変更を報告する、規則ベースのファイル整合性の走査および報告ツールです。
bart ユーティリティーは、次の 2 つの基本機能を実行します。
これは目録生成ツールで、システムのファイルレベルのスナップショットを取得します。 出力は、「マニフェスト」と呼ばれるファイル属性のカタログです。See bart_manifest(5).
カタログ化するファイルのリストを指定するには、3 つの方法があります。1 つ目はオプションなしの bart create を使用する方法、2 つ目はコマンド行にファイル名を指定する方法、3 つ目は監視対象のファイルを指定する指示語を含む規則ファイルを作成する方法です。See bart_rules(5).
デフォルトでは、目録生成ツールはルート (/) ファイルシステムに含まれるすべてのファイルのすべての属性をカタログ化します。Other file systems are cataloged only if they are of the same type as the root file system, and the path to them does not cross any other type of file system.
For example, if /, /var, and /var/share are separate ZFS file systems, with /var mounted on / and /var/share mounted on /var, then all three file systems are cataloged.However, /tmp, also mounted on /, would not be cataloged because it is a TMPFS file system.
これはレポートツールで、2 つの目録を比較します。出力は、ファイルごとに属性の相違を示したリストです。これらの相違は、制御目録とテスト目録という 2 つの目録の相違です。
「相違」とは、両方の目録でカタログ化されている特定のファイルの属性に対する変更です。目録に追加されたファイルや目録から削除されたファイルは、相違として報告されます。
レポーティングメカニズムとして、詳細出力と、プログラム的な出力の 2 種類を利用できます。詳細出力は、ローカライズされ、複数の行にわたって表示されます。プログラム的な出力は、ほかのプログラムで解析しやすい形式です。OUTPUT を参照してください。
デフォルトでは、レポートツールは詳細出力を生成し、変更されたディレクトリのタイムスタンプ (dirmtime 属性) を除くすべての相違を報告します。
一貫性のある正確な比較結果を得るためには、同じ規則ファイルを使って制御目録 (control-manifest) とテスト目録 (test-manifest) を作成する必要があり、「比較」操作中にその規則ファイルを使用する必要があります。
目録を作成したり、2 つの目録を比較したりするときに、指定したファイルまたはサブツリーを無視するには、規則ファイルを使用します。ユーザーは、異なる規則ファイルを指定して bart compare を再実行することにより、異なる観点で目録を比較できます。bart_rules(5) および bart_manifest(5) を参照してください。
bart_rules という規則ファイルを使って、追跡するファイルやフラグを付ける相違の種類を指定することもできます。
サポートしているオプションは、次のとおりです。
グローバルに無視するファイル属性を指定します。属性をコンマ区切りリストとして指定します。
このオプションを使用すると、規則ファイルのグローバルな IGNORE キーワードにファイル属性を指定した場合と同じ動作になります。See bart_rules(5).
ファイルの入力リストを指定します。このファイルリストは、コマンド行に指定することも、標準入力から読み取ることもできます。
ファイルリストに挙げられたすべての通常ファイルのコンテンツ署名を計算しないようにします。
Display manifest comparison output in “programmatic mode,” which is suitable for programmatic parsing.出力はローカライズされません。
rules_file を使って、カタログ化するファイルおよびディレクトリを指定し、フラグを付けるファイル属性の相違を定義します。rules_file が – である場合は、標準入力から規則が読み取られます。See bart_rules(5) for the definition of the syntax.
目録のルートディレクトリを指定します。規則に指定するパスも、目録で報告されるパスも、すべて root_directory からの相対パスです。
Specify the cryptographic digest algorithm to use for the hash of the file contents: md5, sha1, sha256, sha384, and sha512 are the currently supported values.–a を指定しない場合は、sha256 が使用され、どのハッシュアルゴリズムが使用されるかを示す Version 1.1 マニフェストが作成されます。md5 を指定した場合は、Version 1.0 マニフェストが作成されます。
bart では、オペランドを引用符で囲むことができます。これは、指定するサブツリーやサブツリー修飾子にスペースが含まれる場合に特に重要です。
次のオペランドがサポートされています。
制御システム上で bart create によって作成された目録を指定します。
テストシステム上で bart create によって作成された目録を指定します。
bart create および bart compare コマンドは、出力を標準出力に書き出し、エラーを標準エラーに書き出します。
bart create コマンドは、システム目録を生成します。See bart_manifest(5).
bart compare コマンドは、2 つのシステム目録を比較するときに、ファイル間の相違を示すリストを生成します。デフォルトでは、比較出力はローカライズされます。ただし、–p オプションを指定すると、プログラムで操作するのに適した形式で出力が生成されます。
filename attribute control:xxxx test:yyyy
control-manifest と test-manifest で異なるファイルの名前。For file names that contain embedded whitespace or newline characters, see bart_manifest(5).
比較された目録間で相違があるファイル属性の名前。xxxx は control-manifest の属性値であり、yyyy は test-manifest の属性値です。同じファイルの複数の属性に相違が見つかった場合、別々の行にそれぞれの相違が示されます。
サポートされている属性は次のとおりです。
ファイルの ACL 属性。ACL 属性を持つファイルの場合、このフィールドには acltotext() の出力が入ります。
すべての属性。
ファイルのチェックサム値。この属性が指定されるのは通常ファイルのみです。コンテキストのチェックを無効にした場合と、チェックサムが計算できない場合は、このフィールドの値は – になります。
シンボリックリンクのリンク先。
デバイスノードの値。この属性が使用されるのは、キャラクタデバイスファイルとブロックデバイスファイルのみです。
ディレクトリに変化が起きた時点。1970 年 1 月 1 日の 00:00:00 UTC から数えた秒数で示されます。
このエントリの所有者の、数値で示したグループ ID。
リンクが作成された時点。
ファイルのアクセス権を示す 8 進の数値。
ファイルに変化が起きた時点。1970 年 1 月 1 日の 00:00:00 UTC から数えた秒数で示されます。
ファイルサイズ (バイト)。
Type of file.
このエントリの所有者の、数値で示したユーザー ID。
次のデフォルト出力は、 /etc/passwd ファイルの属性の相違を示しています。この出力から、size、mtime、および contents 属性に変化があったことがわかります。
/etc/passwd: size control:74 test:81 mtime control:3c165879 test:3c165979 contents control:daca28ae0de97afd7a6b91fde8d57afa test:84b2b32c4165887355317207b48a6ec7
filename attribute control-val test-val [attribute control-val test-val]*
デフォルト形式の filename と同じです。
各ファイルの制御目録とテスト目録間で異なるファイル属性の説明。各エントリには、各目録の属性値が含まれます。See bart_manifest(5) for the definition of the attributes.
プログラム的な出力の各行には、1 つのファイルに含まれるすべての属性の相違が示されます。
プログラム的な次の出力は、/etc/passwd ファイルの属性の相違を示しています。この出力から、size、mtime、および contents 属性に変化があったことがわかります。
/etc/passwd size 74 81 mtime 3c165879 3c165979 contents daca28ae0de97afd7a6b91fde8d57afa 84b2b32c4165887355317207b48a6ec7
目録生成ツールは、次の終了値を返します。
成功
ファイル処理時の致命的でないエラー (アクセス権の問題など)
致命的エラー (無効なコマンド行オプションなど)
レポートツールは、次の終了値を返します。
相違は報告されませんでした
相違が見つかりました
比較実行中の致命的エラー
次のコマンド行は、/ ファイルシステムに含まれるすべてのファイルで構成されるデフォルトの目録を作成します。–n オプションを指定すると、チェックサムが計算されないため、目録がより速く生成されます。
bart create -n使用例 2 指定したサブツリーの目録を作成する
次のコマンド行は、/home/nickiso サブツリーに含まれるすべてのファイルで構成される目録を作成します。
bart create -R /home/nickiso使用例 3 標準入力を使って目録を作成する
The following command line uses output from the find(1) command to generate the list of files to be cataloged.–I オプションを指定した bart create コマンドの入力として、find の出力が使用されています。
find /home/nickiso -print | bart create -I使用例 4 規則ファイルを使って目録を作成する
次のコマンド行は、rules という規則ファイルを使って、カタログ化するファイルを指定します。一貫性のある正確な結果を得るために目録を比較するときに、規則ファイルを指定する必要があります (例 7 を参照)。
bart create -r rules使用例 5 2 つの目録を比較し、プログラム的な出力を生成する
次のコマンド行は、2 つの目録を比較し、プログラムで解析するのに適した出力を生成します。
bart compare -p manifest1 manifest2使用例 6 2 つの目録を比較し、無視する属性を指定する
次のコマンド行は、2 つの目録を比較します。dirmtime、lnmtime、および mtime 属性は比較されません。
bart compare -i dirmtime,lnmtime,mtime manifest1 manifest2使用例 7 規則ファイルを使って 2 つの目録を比較する
次のコマンド行は、rules という規則ファイルを使って 2 つの目録を比較します。
bart compare -r rules manifest1 manifest2
The MD5 & SHA-1 algorithms are currently considered weak for cryptographic use.These algorithms should be used only for compatibility with legacy manifest data.Manifests should be updated to use a SHA-2 family checksum when possible (sha256, sha384, or sha512).
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
cksum(1)、digest(1)、find(1)、bart_manifest(5)、bart_rules(5)、attributes(7)
特定のシステムライブラリのファイル属性は、システムのブート時に一時的に変更されることがあります。誤った警告が発生しないようにするには、2 つの目録が作成されたときのシステムの状態が同じ場合、つまり、どちらもシングルユーザーモードで作成された場合か、どちらもマルチユーザーモードで作成された場合にのみ、目録を比較するようにしてください。
Support for Version 1.1 manifests, SHA checksums, and the –a option was added in Oracle Solaris 11.0.0.
The bart command was added in Solaris 10 3/05.