mtree(8) FreeBSD 一般コマンドマニュアル

mtree

前のページ 上に戻る 次のページ

mtree


           [-s seed] [-X exclude-list]


解説

     mtree は、カレントディレクトリをルートとするファイル階層を、標準入力から
     読み込んだファイル階層記述と比較します。その記述とマッチしない特性をもつ
     ファイルや、実際のファイル階層あるいはファイル階層記述のいずれかから欠落
     しているファイルに関するメッセージを標準出力に出力します。

     以下のオプションがあります:

     -L    ファイル階層のすべてのシンボリックリンクをたどります。

     -P    ファイル階層のシンボリックリンクをたどりません。代りに、シンボリッ
           クリンク自身を比較対象にします。これがデフォルトです。

     -U    既存ファイルの所有者、グループおよびパーミッションをファイル階層記
           述に合わせて修正し、欠落しているディレクトリを作成します。欠落ディ
           レクトリを作成するために、ユーザ、グループおよびパーミッションの全
           てを指定しなければなりません。成功するとステータス 0 で終了し、何ら
           かのエラーが発生すると 1 で終了します。ミスマッチがあっても、それが
           訂正されればエラーとはみなされません。

     -c    ファイル階層の記述を標準出力に出力します。

     -d    ディレクトリ型以外のファイルは全て無視します。

     -e    ファイル階層には存在するが、ファイル階層記述に存在しないファイルが
           あっても警告しません。

     -i    -c オプションでファイル階層記述を作成する際、ディレクトリレベルを一
           つ下りる毎に空白 4 つ分ずつインデントして出力します。各ディレクトリ
           前に出力される /set 文やコメントには影響を与えませんが、各ディレク
           トリの最後に出力されるコメントには影響を及ぼします。

     -n    ファイル階層記述作成の際、パス名コメントを出力しません。 -c オプ
           ション使用時は通常、各ディレクトリの前後にコメントが出力されます。

     -q    静寂モード。 ``存在しない'' ディレクトリが既に存在するという理由で
           作成できない場合、文句を言いません。これは、ディレクトリがシンボ
           リックリンクの場合に発生します。

     -r    ファイル階層記述に記載されていないファイル階層に含まれるファイルを
           全て削除します。

     -u    オプション -U と同様ですが、現ファイル階層がファイル階層記述とマッ
           チしなければステータス 2 を返します。

     -x    ファイル階層中のマウントポイント以下に降下しません。

     -f file
           ファイル階層記述を、標準入力からではなく、ファイル file から読み込
           みます。
           キーワード cksum が指定されている全ファイルに対する単一のチェックサ
           ムを標準エラー出力に出力します。チェックサムのシードには指定された
           値が用いられます。

     -X exclude-list
           指定されたファイルは fnmatch(3) パターンを含みます。これにマッチす
           るファイルはファイル階層記述から除外されます。 1 行に 1 個ずつ記述
           します。パターンに `/' 文字が含まれる場合、 (開始したディレクトリと
           の相対で) パス名全体に対してマッチが取られます。そうでない場合、ベ
           ース名に対してのみマッチが取られます。 exclude-list ファイルにはコ
           メントは許されません。

     ファイル階層記述は多くの場合、「キーワード」つまりファイルに関連した値を
     指定する文字列から構成されます。どのキーワードにもデフォルト値はありませ
     ん。キーワードに値が設定されていない場合、そのキーワードに基づいたチェッ
     クは行われません。

     現在サポートされているキーワードは以下の通りです:

     cksum       cksum(1) ユーティリティで規定されるデフォルトアルゴリズムを用
                 いたファイルのチェックサム。

     flags       シンボル名のファイルフラグ。これらの名前についての情報は
                 chflags(1) を参照してください。フラグ無しを設定するには、文字
                 列 ``none'' を指定して、現在のデフォルトに優先できます。

     ignore      このファイル以下のファイル階層を無視します。

     gid         数値で指定したファイルのグループ。

     gname       シンボル名で指定したファイルのグループ。

     md5digest   ファイルの MD5 メッセージダイジェスト。

     sha1digest  FIPS ファイルの 160-1 (``SHA-1'') メッセージダイジェスト。

     ripemd160digest
                 ファイルの RIPEMD160 メッセージダイジェスト。

     mode        数値 (8 進数) あるいはシンボル値で指定した現ファイルのパー
                 ミッション。

     nlink       ファイルが持っているはずのハードリンク数。

     nochange    このファイルもしくはディレクトリが存在することのみ確認し、他
                 の属性は無視します。

     uid         数値で指定したファイルの所有者。

     uname       シンボル名で指定したファイルの所有者。

     size        ファイルサイズ (バイト数)。

     デフォルトのキーワード集合は flags, gid, mode, nlink, size, link, time,
     uid です。

     ファイル階層記述には 4 つのタイプの行があります。

     1 つめのタイプの行はキーワードに大域的な値を設定するもので、文字列
     ``/set'' とそれに続く空白、そしてキーワードとその値のペアの集合を空白で区
     切ったものから構成されます。キーワードとその値のペアはキーワードとそれに
     続く等号 (``='')、そして値から成り、空白は含みません。一旦キーワードが設
     定されると、再設定あるいは設定解除されるまでその値は変化しません。

     2 つめのタイプの行はキーワードの設定を解除するもので、文字列 ``/unset''
     とそれに続く空白、そして 1 つ以上のキーワードを空白で区切ったものから構成
     されます。

     3 つめのタイプの行はファイル記述を行うもので、ファイル名とそれに続く空
     白、そしてゼロ個以上のキーワードと値のペアを空白で区切ったものから構成さ
     れます。ファイル名の先頭には空白があっても構いません。ファイル名には標準
     的なファイル名マッチング文字 (``['', ``]'', ``?'', ``*'') が含まれていて
     もよく、その場合、そのファイル階層に存在するファイルは、マッチする最初の
     パターンと関連づけられます。

     各キーワードと値のペアはキーワードと等号 (``='')、そしてそのキーワードの
     値から構成され、空白は含みません。これらの値は、対応するキーワードの大域
     的な値を変更しませんが、大域的な値に優先します。

     パスは全て相対指定です。ディレクトリを指定すると、そのディレクトリ階層の
     中で更にファイルが検索されます。これがファイル階層記述における 4 つめのタ
     イプの行です: 文字列 ``..'' だけが含まれる行は、カレントディレクトリパス
     を 1 レベル上に上げることを意味します。

     空行および最初の非空白文字がハッシュ記号 (``#'') であるような行は無視され
     ます。

     mtree は成功するとステータス 0 で終了し、何らかのエラーが生じると 1 で終
     了します。また、ファイル階層がファイル階層記述とマッチしない場合はステー
     タス 2 で終了します。ただしオプション -U が指定されている場合は、ステータ
     ス 2 はステータス 0 に変換されます。


使用例

     「トロイの木馬」に感染したシステムバイナリを検出するには、以下のように操
     作することを推奨します。ファイルシステムに対して mtree -K sha1digest を実
     行し、その結果のコピーを別マシンか、少なくとも暗号化した形式でストアしま
     す。出力ファイル自身は md5(1) ユーティリティを用いてダイジェストを作成し
     ます。そして定期的に mtreemd5(1) をオンラインのファイル階層記述に対し
     て走らせます。クラッカーが手を加えたバイナリに合わせてオンラインのファイ
     ル階層記述を変更することは可能ですが、オリジナルと同じ MD5 ダイジェストを
     もつ記述を作成するのは非現実的だと考えらていれます。

     -d オプションおよび -u オプションを組み合わせると、ソフトウェア配布やそれ
     に類する処理のためにディレクトリ階層を作成するのに用いることができます。


歴史

     mtree ユーティリティは 4.3BSD-Reno で登場しました。 MD5 ダイジェスト機能
     は、 cksum(1) をだますプログラムが広範囲に悪用されたのに対抗して
     FreeBSD 2.1 で追加されました。新たな攻撃により MD5 の弱さが示されたため、
     SHA-1 と RIPEMD160 のダイジェスト機能が FreeBSD 4.0 で追加されました。
     ファイルフラグのサポートは FreeBSD 4.0 で追加されました。このほとんどは
     NetBSD 由来です。

FreeBSD 4.4                    February 26, 1999                   FreeBSD 4.4

ABELNET VPSサービス