283804f3d1
Submitted by: koizumistr@minos.ocn.ne.jp Reviewed by: kano@na.rim.or.jp
380 lines
11 KiB
Groff
380 lines
11 KiB
Groff
.\" Copyright (c) 1989, 1990, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" From: @(#)mtree.8 8.2 (Berkeley) 12/11/93
|
|
.\" %FreeBSD: src/usr.sbin/mtree/mtree.8,v 1.47 2004/08/07 04:27:51 imp Exp %
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd January 11, 2004
|
|
.Dt MTREE 8
|
|
.Os
|
|
.Sh 名称
|
|
.Nm mtree
|
|
.Nd ディレクトリ階層をマップする
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Fl LPUcdeinqruxw
|
|
.Bk -words
|
|
.Op Fl f Ar spec
|
|
.Ek
|
|
.Bk -words
|
|
.Op Fl f Ar spec
|
|
.Ek
|
|
.Bk -words
|
|
.Op Fl K Ar keywords
|
|
.Ek
|
|
.Bk -words
|
|
.Op Fl k Ar keywords
|
|
.Ek
|
|
.Bk -words
|
|
.Op Fl p Ar path
|
|
.Ek
|
|
.Bk -words
|
|
.Op Fl s Ar seed
|
|
.Ek
|
|
.Bk -words
|
|
.Op Fl X Ar exclude-list
|
|
.Ek
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティは、カレントディレクトリをルートとするファイル階層を、
|
|
標準入力から読み込んだファイル階層記述と比較します。
|
|
.\" ↑原文では単に "specification" となっているが、日本語に訳すと
|
|
.\" わかりにくいので、「ファイル階層記述」という語をあてている。
|
|
.\" 以下も同様。 -- jpman J.Sakai
|
|
その記述とマッチしない特性をもつファイルや、
|
|
実際のファイル階層あるいはファイル階層記述のいずれかから欠落しているファイル
|
|
に関するメッセージを標準出力に出力します。
|
|
.Pp
|
|
以下のオプションがあります:
|
|
.Bl -tag -width flag
|
|
.It Fl L
|
|
ファイル階層のすべてのシンボリックリンクをたどります。
|
|
.It Fl P
|
|
ファイル階層のシンボリックリンクをたどりません。
|
|
代りに、シンボリックリンク自身を比較対象にします。
|
|
これがデフォルトです。
|
|
.It Fl U
|
|
既存ファイルの所有者、グループ、パーミッション、および修正時刻を
|
|
ファイル階層記述に合わせて修正し、欠落しているディレクトリや
|
|
シンボリックリンクを作成します。
|
|
欠落ディレクトリを作成するために、ユーザ、グループおよびパーミッションの
|
|
全てを指定しなければなりません。
|
|
成功するとステータス 0 で終了し、
|
|
何らかのエラーが発生すると 1 で終了します。
|
|
ミスマッチがあっても、それが訂正されればエラーとはみなされません。
|
|
.It Fl c
|
|
ファイル階層の記述を標準出力に出力します。
|
|
.It Fl d
|
|
ディレクトリ型以外のファイルは全て無視します。
|
|
.It Fl e
|
|
ファイル階層には存在するが、ファイル階層記述に存在しないファイルが
|
|
あっても警告しません。
|
|
.It Fl i
|
|
.Fl c
|
|
オプションでファイル階層記述を作成する際、
|
|
ディレクトリレベルを一つ下りる毎に空白 4 つ分ずつインデントして出力します。
|
|
各ディレクトリ前に出力される /set 文やコメントには影響を与えませんが、
|
|
各ディレクトリの最後に出力されるコメントには影響を及ぼします。
|
|
.It Fl n
|
|
ファイル階層記述作成の際、パス名コメントを出力しません。
|
|
.Fl c
|
|
オプション使用時は通常、各ディレクトリの前後にコメントが出力されます。
|
|
.It Fl q
|
|
静寂モード。
|
|
.Dq 存在しない
|
|
ディレクトリが既に存在するという理由で作成できない場合、文句を言いません。
|
|
これは、ディレクトリがシンボリックリンクの場合に発生します。
|
|
.It Fl r
|
|
ファイル階層記述に記載されていないファイル階層に含まれるファイルを
|
|
全て削除します。
|
|
.It Fl u
|
|
オプション
|
|
.Fl U
|
|
と同様ですが、現ファイル階層がファイル階層記述とマッチしなければ
|
|
ステータス 2 を返します。
|
|
.It Fl w
|
|
エラー状態のいくつかを致命的でない警告にします。
|
|
.It Fl x
|
|
ファイル階層中のマウントポイント以下に降下しません。
|
|
.It Fl f Ar file
|
|
ファイル階層記述を、標準入力からではなく、ファイル
|
|
.Ar file
|
|
から読み込みます。
|
|
.Pp
|
|
本オプションを 2 度指定すると、
|
|
ファイル階層に対する比較の代りに、2 個の仕様が互いに比較されます。
|
|
仕様は、
|
|
.Fl c
|
|
を使った出力のように整列されます。
|
|
この場合の出力書式は
|
|
.Xr comm 1
|
|
を思い起させるものであり、
|
|
それぞれ前にタブ 0 個、タブ 1 個、タブ 2 個を持つ、
|
|
欄 "in first spec only", "in second spec only", "different" を持ちます。
|
|
"different" 欄の各エントリは 2 行を占め、各行がそれぞれの仕様用です。
|
|
.It Fl K Ar keywords
|
|
指定した
|
|
.Ar keywords
|
|
(空白あるいはコンマで区切ったもの) を
|
|
現在のキーワード集合に追加します。
|
|
.It Fl k Ar keywords
|
|
現在のキーワード集合の代わりに、
|
|
``type'' キーワードおよび
|
|
指定した
|
|
.Ar keywords
|
|
(空白あるいはコンマで区切ったもの) を使用します。
|
|
.It Fl p Ar path
|
|
ファイル階層のルートディレクトリを、カレントディレクトリではなく
|
|
.Ar path
|
|
とします。
|
|
.It Fl s Ar seed
|
|
キーワード
|
|
.Cm cksum
|
|
が指定されている全ファイルに対する単一のチェックサムを
|
|
標準エラー出力に出力します。
|
|
チェックサムのシードには指定された値が用いられます。
|
|
.It Fl X Ar exclude-list
|
|
指定されたファイルは
|
|
.Xr fnmatch 3
|
|
パターンを含みます。
|
|
これにマッチするファイルはファイル階層記述から除外されます。
|
|
1 行に 1 個ずつ記述します。
|
|
パターンに
|
|
.Ql \&/
|
|
文字が含まれる場合、
|
|
(開始したディレクトリとの相対で) パス名全体に対してマッチが取られます。
|
|
そうでない場合、ベース名に対してのみマッチが取られます。
|
|
.Ar exclude-list
|
|
ファイルにはコメントは許されません。
|
|
.El
|
|
.Pp
|
|
ファイル階層記述は多くの場合、「キーワード」つまり
|
|
ファイルに関連した値を指定する文字列から構成されます。
|
|
どのキーワードにもデフォルト値はありません。
|
|
キーワードに値が設定されていない場合、
|
|
そのキーワードに基づいたチェックは行われません。
|
|
.Pp
|
|
現在サポートされているキーワードは以下の通りです:
|
|
.Bl -tag -width Cm
|
|
.It Cm cksum
|
|
.Xr cksum 1
|
|
ユーティリティで規定されるデフォルトアルゴリズムを用いた
|
|
ファイルのチェックサム。
|
|
.It Cm flags
|
|
シンボル名のファイルフラグ。
|
|
これらの名前についての情報は
|
|
.Xr chflags 1
|
|
を参照してください。
|
|
フラグ無しを設定するには、文字列
|
|
.Dq none
|
|
を指定して、現在のデフォルトに優先できます。
|
|
.It Cm ignore
|
|
このファイル以下のファイル階層を無視します。
|
|
.It Cm gid
|
|
数値で指定したファイルのグループ。
|
|
.It Cm gname
|
|
シンボル名で指定したファイルのグループ。
|
|
.It Cm md5digest
|
|
ファイルの MD5 メッセージダイジェスト。
|
|
.It Cm sha1digest
|
|
.Tn FIPS
|
|
ファイルの 160-1
|
|
.Pq Dq Tn SHA-1
|
|
メッセージダイジェスト。
|
|
.It Cm ripemd160digest
|
|
ファイルの
|
|
.Tn RIPEMD160
|
|
メッセージダイジェスト。
|
|
.It Cm mode
|
|
数値 (8 進数) あるいはシンボル値で指定した現ファイルのパーミッション。
|
|
.It Cm nlink
|
|
ファイルが持っているはずのハードリンク数。
|
|
.It Cm nochange
|
|
このファイルもしくはディレクトリが存在することのみ確認し、
|
|
他の属性は無視します。
|
|
.It Cm uid
|
|
数値で指定したファイルの所有者。
|
|
.It Cm uname
|
|
シンボル名で指定したファイルの所有者。
|
|
.It Cm size
|
|
ファイルサイズ (バイト数)。
|
|
.It Cm link
|
|
シンボリックリンクが指し示しているはずのファイル。
|
|
.It Cm time
|
|
ファイルの最終修正時刻。
|
|
.It Cm type
|
|
ファイルタイプ。以下のいずれかを指定します:
|
|
.Pp
|
|
.Bl -tag -width Cm -compact
|
|
.It Cm block
|
|
ブロック型スペシャルデバイス
|
|
.It Cm char
|
|
文字型スペシャルデバイス
|
|
.It Cm dir
|
|
ディレクトリ
|
|
.It Cm fifo
|
|
FIFO
|
|
.It Cm file
|
|
通常ファイル
|
|
.It Cm link
|
|
シンボリックリンク
|
|
.It Cm socket
|
|
ソケット
|
|
.El
|
|
.El
|
|
.Pp
|
|
デフォルトのキーワード集合は
|
|
.Cm flags ,
|
|
.Cm gid ,
|
|
.Cm mode ,
|
|
.Cm nlink ,
|
|
.Cm size ,
|
|
.Cm link ,
|
|
.Cm time ,
|
|
.Cm uid
|
|
です。
|
|
.Pp
|
|
ファイル階層記述には 4 つのタイプの行があります。
|
|
.Pp
|
|
1 つめのタイプの行はキーワードに大域的な値を設定するもので、
|
|
文字列 ``/set'' とそれに続く空白、そしてキーワードとその値のペアの集合を
|
|
空白で区切ったものから構成されます。
|
|
キーワードとその値のペアはキーワードとそれに続く等号 (``='')、
|
|
そして値から成り、空白は含みません。
|
|
一旦キーワードが設定されると、再設定あるいは設定解除されるまで
|
|
その値は変化しません。
|
|
.Pp
|
|
2 つめのタイプの行はキーワードの設定を解除するもので、
|
|
文字列 ``/unset'' とそれに続く空白、そして 1 つ以上のキーワードを
|
|
空白で区切ったものから構成されます。
|
|
.Pp
|
|
3 つめのタイプの行はファイル記述を行うもので、
|
|
ファイル名とそれに続く空白、そして 0 個以上のキーワードと値のペアを
|
|
空白で区切ったものから構成されます。
|
|
ファイル名の先頭には空白があっても構いません。
|
|
ファイル名には
|
|
標準的なファイル名マッチング文字 (``['', ``]'', ``?'', ``*'') が含まれて
|
|
いてもよく、その場合、そのファイル階層に存在するファイルは、
|
|
マッチする最初のパターンと関連づけられます。
|
|
.Pp
|
|
各キーワードと値のペアはキーワードと等号 (``='')、そして
|
|
そのキーワードの値から構成され、空白は含みません。
|
|
これらの値は、対応するキーワードの大域的な値を変更しませんが、
|
|
大域的な値に優先します。
|
|
.Pp
|
|
パスは全て相対指定です。
|
|
ディレクトリを指定すると、そのディレクトリ階層の中で
|
|
更にファイルが検索されます。
|
|
これがファイル階層記述における 4 つめのタイプの行です:
|
|
文字列
|
|
.Dq Pa ..\&
|
|
だけが含まれる行は、カレントディレクトリパスを 1 レベル上に上げることを
|
|
意味します。
|
|
.Pp
|
|
空行および最初の非空白文字がハッシュ記号 (``#'') であるような行は無視されます。
|
|
.Pp
|
|
.Nm
|
|
は成功するとステータス 0 で終了し、何らかのエラーが生じると 1 で終了します。
|
|
また、ファイル階層がファイル階層記述とマッチしない場合はステータス 2 で
|
|
終了します。
|
|
ただしオプション
|
|
.Fl U
|
|
が指定されている場合は、ステータス 2 はステータス 0 に変換されます。
|
|
.Sh 使用例
|
|
「トロイの木馬」に感染したシステムバイナリを検出するには、
|
|
以下のように操作することを推奨します。
|
|
ファイルシステムに対して
|
|
.Nm
|
|
.Fl K
|
|
.Cm sha1digest
|
|
を実行し、その結果のコピーを別マシンか、少なくとも暗号化した形式で
|
|
ストアします。
|
|
出力ファイル自身は
|
|
.Xr md5 1
|
|
ユーティリティを用いてダイジェストを作成します。
|
|
そして定期的に
|
|
.Nm
|
|
と
|
|
.Xr md5 1
|
|
をオンラインのファイル階層記述に対して走らせます。
|
|
クラッカーが手を加えたバイナリに合わせて
|
|
オンラインのファイル階層記述を変更することは
|
|
可能ですが、オリジナルと同じ MD5 ダイジェストをもつ記述を作成するのは
|
|
非現実的だと考えられています。
|
|
.Pp
|
|
.Fl d
|
|
オプションおよび
|
|
.Fl u
|
|
オプションを組み合わせると、ソフトウェア配布やそれに類する処理のために
|
|
ディレクトリ階層を作成するのに用いることができます。
|
|
.Pa /etc/mtree
|
|
に置かれたファイル群は、この
|
|
.Fx
|
|
配布のほとんど全てのディレクトリを作成するのに用いられました。
|
|
.Sh 関連ファイル
|
|
.Bl -tag -width /etc/mtree -compact
|
|
.It Pa /etc/mtree
|
|
システムのファイル階層記述ディレクトリ
|
|
.El
|
|
.Sh 診断
|
|
.Ex -std
|
|
.Sh 関連項目
|
|
.Xr chflags 1 ,
|
|
.Xr chgrp 1 ,
|
|
.Xr chmod 1 ,
|
|
.Xr cksum 1 ,
|
|
.Xr md5 1 ,
|
|
.Xr stat 2 ,
|
|
.Xr fts 3 ,
|
|
.Xr md5 3 ,
|
|
.Xr chown 8
|
|
.Sh 歴史
|
|
.Nm
|
|
ユーティリティは
|
|
.Bx 4.3 Reno
|
|
で登場しました。
|
|
.Tn MD5
|
|
ダイジェスト機能は、
|
|
.Xr cksum 1
|
|
をだますプログラムが広範囲に悪用されたのに対抗して
|
|
.Fx 2.1
|
|
で追加されました。
|
|
新たな攻撃により
|
|
.Tn MD5
|
|
の弱さが示されたため、
|
|
.Tn SHA-1
|
|
と
|
|
.Tn RIPEMD160
|
|
のダイジェスト機能が
|
|
.Fx 4.0
|
|
で追加されました。
|
|
ファイルフラグのサポートは
|
|
.Fx 4.0
|
|
で追加されました。このほとんどは
|
|
.Nx
|
|
由来です。
|