aboutsummaryrefslogtreecommitdiff
path: root/ja/man/man8/mtree.8
blob: ed6ede1aef87952c14d341519ce7df00fef722de (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
.\" 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.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 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
.\"	%Id: mtree.8,v 1.13 1998/06/10 06:45:08 peter Exp %
.\" jpman %Id: mtree.8,v 1.3 1997/08/16 13:31:00 horikawa Stab %
.\"
.Dd February 9, 1995
.Dt MTREE 8
.Os
.Sh 名称
.Nm mtree
.Nd ディレクトリ階層をマップする
.Sh 書式
.Nm mtree
.Op Fl cdeinrUux
.Op Fl f Ar spec
.Op Fl K Ar keywords
.Op Fl k Ar keywords
.Op Fl p Ar path
.Op Fl s Ar seed
.Sh 解説
.Nm
は、カレントディレクトリをルートとするファイル階層を、
標準入力から読み込んだファイル階層記述と比較します。
.\" ↑原文では単に "specification" となっているが、日本語に訳すと
.\" わかりにくいので、「ファイル階層記述」という語をあてている。
.\" 以下も同様。 -- jpman J.Sakai
その記述とマッチしない特性をもつファイルや、
実際のファイル階層あるいはファイル階層記述のいずれかから欠落しているファイル
に関するメッセージを標準出力に出力します。
.Pp
以下のオプションがあります:
.Bl -tag -width flag
.It Fl c
ファイル階層の記述を標準出力に出力します。
.It Fl d
ディレクトリ型以外のファイルは全て無視します。
.It Fl e
ファイル階層には存在するが、ファイル階層記述に存在しないファイルが
あっても警告しません。
.It Fl f Ar file
ファイル階層記述を、標準入力からではなく、ファイル
.Ar file
から読み込みます。
.It Fl i
.Fl c
オプションでファイル階層記述を作成する際、
ディレクトリレベルを一つ下りる毎に空白 4 つ分ずつインデントして出力します。
各ディレクトリ前に出力される /set 文やコメントには影響を与えませんが、
各ディレクトリの最後に出力されるコメントには影響を及ぼします。
.It Fl K Ar keywords
指定した
.Ar keywords
(空白あるいはコンマで区切ったもの) を
現在のキーワード集合に追加します。
.It Fl k Ar keywords
現在のキーワード集合の代わりに、
``type'' キーワードおよび
指定した
.Ar keywords
(空白あるいはコンマで区切ったもの) を使用します。
.It Fl n
ファイル階層記述作成の際、パス名コメントを出力しません。
.Fl c
オプション使用時は通常、各ディレクトリの前後にコメントが出力されます。
.It Fl p Ar path
ファイル階層のルートディレクトリを、カレントディレクトリではなく
.Ar path
とします。
.It Fl r
ファイル階層記述に記載されていないファイル階層に含まれるファイルを
全て削除します。
.It Fl s Ar seed
キーワード
.Cm cksum
が指定されている全ファイルに対する単一のチェックサムを
標準エラー出力に出力します。
チェックサムのシードには指定された値が用いられます。
.It Fl U
既存ファイルの所有者、グループおよびパーミッションを
ファイル階層記述に合わせて修正し、欠落しているディレクトリを作成します。
欠落ディレクトリを作成するために、ユーザ、グループおよびパーミッションの
全てを指定しなければなりません。
成功するとステータス 0 で終了し、
何らかのエラーが発生すると 1 で終了します。
ミスマッチがあっても、それが訂正されればエラーとはみなされません。
.It Fl u
オプション
.Fl U
と同様ですが、現ファイル階層がファイル階層記述とマッチしなければ
ステータス 2 を返します。
.It Fl x
ファイル階層中のマウントポイント以下に降下しません。
.El
.Pp
ファイル階層記述は多くの場合、「キーワード」つまり
ファイルに関連した値を指定する文字列から構成されます。
どのキーワードにもデフォルト値はありません。
キーワードに値が設定されていない場合、
そのキーワードに基づいたチェックは行われません。
.Pp
現在サポートされているキーワードは以下の通りです:
.Bl -tag -width Cm
.It Cm cksum
.Xr cksum 1
ユーティリティで規定されるデフォルトアルゴリズムを用いた
ファイルのチェックサム。
.It Cm ignore
このファイル以下のファイル階層を無視します。
.It Cm gid
数値で指定したファイルのグループ。
.It Cm gname
シンボル名で指定したファイルのグループ。
.It Cm md5digest
ファイルの MD5 メッセージダイジェスト。
.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
ファイルタイプ。以下のいずれかを指定します:
.sp
.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 gid ,
.Cm mode ,
.Cm nlink ,
.Cm size ,
.Cm link ,
.Cm time ,
.Cm uid
です。
.Pp
ファイル階層記述には 4 つのタイプの行があります。
.Pp
1 つめのタイプの行はキーワードに大域的な値を設定するもので、
文字列 ``/set'' とそれに続く空白、そしてキーワードとその値のペアの集合を
空白で区切ったものから構成されます。
キーワードとその値のペアはキーワードとそれに続く等号 (``='')、
そして値から成り、空白は含みません。
一旦キーワードが設定されると、再設定あるいは設定解除されるまで
その値は変化しません。
.Pp
2 つめのタイプの行はキーワードの設定を解除するもので、
文字列 ``/unset'' とそれに続く空白、そして 1 つ以上のキーワードを
空白で区切ったものから構成されます。
.Pp
3 つめのタイプの行はファイル記述を行うもので、
ファイル名とそれに続く空白、そしてゼロ個以上のキーワードと値のペアを
空白で区切ったものから構成されます。
ファイル名の先頭には空白があっても構いません。
ファイル名には
標準的なファイル名マッチング文字 (``['', ``]'', ``?'', ``*'') が含まれて
いてもよく、その場合、そのファイル階層に存在するファイルは、
マッチする最初のパターンと関連づけられます。
.Pp
各キーワードと値のペアはキーワードと等号 (``='')、そして
そのキーワードの値から構成され、空白は含みません。
これらの値は、対応するキーワードの大域的な値を変更しませんが、
大域的な値に優先します。
.Pp
パスは全て相対指定です。
ディレクトリを指定すると、そのディレクトリ階層の中で
更にファイルが検索されます。
これがファイル階層記述における 4 つめのタイプの行です:
文字列
.Dq Nm \&..
だけが含まれる行は、カレントディレクトリパスを 1 レベル上に上げることを
意味します。
.Pp
空行および最初の非空白文字がハッシュ記号 (``#'') であるような行は無視されます。
.Pp
.Nm
は成功するとステータス 0 で終了し、何らかのエラーが生じると 1 で終了します。
また、ファイル階層がファイル階層記述とマッチしない場合はステータス 2 で
終了します。
ただしオプション
.Fl U
が指定されている場合は、ステータス 2 はステータス 0 に変換されます。
.Sh 使用例
「トロイの木馬」に感染したシステムバイナリを検出するには、
以下のように操作することを推奨します。
ファイルシステムに対して
.Nm
.Fl K
.Cm md5digest
を実行し、その結果のコピーを別マシンか、少なくとも暗号化した形式で
ストアします。
出力ファイル自身は
.Xr md5 1
ユーティリティを用いてダイジェストを作成します。
そして定期的に
.Nm
と
.Xr md5 1
をオンラインのファイル階層記述に対して走らせます。
クラッカーが手を加えたバイナリに合わせて
オンラインのファイル階層記述を変更することは
可能ですが、オリジナルと同じ MD5 ダイジェストをもつ記述を作成するのは
非現実的だと考えらていれます。
.Pp
.Fl d
オプションおよび
.Fl u
オプションを組み合わせると、ソフトウェア配布やそれに類する処理のために
ディレクトリ階層を作成するのに用いることができます。
.Pa /etc/mtree
に置かれたファイル群は、この
.Tn FreeBSD
配布のほとんど全てのディレクトリを作成するのに用いられました。
.Sh 関連ファイル
.Bl -tag -width /etc/mtree -compact
.It Pa /etc/mtree
システムのファイル階層記述ディレクトリ
.El
.Sh 関連項目
.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
で登場しました。
MD5 ダイジェスト機能は、
.Xr cksum 1
をだますプログラムが広範囲に悪用されたのに対抗して
.Fx 2.1
で追加されました。