MTREE
Section: Maintenance Commands (8)
索引
jman
BSD mandoc
索引
名称
mtree
- ディレクトリ階層をマップする
索引
書式
[-LPUcdeinqruxw
]
-words
[-f spec
]
-words
[-f spec
]
-words
[-K keywords
]
-words
[-k keywords
]
-words
[-p path
]
-words
[-s seed
]
-words
[-X exclude-list
]
索引
解説
ユーティリティは、カレントディレクトリをルートとするファイル階層を、
標準入力から読み込んだファイル階層記述と比較します。
その記述とマッチしない特性をもつファイルや、
実際のファイル階層あるいはファイル階層記述のいずれかから欠落しているファイル
に関するメッセージを標準出力に出力します。
以下のオプションがあります:
- -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 レベル上に上げることを
意味します。
空行および最初の非空白文字がハッシュ記号 (``#'') であるような行は無視されます。
は成功するとステータス 0 で終了し、何らかのエラーが生じると 1 で終了します。
また、ファイル階層がファイル階層記述とマッチしない場合はステータス 2 で
終了します。
ただしオプション
-U
が指定されている場合は、ステータス 2 はステータス 0 に変換されます。
索引
使用例
「トロイの木馬」に感染したシステムバイナリを検出するには、
以下のように操作することを推奨します。
ファイルシステムに対して
-K
sha1digest
を実行し、その結果のコピーを別マシンか、少なくとも暗号化した形式で
ストアします。
出力ファイル自身は
md5(1)
ユーティリティを用いてダイジェストを作成します。
そして定期的に
と
md5(1)
をオンラインのファイル階層記述に対して走らせます。
クラッカーが手を加えたバイナリに合わせて
オンラインのファイル階層記述を変更することは
可能ですが、オリジナルと同じ MD5 ダイジェストをもつ記述を作成するのは
非現実的だと考えられています。
-d
オプションおよび
-u
オプションを組み合わせると、ソフトウェア配布やそれに類する処理のために
ディレクトリ階層を作成するのに用いることができます。
/etc/mtree
に置かれたファイル群は、この
Fx 配布のほとんど全てのディレクトリを作成するのに用いられました。
索引
関連ファイル
- /etc/mtree
-
システムのファイル階層記述ディレクトリ
索引
診断
Ex -std
索引
関連項目
chflags(1),
chgrp(1),
chmod(1),
cksum(1),
md5(1),
stat(2),
fts(3),
md5(3),
chown(8)
索引
歴史
ユーティリティは
BSD 4.3 Reno
で登場しました。
MD5
ダイジェスト機能は、
cksum(1)
をだますプログラムが広範囲に悪用されたのに対抗して
Fx 2.1
で追加されました。
新たな攻撃により
MD5
の弱さが示されたため、
SHA-1
と
RIPEMD160
のダイジェスト機能が
Fx 4.0
で追加されました。
ファイルフラグのサポートは
Fx 4.0
で追加されました。このほとんどは
Nx 由来です。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 使用例
-
- 関連ファイル
-
- 診断
-
- 関連項目
-
- 歴史
-
Time: 07:07:40 GMT, January 12, 2009