スポンサーリンク

MTREE(8) FreeBSD システム管理者マニュアル MTREE(8)

名称

mtree − ディレクトリ階層をマップする

書式

mtree [−LPUcdeinqruxw] [−f spec] [−f spec] [−K keywords] [−k keywords] [−p path] [−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 を返します。

−w
エラー状態のいくつかを致命的でない警告にします。

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

−f file
ファイル階層記述を、標準入力からではなく、ファイル file から読み込 みます。

本オプションを 2 度指定すると、ファイル階層に対する比較の代りに、2 個の仕様が互いに比較されます。仕様は、 −c を使った出力のように整列 されます。この場合の出力書式は comm(1) を思い起させるものであり、そ れぞれ前にタブ 0 個、タブ 1 個、タブ 2 個を持つ、欄 "in first spec only", "in second spec only", "different" を持ちます。 "different" 欄の各エントリは 2 行を占め、各行がそれぞれの仕様用です。

−K keywords
指定した keywords (空白あるいはコンマで区切ったもの) を現在のキー ワード集合に追加します。

−k keywords
現在のキーワード集合の代わりに、 ‘‘type’’ キーワードおよび指定した keywords (空白あるいはコンマで区切ったもの) を使用します。

−p path
ファイル階層のルートディレクトリを、カレントディレクトリではなく path とします。

−s seed
キーワード 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
ファイルサイズ (バイト数)。

link
シンボリックリンクが指し示しているはずのファイル。

time
ファイルの最終修正時刻。

type
ファイルタイプ。以下のいずれかを指定します:

block
ブロック型スペシャルデバイス
char

文字型スペシャルデバイス
dir

ディレクトリ
fifo

FIFO
file

通常ファイル
link

シンボリックリンク
socket

ソケット

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

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

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

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

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

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

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

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

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

使用例

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

−d オプションおよび −u オプションを組み合わせると、ソフトウェア配布やそれ に類する処理のためにディレクトリ階層を作成するのに用いることができます。 /etc/mtree に置かれたファイル群は、この FreeBSD 配布のほとんど全てのディ レクトリを作成するのに用いられました。

関連ファイル

       /etc/mtree

システムのファイル階層記述ディレクトリ

診断

ユーティリティ mtree は、成功すると 0 で、エラーがあった場合は >0 で終了 します。

関連項目

chflags(1), chgrp(1), chmod(1), cksum(1), md5(1), stat(2), fts(3), md5(3), chown(8)

歴史

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

FreeBSD 10.0 January 11, 2004 FreeBSD 10.0

スポンサーリンク