FileSet

FileSetタグは、ファイルのセットを記述します。

タグ属性

次に示すXML属性はタグ自体の属性であり、変更監視ルールによって監視されるエンティティの属性ではありません。

属性 説明 必須 初期設定値 設定できる値
base FileSetのベースディレクトリを設定します。タグ内の他のエレメントはすべて、このディレクトリから相対的に位置付けられます。 はい なし 文字列値は、構文的に有効なパスに変換されます (パスは存在しなくてもかまいません)。注意: UNCパスはWindows Agentで許可されますが、それには、リモートシステムでAgentコンピュータの「LocalSystem」アカウントからのアクセスが許可される必要があります。AgentはWindowsサービスの1つであり、LocalSystem (別名: NT AUTHORITY\SYSTEM) として実行されます。ネットワークリソースにアクセスするとき、LocalSystemは、コンピュータの資格情報であるDOMAIN\MACHINE$という名前のアカウントを使用します。リモートコンピュータに表示されるアクセストークンには、そのコンピュータの「Administrators」グループも含まれます。したがってリモート共有は、Agentのコンピュータアカウント、AgentのコンピュータのAdministratorsグループ、または「Everyone」のいずれかに読み取り権限を付与する必要があります。UNCパスへのアクセスをテストするには、この手法を使用して、LocalSystemアカウントのサービスとして実行するWindowsコマンドプロンプトを起動します。それによって、ネットワークおよびローカルのリソースへのアクセスを試したり、LocalSystemアカウントで実行される他のアプリケーションを起動したりできます。

baseの値が構文的に有効でない場合は、FileSetは処理されません。それ以外の設定は評価されます。
onChange 対象のファイルをリアルタイムで監視する必要があるかどうかを示します。 いいえ false true、false
followLinks このFileSetはシンボリックリンクを追跡します。 いいえ false true、false

エンティティセットの属性

次に示すFileSetの属性は、変更監視ルールによって監視可能な属性です。

  • Created: ファイルの作成日時のタイムスタンプ
  • LastModified: ファイルの最終アップデート日時のタイムスタンプ
  • LastAccessed: ファイルの最終アクセス日時のタイムスタンプ。Windowsの場合、この値はすぐにアップデートされません。また、パフォーマンスを向上させるために、最終アクセス日時のタイムスタンプの記録を無効にすることができます。詳細については、「ファイルの時刻」を参照してください。LastAccessed属性には、ファイル検索を実行するにはAgentが対象のディレクトリを開く必要があり、これにより最終アクセス日時のタイムスタンプが変更されるという問題もあります。UNIXの場合、ファイルを開くときにO_NOATIMEフラグが使用可能であれば、Agentはこのフラグを使用します。これにより、最終アクセス日時のタイムスタンプがOSによってアップデートされることがなくなり、検索速度を上げることができます。
  • Permissions: Windowsの場合は、ファイルのセキュリティ記述子 (SDDL形式)。ACLをサポートするUNIXシステムの場合は、PosixスタイルのACL。それ以外の場合は、数値 (8進数) 形式のUNIXスタイルのrwxrwxrwxのファイル権限。
  • Owner: ファイル所有者のユーザID (通常、UNIXでは「UID」と呼ばれます)
  • Group: ファイル所有者のグループID (通常、UNIXでは「GID」と呼ばれます)
  • Size: ファイルのサイズ
  • Sha1: SHA-1ハッシュ
  • Sha256: SHA-256ハッシュ
  • Md5: MD5ハッシュ
  • Flags: Windowsのみ。GetFileAttributes() Win32 APIから返されるフラグ。Windowsエクスプローラでは、これらをファイルの「属性」(読み取り専用、アーカイブ、圧縮など) とみなします。
  • SymLinkPath (UNIXおよびLinuxのみ): ファイルがシンボリックリンクである場合は、そのリンクのパスがここに格納されます。Windows NTFSでは、UNIXライクなシンボリックリンクをサポートしますが、ファイルではなくディレクトリ専用です。WindowsのショートカットオブジェクトはOSでは処理されないため、本当の意味でのシンボリックリンクではありません。Windowsエクスプローラはショートカットファイル (*.lnk) を処理しますが、*.lnkファイルを開くその他のアプリケーションはlnkファイルのコンテンツの表示のみ行います。
  • InodeNumber (UNIXおよびLinuxのみ): ファイルに関連付けられているinodeが格納されるディスクのinode番号
  • DeviceNumber (UNIXおよびLinuxのみ): ファイルに関連付けられているinodeが格納されるディスクのデバイス番号
  • BlocksAllocated (LinuxおよびUNIXのみ): ファイルを格納するために割り当てられるブロック数。
  • Growing: (DSA 7.5以降) 検索の前後のファイルのサイズが同じまたは増加した場合には「true」になり、縮小した場合は、「false」になります。これは、主にデータが追加されたログファイルで役立ちます。ログファイルがロールオーバーされると、この属性が変わります。
  • Shrinking: (DSA 7.5以降) 検索の前後のファイルのサイズが同じまたは縮小した場合は「true」になり、増加した場合は、「false」になります。

簡略記法による属性

次に、簡略記法による属性と、それらがマッピングされる属性を示します。

ディレクトリとしてマウントされたドライブ

ディレクトリとしてマウントされたドライブは他のディレクトリと同様に扱われます。ただし、ネットワークドライブである場合、そのドライブは無視されます。

代替データストリーム

NTFSベースのファイルシステムでは、代替データストリームの概念がサポートされます。この機能が使用される場合には、代替ストリームは概念上、ファイル内のファイルのように動作します。

この機能のデモを実行するには、コマンドプロンプトに以下のコマンドを入力します。

echo plain > sample.txt
echo alternate > sample.txt:s
more < sample.txt
more < sample.txt:s


最初の「more」は、テキスト「plain」のみを表示します。これは、メモ帳などの標準のテキストエディタでファイルを開いた場合に表示されるテキストと同じです。2番目の「more」は、sample.txtの「s」ストリームにアクセスして文字列「alternate」を表示します。

FileSetでは、ストリームが指定されていない場合、すべてのストリームが含まれます。各ストリームは、ベースラインの個別のエンティティエントリです。ストリームに対して指定できる属性は次のとおりです。

  • size
  • Sha1
  • Sha256
  • Md5
  • Contents

次の例では、前のデモで使用したストリームが両方とも含まれます。

<include key="**/sample.txt" />

特定のストリームを含めたり除外したりするには、「:」表記を使用します。次の例では、メインのsample.txtストリームではなく、sample.txtの「s」ストリームのみが一致します。

<include key="**/sample.txt:s" />

パターン照合は、ストリーム表記でもサポートされます。次の例では、sample.txtが含まれますが、その代替ストリームはすべて除外されます。

<include key="**/sample.txt" />
<exclude key="**/sample.txt:*" />

「key」の意味

keyは、「base」で指定されたディレクトリを基準とする相対ファイルパスに対して照合されるパターンを指定します。このパターンは、「/」で区切られたパターンのセクションからなる階層型のパターンです。パターン内のセクションは、所定のOSのファイルのセパレータによって区切られたパスのセクションに対して照合されます。

サブエレメント

  • Include
  • Exclude

これらのエレメントに指定できる属性とサブエレメントのincludeとexcludeの概要は、変更監視ルールの言語を参照してください。ここでは、FileSetエンティティセットクラスに関連するincludeとexcludeに固有の情報のみを記載します。

FileSetのincludeおよびexcludeに固有の属性

executable

ファイルが実行可能かどうかを決定します。これは、ファイルの権限がファイルの実行を許可していることを意味しません。ファイルの内容を確認するのではなく、プラットフォームに応じて、そのファイルが実行可能ファイルであるかどうかを決定します。

これは、Agentがファイルを開き、ファイルの先頭から1KBまたは2KBを検証して有効な実行可能イメージヘッダを探すことが必要になるため、比較的負荷の高い処理です。1つ1つのファイルを開いて読み取ることは、ディレクトリを検索してワイルドカードパターンに基づいてファイル名を照合する処理に比較すると、非常に高い負荷がかかります。結果として、「executable」を使用するincludeおよびexcludeルールでは、この属性を使用しないルールよりも検索に時間がかかります。