MTREE(8) | FreeBSD System Manager's Manual | MTREE(8) |
名称
mtree — ディレクトリ階層をマップする書式
mtree | [ -LPUcdeinqruxw][ -f spec][ -K keywords][ -k keywords][ -p path][ -s seed][ -X exclude-list] |
解説
mtree ユーティリティは、標準入力から読み込まれた仕様 (specification) に対してカレントディレクトリをルートとするファイル階層を比較します。メッセージは、特性が仕様と一致しないか、またはファイル階層または仕様のいずれかが失われている、あらゆるファイルに対して標準出力に書き込まれます。オプションは、次の通りです:
- -L
- ファイル階層のシンボリックリンクをすべてたどります。
- -P
- あらゆる比較でシンボリックリンク自体を考慮する代わりにファイル階層のシンボリックリンクをたどりません。これは、デフォルトです。
- -U
- 仕様と一致し、あらゆる不足しているディレクトリまたはシンボリックリンクを作成するために、既存のファイルの所有者、グループ、パーミッションと更新時刻を修正します。ユーザ、グループとパーミッションは、作成される不足しているディレクトリのためにすべて指定されなければなりません。修正された不一致は、エラーと見なされません。
- -c
- 標準出力にファイル階層のための仕様を印刷 (出力) します。
- -d
- ディレクトリのタイプのファイル以外、すべてを無視します。
- -e
- 仕様ではなく、ファイル階層にあるファイルに関するエラーを出しません。
- -i
- -c オプションで仕様を作成するとき、ディレクトリのレベルが下られるごとに、 4 つの空白を出力して段付けします。これは、各ディレクトリの前に /set 文またはコメントのいずれかに影響しません。しかしながら、それは、各ディレクトリの終了の前にコメントに影響します。
- -n
- 仕様を作成するとき、パスネームのコメントを出力しません。通常、コメントは、 -c オプションを使用するとき、各ディレクトリの前とそのディレクトリのクローズの前に出力されます。
- -q
- 静かなモード。それが既に存在するので、“不足している”ディレクトリを作成することができないとき、エラーを出しません。ディレクトリがシンボリックリンクであるとき、これが、生じます。
- -r
- 仕様に記述されていないファイル階層のあらゆるファイルを削除します。
- -u
- ファイル階層が仕様と一致しなかったなら、2 のステータスが返されることを除いて、 -U と同じです。
- -w
- いくつかのエラーを致命的ではない警告にします。
- -x
- ファイル階層のマウントポイント以下に下りません。
- -f file
-
標準入力からの代わりに、
file から仕様を読み込みます。
このオプションが 2 度指定されるなら、2 つの仕様は、ファイル階層にではなくお互いに比較されます。仕様は、 -c を使用して生成された出力のようにソートされます。出力形式は、この場合、いくらか comm(1) を連想させ、それぞれ、0、1 つと 2 つのタブ文字が前に付けられら、 "最初の仕様のみ"、"2 番目の仕様のみ"と "異なった"カラムがあります。 "異なる"カラムの各エントリは、各仕様から 1 つ、2 行のラインを占有します。
- -K keywords
- 指定された (空白類またはコンマで区切られた) keywords をキーワードの現在のセットに追加します。
- -k keywords
- キーワードの現在のセットの代わりに、``type'' キーワードと指定された (空白類またはコンマで区切られた) keywords を使用します。
- -p path
- カレントのディレクトリの代わりに path を root とするファイル階層を使用します。
- -s seed
- キーワード cksum が指定されたファイルをすべてを表わす標準エラー出力に単一のチェックサムを表示します。チェックサムは、指定された値でシード (種) されます。
- -X exclude-list
-
指定されたファイルは、1 つを 1 行で、仕様から除外される
fnmatch(3) パターンマッチングファイルを含んでいます。パターンが‘
/
’文字を含んでいるなら、それは、(開始するディレクトリと相対の) すべてのパス名に対して照合されます。そうでなければ、それは、基底名 (basename) に対してのみ照合されます。コメントは、 exclude-list ファイルで許可されません。
仕様のほとんどは、``keywords'' からなります、すなわち、ファイルに関連する値を指定する文字列。キーワードは、デフォルト値がなく、キーワードに設定された値がないなら、それに基づいたチェックは、行なわれません。
現在サポートされたキーワードは、次の通りです:
- cksum
- cksum(1) ユーティリティによって指定されたデフォルトのアルゴリズムを使用するファイルのチェックサム。
- flags
- シンボリック名としてのファイルのフラグ。これらの名前の情報については、 chflags(1) を参照してください。フラグが設定されていないなら、文字列“none”は、現在のデフォルトを上書きするために使用されます。
- ignore
- このファイル以下のあらゆるファイル階層を無視します。
- gid
- 数値としてのファイルグループ。
- gname
- シンボル名としてのファイルグループ。
- md5digest
- ファイルの MD5 メッセージダイジェスト。
- sha1digest
- ファイルの FIPS 160-1 (“SHA-1”) メッセージダイジェスト。
- sha256digest
- ファイルの FIPS 180-2 (“SHA-256”) メッセージダイジェスト。
- ripemd160digest
- ファイルの RIPEMD160 メッセージダイジェスト。
- mode
- 数値 (8 進数) またはシンボル値としての現在のファイルのパーミッション。
- nlink
- ファイルにあることが予想されるハードリンクの数。
- nochange
- このファイルまたはディレクトリが存在することを確かめますが、そうでなければ、属性をすべて無視します。
- optional
- ファイルは、オプションです。それがファイル階層にないなら、ファイルに関してエラーを出しません。
- uid
- 数値としてのファイル所有者。
- uname
- シンボル名としてのファイル所有者。
- size
- ファイルのバイト単位のサイズ。
- link
- シンボリックリンクが参照すると予想されるファイル。
- time
- 秒とナノ秒単位のファイルの最終の更新時刻。値は、ピリオドの後にピリオド文字と正確に 9 つの数字を含んでいるべきです。
- type
-
ファイルのタイプ。次のいずれか 1 つに設定されます:
- block
- ブロック特殊デバイス
- char
- 文字特殊デバイス
- dir
- ディレクトリ
- fifo
- FIFO
- file
- 通常ファイル
- link
- シンボリックリンク
- socket
- ソケット
キーワードのデフォルトの組は、 flags, gid, link, mode, nlink, size, time と uid です。
仕様に 4 つのタイプの行があります。
最初のタイプの行は、キーワードのためのグローバルな値を設定し、空白類によって区切られる、キーワード/値のペアの組が後続する、空白類が後続する文字列 ``/set'' から成ります。キーワード/値のペアは、空白類の文字なしで、キーワードに等号 (``='') が続き値が続くものから成ります。いったんキーワードが設定されると、その値は、リセットするか未設定になるまで変更されません。
2 番目のタイプの行は、キーワードを未設定とし、空白類によって区切られる、文字列 ``/unset'' に空白類が続き、1 つ以上のキーワードが続くものから成ります。
3 番目のタイプの行は、ファイルの仕様で、ファイル名に空白類が続き、 0 以上の空白類で区切られたキーワード/値のペアが続いたものから成ります。ファイル名は、空白類文字に先行します。ファイル名は、文字 (``['', ``]''、``?'' または ``*'') と一致する標準のファイル名のいずれかを含み、その場合に、階層中のファイルは、それらが一致する最初のパターンに関連しています。
キーワード/値のペアの各々は、空白類文字なしで、キーワードに等号 (``='') が続き、キーワードの値が続くものから成ります。これらの値は、変更せずに、対応するキーワードのグローバルな値を上書きします。
すべてのパスは、相対的です。ディレクトリを指定することによって、続くファイルは、そのディレクトリ階層で探索されます。どれが仕様の最後のタイプの行をもたらすか: 文字列“ ..”だけを含んでいる行によって、カレントディレクトリのパスは、1 つレベルを上げます。
空行と最初の空白類でない文字がハッシュマーク (``#'') である行は、無視されます。
mtree ユーティリティは、成功すれば、0 のステータスで終了し、何らかのエラーが生じたなら、1 のステータスで終了し、ファイル階層が仕様と一致しなかったなら、2 のステータスで終了します。 -U オプションが使用されるなら、2 のステータスは、0 のステータスに変換されます。
関連ファイル
- /etc/mtree
- システム仕様ディレクトリ
終了ステータス
The mtree utility exits 0 on success, and >0 if an error occurs.使用例
``trojan horse'' (トロイの木馬) であったシステムバイナリを検出するために、ファイルシステムで実行される mtree -K sha256digest と異なるマシン、または少なくとも暗号化された形式で格納された結果のコピーが推奨されます。出力ファイルそれ自体は、 sha256(1) ユーティリティを使用してダイジェストされるべきです。その後、周期的に、 mtree と sha256(1) は、オンライン仕様に対して実行されるべきです。それらの修正されたバイナリに適合するオンライン仕様を変更する悪いやつらのために可能である一方、オリジナルとして同じ SHA-256 ダイジェストがある修正された仕様を作成するそれらのために実用的でないと考えられます。配布と他のもののに対してディレクトリ階層を作成するために -d と -u オプションを組み合わせて使用することができます。 /etc/mtree のファイルは、この FreeBSD 配布のほとんどすべてのディレクトリを作成するために使用されました。
/etc/mtree スタイルの BSD.*.dist ファイルを作成するために、 mtree -c -d -i -n -k uname,gname,mode,nochange. を使用します。
歴史
mtree ユーティリティは、 4.3BSD-Reno で登場しました。 MD5 ダイジェストのケーパビリティは、 cksum(1) を偽造できるプログラムの広範囲の使用に応えて FreeBSD 2.1 で追加されました。 SHA-1 と RIPEMD160 ダイジェストは、新しい攻撃が MD5 の弱点を実証したように、 FreeBSD 4.0 で追加されました。 SHA-256 ダイジェストは、 FreeBSD 6.0 で追加されました。ファイルフラグのためのサポートは、 FreeBSD 4.0 で追加され、ほとんど NetBSD に由来します。June 16, 2007 | FreeBSD |