diff --git a/ja_JP.eucJP/man/man1/make.1 b/ja_JP.eucJP/man/man1/make.1 index 2dc75b5f4c..c4a2c62e8b 100644 --- a/ja_JP.eucJP/man/man1/make.1 +++ b/ja_JP.eucJP/man/man1/make.1 @@ -1,1168 +1,1171 @@ .\" Copyright (c) 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: @(#)make.1 8.4 (Berkeley) 3/19/94 -.\" %FreeBSD: src/usr.bin/make/make.1,v 1.29.2.2 2000/07/17 17:33:48 sheldonh Exp % +.\" %FreeBSD: src/usr.bin/make/make.1,v 1.29.2.3 2000/09/25 18:47:12 peter Exp % .\" .\" this file based on that translated to japanese on NetBSD Japanese Reference .\" Manual Project, and modefied to fit FreeBSD Reference Manual .\" by Mochida Shuji 1996/04/26 .\" jpman %Id: make.1,v 1.2 1997/05/27 00:42:17 mutoh Stab % .\" .Dd March 19, 1994 .Dt MAKE 1 .Os .Sh 名称 .Nm make .Nd プログラムの依存関係をメンテナンスする .Sh 書式 .Nm make -.Op Fl BPSeiknqrstv +.Op Fl BPSXeiknqrstv .Op Fl D Ar variable .Op Fl d Ar flags .Op Fl E Ar variable .Op Fl f Ar makefile .Op Fl I Ar directory .Bk -words .Op Fl j Ar max_jobs .Op Fl m Ar directory .Ek .Op Fl V Ar variable .Op Ar variable Ns No = Ns Ar value .Op Ar target ... .Sh 解説 .Nm make は、プログラムのメンテナンスを単純化するためのツールです。 その入力はファイルの生成とプログラムとの間の依存関係を指定する リストが記述されています。 カレントディレクトリまたは特別なオブジェクトディレクトリ .Ql Va (.OBJDIR 参照) のどちらか一方において .Ql Pa makefile と .Ql Pa Makefile の最初に見つかった方から、この指定のリストが読み込まれます。 .Ql Pa .depend というファイルが見つかれば、それも読み込みます .Pq Xr mkdep 1 を参照 。 .Pp 本マニュアルはリファレンスのためのみのドキュメントです。 .Nm make と makefile に関する詳しい紹介は .%T "Make \- A Tutorial" を参照してください。 .Pp オプションは以下のとおりです。 .Bl -tag -width Ds .It Fl B シーケンス中の依存行のソースを作成するために、各コマンドに対して 1 つのシェルを実行する、バックワード互換モードで実行しようとします。 このオプションは .Fl j が使用されない限り、デフォルトで有効になります。 .It Fl D Ar variable 大域変数 .Ar variable を 1 と定義します。 .It Fl d Ar flags デバッグモードを有効にし、 .Nm が表示するデバッグ情報の種類を指定します。 引数 .Ar flags には、以下のうち 1 つ以上を指定できます。 .Bl -tag -width Ds .It Ar A すべてのデバッグ情報を出力します。他のフラグをすべて指定したことと 等価です。 .It Ar a アーカイブ検索とキャッシュに関する情報を表示します。 .It Ar c 条件評価に関する情報を表示します。 .It Ar d ディレクトリ検索とキャッシュに関する情報を表示します。 .It Ar f for ループの実行に関するデバッグ情報を表示します。 今のところは何もしていません。 .It Ar "g1" 処理を行う前に、入力のグラフを表示します。 .It Ar "g2" すべての処理を行ったあと、あるいはエラーにより終了する前に入力のグラフを 表示します。 .It Ar j 複数のシェルを起動する場合の情報を表示します。 .It Ar l @ がコマンドに前置されていようといまいと、 また他の「静寂」フラグの有無に関わらず、Makefile のコマンドを表示します。 これは「やかましい」動作としても知られています。 .It Ar m ターゲットの作成と変更日付に関する情報を表示します。 .It Ar s 拡張子解釈に関する情報を表示します。 .It Ar t ターゲットリストのメンテナンスに関する情報を表示します。 .It Ar v 変数の値に関する情報を表示します。 .El .It Fl E Ar variable (存在すれば) 環境の値で上書きする、makefile の中の変数を指定します。 .It Fl e 環境の値で makefile 中のすべての変数の値を上書きするように指示します。 .It Fl f Ar makefile デフォルトの .Ql Pa makefile と .Ql Pa Makefile のかわりに、読み込むファイルを指定します。もし .Ar makefile が .Ql \- なら標準入力から読み込みます。複数のファイルが指定可能で、 指定した順に読み込まれます。 .It Fl I Ar directory makefile と、インクルードされる makefile を検索するためのディレクトリを 指定します。システムで定義してある makefile のあるディレクトリ (または、 複数のディレクトリ; .Fl m オプションを参照) は自動的にリストに含まれ、検索されます。 .It Fl i makefile から実行されたシェルコマンドが 0 でない終了ステータスを返し ても無視します。makefile 中でコマンドの先頭に .Ql \- を指定するのと同じです。 .It Fl j Ar max_jobs .Nm が同時に起動できるジョブの数を指定します。 .Ar B フラグを指定しなければ、互換性モードはオフになります。 .It Fl k エラーが発生しても処理を続行します。ただし、発生したエラーによって作成 が不能になったターゲットに依存したターゲットに関しては処理が中断されます。 .It Fl m Ar directory <...> 形式で読み込まれる sys.mk や makefile を検索するための ディレクトリを指定します。複数のディレクトリを検索パスに加えることが できます。このパスは、デフォルトのシステムインクルードパス .Pa /usr/share/mk を上書きします。 さらに、システムインクルードパスを "..." 形式のインクルードによって 追加することができます( .Fl I オプションを参照)。 .It Fl n make が実行するであろうコマンド内容の表示のみを行い、実行はしません。 .It Fl P 並行して動作するジョブを一緒に混ぜて出力するのでなく、 与えられたジョブの順番をそろえて、ジョブが終了するまで表示しません。 このオプションは .Fl j が使われた時のみ効果を持ちます。 .It Fl q いっさいのコマンドを実行せず、指定されたターゲットが最新のものであれば 0 を、そうでなければ 1 を終了ステータスとして返します。 .It Fl r システムの makefile で定義された組み込みのルールを使用しません。 .It Fl S エラーが起きた時に処理を中止します。 デフォルトの動作です。このオプションは 再帰的な構築の際に .Fl k オプションを打ち消すのに必要となります。 .It Fl s 実行するコマンドを表示しません。makefile のなかで、コマンドの先頭に .Ql Ic @ を指定するのと同じです。 .It Fl t makefile で指定されたターゲットを作り直すのではなく、ターゲットを作成 するか、あるいは最終更新日付を現在の時刻に設定することにより、 ターゲットが最新であるかのようにします。 .It Fl V Ar variable グローバルな文脈での .Nm make の .Ar variable の値を表示します。如何なるターゲットも生成しません。 このオプションで複数のインスタンスを指定することができます。 変数は、各行毎に表示されます。未定義もしくは空の変数は、空行で 表現されます。 .It Fl v 特に冗長表示させます。 複数ジョブの make においては、ファイルバナーを生成させます。 +.It Fl X +.Fl V +オプションを使用して変数の値を表示するときに、再帰的な値の展開をしません。 .It Ar variable Ns No = Ns Ar value 変数 .Ar variable の値を .Ar value に設定します。 .El .Pp makefile には 7 種類の行があります: 依存関係記述、シェルコマンド、変数 代入、インクルード文、条件命令、for ループ、コメントです。 .Pp 一般に、行は行末にバックスラッシュ .Pq Ql \e を置くことにより次行へ継続させることがで きます。この場合、バックスラッシュ直後の改行と、次の行の先頭の 空白部分は 1 つの空白に置き換えられます。 .Sh ファイル依存関係記述 入力ファイルにおける依存関係記述行は、1 つ以上のターゲット、オペレータ、 0 個 以上のソースからなります。 これは、ターゲットがソースに .Dq 依存 しているという関係を 定義しており、通常は、ソースからターゲットが作成されます。ターゲットと ソースとの厳密な関係はオペレータによって、両者間に指定します。 オペレータには以下の種類があります。 .Bl -tag -width flag .It Ic \&: ターゲットの最終更新日付が、いずれかのソースの最終更新日付よりも 古いものであれば、ターゲットは古いものであり、作り直されるべきものと 判断されます。 別の行でこのオペレータによる同じターゲットに関するソースの記述があれば、 それらはすべて 1 つにまとめられます。ターゲットの作成中に .Nm が中断されると、ターゲットは削除されます。 .It Ic \&! ターゲットはつねに作り直されます。ただし、作り直されるのは、 すべてのソースが検査され、必要と判断されたソースが作り直されたあとです。 このオペレータによる同じターゲットに関するソースの記述が別の行にもあれば、 それらはすべて 1 つにまとめられます。ターゲットの作成中に .Nm が中断されると、ターゲットは削除されます。 .It Ic \&:: ソースが指定されていなかった場合、つねにターゲットは作り直されます。 指定されていた場合にはソースのいずれかがターゲットよりも新しい時だけ ターゲットは作り直されます。本オペレータでは、別の行において同じ ターゲットに関するソースの記述があっても 1 つにまとめません。 ターゲットの作成中に .Nm が中断されても、ターゲットは削除されません。 .El .Pp ターゲットとソースは、シェルのワイルドカード表記として .Ql ? , .Ql * , .Ql [] , .Ql {} を含むことができます。 .Ql ? , .Ql * , .Ql [] の表記は、ターゲットまたはソースの最後の要素として記述でき、 存在するファイルを指定するものでなければなりません。 表記 .Ql {} はファイルが存在しなくてもかまいません。シェルのように辞書順に並べられて 展開されることはなく、ファイルシステム上に並んでいる順番のまま行われます。 .Sh シェルコマンド ターゲットは、シェルコマンドの列と関連付けることができ、通常はそれによって ターゲットを作成します。 これに含まれる各コマンドは、 .Em 必ず 行頭のタブに続けて記述します。同一のターゲットに 対して複数の依存記述行がある場合、 .Ql Ic :: オペレータを使用したのでなければ、それらのうちの 1 つにのみコマンド行を 続けることができます。 .Pp コマンドラインの先頭もしくは先頭 2 文字が .Ql Ic @ や .Ql Ic \- ならば、コマンドは特別な扱いを受けます。 .Ql Ic @ は、コマンドが実行前に、コマンド内容の表示を抑制します。 .Ql Ic \- は、コマンドの 0 ではない終了ステータスを無視するように指示します。 .Sh 変数代入 .Nm make で使われる変数はシェルでの変数に類似しています。そして、歴史的な経緯から、 すべて大文字からなる名前が用いられます。変数代入には以下の 5 通りの オペレータを使用できます。 .Bl -tag -width Ds .It Ic \&= 変数に値を代入します。その時点までの値は失われます。 .It Ic \&+= 現在の変数の値に、右辺の値を追加します。 .It Ic \&?= 変数が未定義の場合のみ、値を代入します .It Ic \&:= 右辺を展開した値を代入します。つまり、変数に代入する前に値の展開を行います。 通常、値の展開は代入時には行われず、変数が参照されるときに行われます。 .It Ic \&!= 右辺を展開した値をシェルに実行させ、実行結果を左辺の変数に代入します。 結果のなかに含まれる改行は空白に置き換えられます。 .El .Pp いずれの場合も、値の前にある空白は無視されます。値が追加される場合、 変数の直前の値と追加する値との間に空白が挿入されます。 .Pp 変数は、ドル記号 .Pq Ql $ に続いて中括弧 .Pq Ql {} または小括弧 .Pq Ql () で囲まれた変数名を置くことにより展開されます。もし変数名が 1 文字な ら、変数名を囲む括弧は省略できますが、このような省略形は推奨できません。 .Pp 変数置換は、変数が用いられている場所により、 2 つの別々のタイミングで 行われます。依存関係記述行で用いられた変数は、その行が読み込まれたときに 展開されます。シェルコマンド内で用いられた変数は、シェルコマンド実行時に 展開されます。 .Pp 変数には、優先度に従って、4 つの異なるクラスがあります: .Bl -tag -width Ds .It 環境変数 .Nm make の環境中で有効な変数 .It グローバル変数 makefile とインクルードされた makefile 内で有効な変数。 .It コマンドライン変数 コマンドラインで指定された変数。 .It ローカル変数 あるターゲットのみに対して定義される変数。ローカル変数には、 以下の 7 種類があります: .Bl -tag -width ".ARCHIVE" .It Va .ALLSRC このターゲットに対するすべてのソースのリスト。 .Ql Va \&> も同じです。 .It Va .ARCHIVE アーカイブファイル名。 .Ql Va \&! も同じです。 .It Va .IMPSRC ターゲット名に変換するのに使用するソースのファイル名またはパス名 ( .Dq 暗黙の ソース)。 .Ql Va \&< も同じです。 .It Va .MEMBER アーカイブのメンバ。 .Ql Va \&% も同じです。 .It Va .OODATE ターゲットよりも新しいソースのリスト。 .Ql Va \&? も同じです。 .It Va .PREFIX ターゲットのディレクトリ名と拡張子を取り除いた名前。 .Ql Va * も同じです。 .It Va .TARGET ターゲットの名前。 .Ql Va @ も同じです。 .El .Pp 短い形式 .Ql Va @ , .Ql Va ! , .Ql Va \&< , .Ql Va \&% , .Ql Va ? , .Ql Va \&> , .Ql Va * は互換性のためのものですが、利用することは推奨できません。 また、 .Ql Va "@F" , .Ql Va "@D" , .Ql Va " .It Ic \&.include Ar \*qfile\*q 指定した makefile をインクルードします。 アングルブラケットが使用された場合は、 makefile はシステムの makefile ディレクトリにあるものを用います。 ダブルクォートが使用された場合は、 makefile が存在するディレクトリ、 .Fl I オプションで指定されたディレクトリ、システムの makefile ディレクトリの 順に検索します。 .It Ic \&.undef Ar variable 指定したグローバル変数を未定義とします。 グローバル変数のみ、未定義とすることができます。 .It Ic \&.error Ar message makefile の処理を即座に終了します。 makefile のファイル名と、どの行でエラーとなったかと、 指定したエラーメッセージとを、標準出力に表示し、 .Nm make は終了コード 1 で終了します。 .El .Pp 条件文は Makefile のどの部分を処理するのかを判定するために使用します。 C プリプロセッサがサポートする条件文と同様に使用されます。 以下の条件文がサポートされています: .Bl -tag -width Ds .It Xo .Ic \&.if .Oo \&! Oc Ns Ar expression .Op Ar operator expression ... .Xc 式の値をテストします。 .It Xo .Ic .ifdef .Oo \&! Oc Ns Ar variable .Op Ar operator variable ... .Xc 変数の値をテストします。 .It Xo .Ic .ifndef .Oo \&! Oc Ns Ar variable .Op Ar operator variable ... .Xc 変数の値をテストします。 .It Xo .Ic .ifmake .Oo \&! Oc Ns Ar target .Op Ar operator target ... .Xc ターゲット .Ar target が作成中かどうかをテストします。 .It Xo .Ic .ifnmake .Oo \&! Oc Ar target .Op Ar operator target ... .Xc ターゲット .Ar target が作成中かどうかをテストします。 .It Ic .else 最後に行った条件文の意味を逆にします。 .It Xo .Ic .elif .Oo \&! Oc Ar expression .Op Ar operator expression ... .Xc .Ql Ic .else と直後の .Ql Ic .if を対にしたものです。 .It Xo .Ic .elifdef .Oo \&! Oc Ns Ar variable .Op Ar operator variable ... .Xc .Ql Ic .else と直後の .Ql Ic .ifdef を対にしたものです。 .It Xo .Ic .elifndef .Oo \&! Oc Ns Ar variable .Op Ar operator variable ... .Xc .Ql Ic .else と直後の .Ql Ic .ifndef を対にしたものです。 .It Xo .Ic .elifmake .Oo \&! Oc Ns Ar target .Op Ar operator target ... .Xc .Ql Ic .else と直後の .Ql Ic .ifmake を対にしたものです。 .It Xo .Ic .elifnmake .Oo \&! Oc Ns Ar target .Op Ar operator target ... .Xc .Ql Ic .else と直後の .Ql Ic .ifnmake を対にしたものです。 .It Ic .endif 条件文の本体を終了させます。 .El .Pp オペレータ .Ar operator は、以下のうちのいずれかです。 .Bl -tag -width "Cm XX" .It Cm \&|\&| 論理 OR。 .It Cm \&&& 論理 AND。 .Ql Ic || より優先順位が上です。 .El .Pp C 言語と同様、 .Nm は条件式を、式の値を決定するのに必要なところまでしか評価しません。 評価順序を変更するには括弧を使います。論理オペレータ .Ql Ic \&! は条件式全体の値を反転するのに使用します。 .Ql Ic \&! は .Ql Ic \&&& より優先順位が上です。 .Pp 式 .Ar expression は、以下のいずれかの形式です: .Bl -tag -width Ic defined .It Ic defined 引数として変数名をとり、変数が定義されていれば真となる。 .It Ic make 引数としてターゲット名をとり、そのターゲットが .Nm make のコマンドライン引数に指定されているか、デフォルトのターゲット .Pq 明示的なものも暗黙的なものも含む。 Va .MAIN の項を参照 として宣言されている場合に真となる。 .It Ic empty 引数として変数名 .Pq と修飾子 をとり、展開した結果が空文字列ならば真となる。 .It Ic exists 引数としてファイル名をとり、ファイルが存在すれば真となる。 ファイルはシステム検索パス .Pq Va .PATH の項を参照 にそって検索される。 .It Ic target 引数としてターゲット名をとり、ターゲットが定義されているなら真となる。 .El .Pp 条件式 .Ar expression としては、数値あるいは文字列の比較を用いることもできます。比較オペレータの 両辺は、変数展開が適用されたあとに比較されます。値が 0x で始まるなら 16 進数 であると解釈し、さもなければ 10 進数と解釈します。8 進数はサポートして いません。標準的な C 言語の関係オペレータは全て利用可能です。 変数展開後、 .Ql Ic == または .Ql Ic "!=" の左辺値または右辺値のいずれかが数値とは認められない場合、文字列として 比較を行います。関係オペレータが指定されなかった場合、展開された変数と 0 とを 比較します。 .Pp 条件式を評価中に、評価できない単語が出現した場合は、条件式の形式によって、 .Dq make または .Dq defined オペレータを適用します。条件式が .Ql Ic .ifdef または .Ql Ic .ifndef ならば .Dq defined を、条件式が .Ql Ic .ifmake または .Ql Ic .ifnmake ならば .Dq make を、それぞれ適用します。 .Pp 条件式が真と評価されたなら、makefile の解析はそのまま続行されます。 偽と評価されたなら、 .Ql Ic .else または .Ql Ic .endif が見つかるまで makefile の解析をスキップします。 .Pp for ループは、いくつかのルールを一連のファイルに適用するのによく 用いられます。以下がループの形式です: .Bl -tag -width Ds .It Xo .Ic \&.for .Ar variable .Ic in .Ar expression .Xc .It Xo .Xc .It Xo .Ic \&.endfor .Xc .El .Ar expression は評価されたあとに単語に分解され、それぞれを .Ar variable に代入 しながら、 .Ic make-rules 部分を繰り返し展開します。 .Sh コメント コメントはハッシュ記号 .Pq Ql \&# から始まり、シェルコマンド行以外のどこにでも置くことができます。 コメントは改行で終わります。 .Sh 特殊ソース .Bl -tag -width Ic .IGNORE .It Ic .IGNORE 本ターゲットに関連したコマンドでのエラーを無視します。シェルコマンドの 先頭にダッシュ .Ql \- を指定したのと等価です。 .It Ic .MAKE たとえ、 .Fl n や .Fl t オプションが指定されていても、このターゲットに関連したシェルコマンドを 実行します。通常、再帰的な .Nm make のために用いられます。 .It Ic .NOTMAIN 通常 .Nm は、最初に発見したターゲットをデフォルトのターゲットとみなします。 .Ic .NOTMAIN が指定されたターゲットはデフォルトのターゲットとはみなされなくなります。 .It Ic .OPTIONAL もし .Ic .OPTIONAL が指定されたターゲットの作り方がわからなくても、エラーとはせず、 そのターゲットは必要ないか、すでに存在しているものとみなします。 .It Ic .PRECIOUS 通常 .Nm が中断されたときは、作成途中のターゲットは削除されます。本ソースを 指定することで、そのターゲットを削除しなくなります。 .It Ic .SILENT 指定されたターゲットに関連づけられたシェルコマンドを実行するときに エコーを行いません。シェルコマンドの先頭に .Ql @ を指定したのと等価です。 .It Ic .USE 指定されたターゲットをマクロ的に扱います。 .Ic .USE をソースに持つターゲット .Pq 以下ではマクロと呼びます が別のターゲットのソースとなった場合、その ターゲットはコマンド、ソース、属性( .Ic .USE は除く) をマクロから受け取ります。もし、すでにターゲットにコマンドが指定されていた 場合は、マクロのコマンドが追加されます。 .It Ic .WAIT 特別な .Ic .WAIT ソースが依存関係行に現れた時には、ソースはその行中でソースが 作成されるまで待ちます。ループは検出されず、ループ形式のターゲットは 単に無視されます。 .El .Sh 特殊ターゲット 特殊ターゲットは、他のターゲットとともに使用してはいけません。すなわち、 依存関係記述行の唯一のターゲットとして指定する必要があります。 .Bl -tag -width Ic .BEGIN .It Ic .BEGIN 本ターゲットに指定されたシェルコマンドは他の処理に先立って実行されます。 .It Ic .DEFAULT これは、作成方法がわからないどんなターゲットにも適用される .Ic .USE ルールのようなものです。シェルスクリプトのみを使用します。 .Ic .DEFAULT に指定されたコマンド中の .Ic .IMPSRC 変数はターゲット自身の名前に置換されます。 .It Ic .END 本ターゲットに指定されたシェルコマンドは、他のすべての処理の終了後に 実行されます。 .It Ic .IGNORE 指定されたソースに .Ic .IGNORE 属性を付与します。もしソースが指定されていなければ、 .Fl i オプションを指定したのと同じ意味になります。 .It Ic .INCLUDES ソースファイル中で include される可能性のあるファイルの拡張子のリスト。 拡張子はあらかじめ .Ic .SUFFIXES で宣言されていなければなりません; このように宣言された拡張子は自身の検索パス( .Ic .PATH 参照) にそれぞれ .Fl I フラグを前に付けた状態で .Va .INCLUDES 特殊変数に設定されます。 .It Ic .INTERRUPT .Nm が中断されたとき、本ターゲットに指定されたコマンドを実行します。 .It Ic .LIBS .Ic .INCLUDES が include ファイルに対して行なうことと同じことを ライブラリに対して行ないます。ただし .Fl L フラグが使われます。 .It Ic .MAIN ターゲットを指定せずに .Nm が起動された場合、本ターゲットを処理します。 .Nm がデフォルトターゲットを選択した際に、 利用者がコマンドラインからデフォルトターゲットを指示できるようにするため、 明示的・暗黙的に関わらず必ず設定されます。 .It Ic .MAKEFLAGS ソースにおいて、 .Nm に指定するフラグを指定します。フラグはシェルでタイプしたのと同様に 渡されますが、 .Fl f オプションは無効になります。 .\" XXX: NOT YET!!!! .\" .It Ic .NOTPARALLEL .\" この名前のターゲットは、並列モードを使わすに実行されます。 .\" ターゲットが指定されていない時には、全てのターゲットが非並列モード .\" で実行されます。 .It Ic .NOTPARALLEL 並列モードを使いません。 .It Ic .NO_PARALLEL 上と同じですが、 pmake の変種のための互換性のためにあります。 .It Ic .ORDER シーケンス中の名前付きターゲットが作成されます。 .\" XXX: NOT YET!!!! .\" .It Ic .PARALLEL .\" 名前付きターゲットが並列モードで実行されます。 .\" ターゲットが指定されない時には、全てのターゲットが並列モードで実行 .\" されます。 .It Ic .PATH カレントディレクトリに発見できなかったときのファイルの検索パスを、 本ターゲットのソースとして指定します。ソースが指定されなかった場合、 以前に設定されていたディレクトリが無効になります。 可能であれば .Ic .PATH を利用する方が、 .Va VPATH 変数を利用するよりも好まれています。 .It Ic .PATH\fIsuffix\fR カレントディレクトリに発見できなかったときの suffix のついたファイルの検索パスをソースとして指定します。 .Nm はファイルが見つからなかった場合に、 デフォルトパスよりも先に、まず suffix の付いた検索パスで探します。 この形式は .Ic .LIBS と .Ic .INCLUDES が動作するために必要です。 .It Ic .PHONY .Ic .PHONY 属性を指定したソースに適用します。この属性を持ったターゲットは いつでも更新されていると考えられます。 .It Ic .PRECIOUS 指定されたソースに .Ic .PRECIOUS 属性を付与します。もし、ソースが指定されなかった場合、 すべてのターゲットに .Ic .PRECIOUS 属性を与えます。 .It Ic .SILENT 指定されたソースに .Ic .SILENT 属性を付与します。もし、ソースが指定されなかった場合、 ファイル中のすべてのコマンドに .Ic .SILENT 属性を与えます。 .It Ic .SUFFIXES ソースにおいて、 .Nm make で用いる拡張子を指定します。ソースが指定されなかった場合は、 以前の指定が無効になります。 .Sh 互換性 .Nm の古いバージョンは .Ev MAKEFLAGS の代わりに .Ev MAKE を使っていました。 この機能は POSIX への互換性のために削除されました。 内部変数 .Va MAKE は .Va .MAKE と同じ値が代入されます ; この機能は将来削除されるかもしれません。 .Pp .Nm のたくさんの秘密にされいている機能の多くは、 より多くの互換性を保つために使用を避けるべきです。 .Sh 環境変数 .Nm make は次の環境変数の値を用います: .Ev MACHINE , .Ev MAKE , .Ev MAKEFLAGS , .Ev MAKEOBJDIR , .Ev MAKEOBJDIRPREFIX , .Ev PWD .Sh 関連ファイル .Bl -tag -width /usr/share/doc/psd/12.make -compact .It Pa .depend 依存関係リスト .It Pa Makefile 依存関係リスト .It Pa makefile 依存関係リスト .It obj オブジェクトディレクトリ .It Pa sys.mk システム定義の makefile .It Pa /usr/share/mk システム定義の makefile が置かれるディレクトリ .It /usr/share/doc/psd/12.make PMake のチュートリアル .It Pa /usr/obj デフォルトの .Ev MAKEOBJDIRPREFIX ディレクトリ .El .Sh バグ .Va .OBJDIR の決定は不条理といっていいほどまで曲解されます。 .Pp 複数の .Ic .MAIN 特殊ターゲットが存在した場合、 .Nm は最初のもの以外は黙って無視します。 .Pp .Nm がターゲット名なしに起動された場合と .Ic .MAIN 特殊ターゲットが存在しなかった場合、 .Va .TARGETS は設定されません。 .Pp テスト時の .Ar expression の評価はあまり気が配られていません。今のところ、 .Ql .if ${VAR} op something という形式でしか動きません。 例えば、テストは .Ql .if ${VAR} = "string" のように書かなければなりません。 他の書き方では動きません。 .Pp for ループはテストされる前に展開されるため、 .Bd -literal \&.for TMACHINE in ${SHARED_ARCHS} \&.if ${TMACHINE} = ${MACHINE} ... \&.endif \&.endfor .Ed のような断片は動きません。他の方法を使って書き直す必要があります。 .Sh 関連項目 .Xr mkdep 1 .Rs .%T "PMake - A Tutorial" .Re .Sh 歴史 .Nm make は .At v7 において追加されました。 diff --git a/ja_JP.eucJP/man/man1/pkg_info.1 b/ja_JP.eucJP/man/man1/pkg_info.1 index 82e59db95e..845429d9c2 100644 --- a/ja_JP.eucJP/man/man1/pkg_info.1 +++ b/ja_JP.eucJP/man/man1/pkg_info.1 @@ -1,185 +1,185 @@ .\" .\" FreeBSD install - a package for the installation and maintainance .\" of non-core utilities. .\" .\" 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. .\" .\" Jordan K. Hubbard .\" .\" .\" @(#)pkg_info.1 -.\" %FreeBSD: src/usr.sbin/pkg_install/info/pkg_info.1,v 1.24.2.1 2000/07/18 10:12:30 sobomax Exp % +.\" %FreeBSD: src/usr.sbin/pkg_install/info/pkg_info.1,v 1.24.2.2 2000/09/25 10:56:43 marko Exp % .\" .\" jpman %Id: pkg_info.1,v 1.3 1997/06/08 14:11:48 jsakai Stab % .\" .Dd November 25, 1994 .Dt pkg_info 1 .Os FreeBSD .Sh 名称 .Nm pkg_info .Nd ソフトウェア配布 package の情報を表示するプログラム .Sh 書式 .Nm pkg_info .Op Fl cdDfikrRpLsqImv .Op Fl e Ar package .Op Fl l Ar prefix .Op Fl t Ar template .Ar pkg-name [pkg-name ...] .Nm pkg_info .Fl a .Op Ar flags .Sh 解説 .Nm コマンドは、 .Xr pkg_create 1 によりファイルにパックされた package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) か、 .Xr pkg_add 1 によりすでにシステムにインストールされた package に関し、 情報を表示するために用いられます。 .Sh オプション 以下のコマンドラインオプションが提供されています。 .Bl -tag -width indent .It Ar pkg-name ... 指定された package が表示されます。指定されるのはイントール済みの package の名前か、package 配布ファイルへのパス、ftp 可能な package への URL のいずれかになります。 .It Fl a 現在インストールされているすべての package を表示します。 .It Fl v 饒舌な出力に切り替えます。 .It Fl p 各 package のインストール用 prefix を表示します。 .It Fl q レポートヘッダのような情報を出力する際に余分な出力を .Dq 省略 し、 生の情報のみ出力します (基本的に人が読みやすいものではありません)。 .It Fl c 各 package の (一行) コメントフィールドを表示します。 .It Fl d 各 package の長い説明フィールドを表示します。 .It Fl D 各 package のインストールメッセージファイルを表示します。 .It Fl f 各 package の packing list instructions を表示します。 .It Fl i もしあれば、各 package のインストールスクリプトを表示します。 .It Fl I 各 package のインデックス行を表示します。このオプションは他の package 書式整形オプションの全てに優先します。 .It Fl k もしあれば、各 package のアンインストールスクリプト を表示します。 .It Fl r もしあれば、各 package の requirements スクリプトを表示します。 .It Fl R (指定した) 各 package を必要とする package のうちで、インストールされて いるもののリストを表示します。 .It Fl m もしあれば、各 package の mtree ファイルを表示します。 .It Fl L 各 package に含まれるファイルを表示します。 これは packing list をただ見るのとは異なり、 生成されるすべてのフルパス名が表示されます。 .It Fl s 各 package 中のインストールされたファイルの総容量を表示します。 .It Fl e Ar pkg-name .Ar pkg-name で示される package が現在インストールされている場合には 0 を 返し、そうでなければ 1 を返します。 このオプションにより、スクリプトから (おそらく必要不可欠な) 他の package の存在を簡単に確認することが可能になります。 .It Fl l Ar str 各 information category header ( .Fl q を参照) の前に .Ar str を付加します。 これは本来、package に関する多くの information fields を一度に 得たいが、そのごっちゃになった出力で混乱したくない、という フロントエンドプログラムのためにあります。 このオプションで各 field の先頭に特別な文字列を付け加えることが できます。 .It Fl t Ar template .Dq 作業場所 を作成する際に、 .Xr mktemp 3 への入力として .Ar template を用います。 これはデフォルトでは .Pa /tmp/instmp.XXXXXX という文字列ですが、 .Pa /tmp ディレクトリの容量が制限されているような状況では 変更する必要があるかもしれません。 .Xr mktemp 3 が一意の ID を用いるために必要な `X' の文字をいくつか残しておく ことを忘れないでください。 .Bd -filled -offset indent -compact Note: pkg_info は各 package からとても小さな情報しか 抽出しないので、実際にはこのオプションは必要ありません。 溢れさせるには非常に小さな .Pa /tmp でなければならないでしょう。 .Ed .Sh 技術詳細 package の情報は、コマンドラインから指定された package のファイル名か、 .Pa /var/db/pkg/ にあるすでにインストールされた package の情報から抽出されます。 .Sh 環境変数 .Ev PKG_TMPDIR で、 .Nm が作業用ファイルを生成するディレクトリを指定します。 この変数が設定されていない場合、 .Ev TMPDIR が用いられます。両方とも設定されていない場合、 組み込みのデフォルトディレクトリが用いられます。 .Pp .Ev PKG_DBDIR で、 インストールされた package についての代替的なデータベースの位置を指定します。 .Sh ファイル .Bl -tag -width /var/db/pkg -compact .It Pa /var/tmp 環境変数 .Ev PKG_TMPDIR , .Ev TMPDIR がともに設定されていない場合、もしくはこれらのディレクトリの空き領域が 十分でない場合に用いられます。 .It Pa /tmp .Pa /var/tmp が存在しないか、十分な空き領域を持たない場合に、次の選択肢として 用いられます。 .It Pa /usr/tmp .Pa /tmp が適切でない場合の最後の選択肢です。 .It Pa /var/db/pkg インストールされた package についてのデータベースのデフォルトの 位置です。 .El .Sh 関連項目 .Xr pkg_add 1 , .Xr pkg_create 1 , .Xr pkg_delete 1 , .Xr pkg_version 1 , .Xr mktemp 3 , .Xr mtree 8 .Sh 作者 .An Jordan Hubbard ほとんどの仕事 .An John Kohl NetBSD 向け修正 .El .Sh バグ まだあるはずです。 diff --git a/ja_JP.eucJP/man/man5/login.conf.5 b/ja_JP.eucJP/man/man5/login.conf.5 index 240dc58dc0..5821a95c3d 100644 --- a/ja_JP.eucJP/man/man5/login.conf.5 +++ b/ja_JP.eucJP/man/man5/login.conf.5 @@ -1,360 +1,365 @@ .\" Copyright (c) 1996 David Nugent .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, is permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice immediately at the beginning of the file, without modification, .\" 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. This work was done expressly for inclusion into FreeBSD. Other use .\" is permitted provided this notation is included. .\" 4. Absolutely no warranty of function or purpose is made by the author .\" David Nugent. .\" 5. Modifications may be freely made to this file providing the above .\" conditions are met. .\" -.\" %FreeBSD: src/lib/libutil/login.conf.5,v 1.22.2.3 2000/09/20 09:53:24 jkh Exp % +.\" %FreeBSD: src/lib/libutil/login.conf.5,v 1.22.2.4 2000/09/30 00:44:45 green Exp % .\" .\" jpman %Id: login.conf.5,v 1.3 1998/07/21 23:10:00 jsakai Stab % .Dd November 22, 1996 .Dt LOGIN.CONF 5 .Os FreeBSD .Sh 名称 .Nm login.conf .Nd ログインクラス ケーパビリティ データベース .Sh 書式 .Pa /etc/login.conf , .Pa ~/.login_conf .Sh 解説 .Nm login.conf には、ログインクラスについてのさまざまな属性やケーパビリティが 含まれています。 ログインクラス (ユーザアカウントデータベースである .Pa /etc/master.passwd のそれぞれの行について自由に設定できる注釈) は、セッションの アカウンティングやリソース制限、ユーザ環境設定などを決定します。 ログインクラスはシステム内のさまざまなプログラムから利用され、 ユーザのログイン環境を設定するほか、 ポリシー、アカウンティング及び管理上の制限を設定します。 ログインクラスはまた、 システムや利用可能な種々の認証機構に対するユーザ認証手段を提供します。 .Pp システムのユーザクラスケーパビリティデータベースである .Pa /etc/login.conf の中の "default" という特別なレコードは、 .Pa /etc/master.passwd 内に有効なログインクラスを持たない root 以外のすべてのユーザに よって自動的に使われます。有効なログインクラスを持たない uid が 0 の ユーザは、"root" レコードが存在する場合はそのレコードが、 存在しない場合は "default" レコードがログインクラスとして使われます。 .Pp FreeBSD においては、個々のユーザは .Pa .login_conf というファイルをホームディレクトリに作成することができます。 このファイルは (/etc/login.conf と) 同じフォーマットで、 レコード id が "me" である 1 エントリのみで構成されます。 もし .login.conf が存在するならば、このファイルは .Xr login 1 によって使用され、システムのログインケーパビリティデータベースによって 指定されたユーザ環境設定を上書き設定します。 その際、ログインケーパビリティのサブセット、 典型的には承認やリソース制限そしてアカウンティングを含まないもの のみが上書きされます。 .Pp クラスケーパビリティデータベースのレコードは、コロンで区切られた いくつかのフィールドから構成されています。 各レコードの最初のフィールドは、レコードを特定するための 1 つまたは複数の名前で、それらは '|' 文字で区切られます。 その最初の名前が、最も一般化された短縮名称です。 最後の名前は、ログインケーパビリティエントリをより分かりやすく説明した 長い名前であるべきで、他の名前はその同義語です。 すべての名前は小文字かつ空白を含まないようにすべきですが、 最後の名前は可読性を考慮して、大文字やブランクを含んでいてもよいでしょう。 .Pp ケーパビリティデータベースのフォーマットについての詳細な説明は .Xr getcap 3 を参照してください。 .Sh ケーパビリティ データベース内のそれぞれの行に含まれるフィールドは、 .Xr getcap 3 の慣習に従い、ブール型、文字列型 .Ql \&= 数値型 .Ql \&# があります。 しかしながら数値データのところは、数値型が拒否され文字列型が 受け入れられることがあったり、両方の書式が受け入れられることもあります。 値は次のカテゴリに分類されます。 .Bl -tag -width "program" .It file データファイルへのパス名 .It program 実行可能ファイルへのパス名 .It list コンマや空白で区切られた値のリスト (または値の組) .It path 普通の csh の慣習に従った、空白やコンマで区切られたパス名のリスト (先頭のユーザ名を伴う/伴わないチルダはホームディレクトリに展開される等) .It number 10 進数 (デフォルト)、16 進数 (0x で始まる)、または 8 進数 (0 で始まる) の 数値型の値。数値型の場合、設定できる値は 1 つだけです。 数値型は文字列型のフォーマットでも指定できる場合があります (ケーパビリティタグ '#' の代わりに '=' で値が区切られているなど)。 どの方法が使われた場合でも、データベース中のすべての行は修正したい行の値を 正確に上書きするために、同じ方法を用いなければなりません。 .It size サイズを表す文字。単位のデフォルトの解釈はバイトで、サフィックスに よって別の単位を指定できます。 .Bl -tag -offset indent -compact -width xxxx .It b 512 バイトブロックの明示的な指定 .It k キロバイトの指定 (1024 バイト) .It m 1 メガバイトの乗数の指定 (1048576 バイト) .It g ギガバイト単位の指定。そして .It t テラバイトの記述。 .El サイズの値は数値であり、サフィックスの大文字小文字は重要ではありません。 連続した値は足し込まれます。 .It time 時間の期間。デフォルトの単位は秒。 プレフィックスによって別の単位を指定できます。 .Bl -tag -offset indent -compact -width xxxx .It y 1 年を 365 日で数えた年数の指定 .It w 週の数の指定 .It d 日数 .It h 時間数 .It m 分数 .It s 秒数 .El 連続した値は足し込まれます。 たとえば 2 時間 40 分は 9600s、160m または 2h40m と 表現することができます。 .El .Pp 特別な .Em tc=value 表記を使用することにより、通常の約束事であるケーパビリティエントリの 補間が可能です。 .Pp .Sh リソース制限 .Bl -column coredumpsize indent indent .Sy Name Type Notes Description .It cputime time CPU 使用制限 .It filesize size ファイルサイズの最大値制限 .It datasize size データサイズの最大値制限 .It stacksize size スタックサイズの最大値制限 .It coredumpsize size コアダンプサイズの最大値制限 .It memoryuse size コアメモリ使用量の最大値制限 .It memorylocked size コアメモリロック可能量の最大値制限 .It maxproc number プロセス数の最大値制限 .It openfiles number プロセスごとにオープンできるファイル数の最大値制限 .It sbsize size 最大のソケットバッファサイズ .El .Pp これらのリソース制限エントリは、実際には最大値と現在の 制限値の両方を指定します ( .Xr getrlimit 2 を参照してください)。 普通は現在の制限値 (ソフトリミット) が使われますが、 ユーザは現在の制限値を最大制限値 (ハードリミット) まで増やすことが 許されています。 最大制限値と現在の制限値はケーパビリティ名に各々 -max 及び -cur を 追加することによって指定できます。 .Pp .Sh 環境 .Bl -column ignorenologin indent xbinxxusrxbin .Sy Name Type Notes Description .It charset string $MM_CHARSET 環境変数の明示的な設定値 .It hushlogin bool false ~/.hushlogin ファイルがある場合と同じ .It ignorenologin bool false nologin によってログインを禁止されません .It lang string $LANG 環境変数を指定した値に設定します .It manpath path マニュアルページのデフォルト検索パス .It nologin file このファイルが存在する場合、ファイルの内容が画面に表示され、そのログインセッションは終了されます .It path path /bin /usr/bin デフォルトコマンド検索パス .It priority number 優先度 (nice) レベルの初期値 .It requirehome bool false ログインのために有効なホームディレクトリが必要 .It setenv list コンマで区切られた環境変数とその設定値のリスト .It shell prog パスワードファイルで指定されているシェルより優先して実行されるセッションシェル。SHELL 環境変数の値は、パスワードファイルで指定されているものになります。 .It term string 他の手段によって決定できない場合のデフォルトの端末タイプ .It timezone string $TZ 環境変数のデフォルト値 .It umask number 022 umask の初期値。続く数字が 8 進数と解釈されるように、常に 0 から始めます .It welcome file /etc/motd ウェルカムメッセージが入っているファイル .El .Pp .Sh 認証 .Bl -column minpasswordlen indent indent .Sy Name Type Notes Description .It minpasswordlen number 6 ローカルパスワード文字列長の最小値 +.It passwd_format string md5 新規パスワードが使用する +暗号フォーマット。 +有効な値は "md5" と "des" です。 +NIS クライアントが、FreeBSD ではない NIS サーバを使用する場合、 +おそらく "des" を使用すべきでしょう。 .\" .It approve program Program to approve login. .It mixpasswordcase bool true Whether すべて小文字のパスワードが入力された場合、 .Xr passwd 1 がユーザに警告します .It copyright file 追加のコピーライト情報を含んだファイル .\".It widepasswords bool false Use the wide password format. The wide password .\" format allows up to 128 significant characters in the password. .It host.allow list クラス内のユーザがアクセス可能なリモートホストワイルドカードのリスト .It host.deny list クラス内のユーザがアクセス不可なリモートホストワイルドカードのリスト .It times.allow list ログインが許されている時間帯のリスト .It times.deny list ログインが許されない時間帯のリスト .It ttys.allow list クラス内のユーザがアクセスに使用できる端末と端末グループのリスト .It ttys.deny list クラス内のユーザがアクセスに使用不可な端末と端末グループのリスト .El .Pp これらのフィールドは、ログイン認証システムの中で .Xr passwd 1 や、その他のプログラムから使用される予定です。 .Pp 環境変数を設定するケーパビリティは、その中の文字 .Ql \&~ と .Ql \&$ の両方がスキャンされ、これらはそれぞれ ユーザのホームディレクトリ及びユーザ名に置換されます。 環境変数中にこれらの文字をそのまま含める場合には、 その前にバックスラッシュ '\\' をつけてエスケープします。 .Pp .Em host.allow と .Em host.deny エントリはコンマで区切られたリストで、システムへのリモートアクセスの チェックに使われます。 これらはホスト名か IP アドレスまたはその両方を含むリストからなり、 それらに対してリモートログインのチェックが行われます。 このリストの各項目は、ワイルドカード一致用にシェルプログラムが使用しているのと 同じ書式のワイルドカードを含むことができます (実装の詳細は .Xr fnmatch 3 を参照してください)。 ホストのチェックは、リモートシステムのインターネットアドレス と (もし有効なら) ホスト名の両方をつきあわせて行われます。 両方のリストが空かもしくは指定されていない場合、あらゆるリモートホスト からのログインは許可されます。 host.allow が 1 つかそれ以上のホストを含む場合、リスト中の 各項目のどれかにマッチしたリモートシステムのみがログインを許されます。 host.deny が 1 つかそれ以上のホストを含む場合、そのリストのどれかに マッチしたホストからのログインが禁止されます。 .Pp .Em times.allow と .Em times.deny エントリはコンマで区切られた期間のリストであり、この期間はクラス内の ユーザがログインを許されます。 これらは 1 つ以上の日のコード指定と、これに続けて 24 時間表記の開始時刻と 終了時刻をハイフンまたはダッシュで区切ったものとして表現されます。 たとえば MoThSa0200-1300 は、月、木、土の 午前 2 時から午後 1 時と解釈されます。 これらの時間指定リストの両方が空だった場合、クラス内のユーザはいつでもアクセス 可能になります。 .Em times.allow が指定されている場合、ログインは指定された期間のみ許可されます。 もし .Em times.deny が指定されている場合、 .Em times.allow の中で期間が指定されているかどうかに関わらず、指定された期間は ログインできなくなります。 .Pp .Xr login 1 が強制することは、これらのエントリにより許可された期間内に実際の ログインが行なわれることのみである点に注意して下さい。 セッションの生存期間に関して更なる規制をかけるには、別のデーモンを用意し、 許可されている期間から許可されていない期間への 遷移を監視する必要があります。 .Pp .Em ttys.allow と .Em ttys.deny エントリは、クラス内のユーザがシステムにアクセスするために使う コンマで区切られた (/dev/ プレフィックスを除く) 端末デバイスと、 端末グループ (ttygroup) のリストです (ttygroup の詳細は .Xr getttyent 3 と .Xr ttys 5 を参照して下さい)。 どちらのエントリも存在しない場合、ユーザが使用するログインデバイスの選択には 制限はありません。 .Em ttys.allow のみ指定されている場合、ユーザの使えるデバイスは指定されたグループ またはデバイスリストのみに制限されます。 .Em ttys.deny のみ指定されている場合、ユーザは指定されたデバイスやデバイス グループを使用できません。 両方が与えられていてかつどちらも空でない場合、ユーザは ttys.allow で指定されていて、ttys.deny では指定されていないデバイス群のみ 使用できます。 .Sh アカウント制限 .Bl -column host.accounted indent indent .Sy Name Type Notes Description .It accounted bool false このクラス内の全ユーザの セッション時間アカウウンティングを有効化 .It autodelete time アカウント失効後自動で削除されるまでの時間 .It bootfull bool false セッション終了時の「ttygroup が一杯の場合にのみブート」戦略を 有効にする .It daytime time 1 日あたりのログイン最大時間 .It expireperiod time 期限切れまでの割り当て時間 .It graceexpire time 失効したアカウントの猶予日数 .It gracetime time 追加された、猶予ログイン許可時間 .It host.accounted list ログインセッションがアカウントされる リモートホストワイルドカードのリスト .It host.exempt list ログインセッションのアカウンティング を免除されたリモートホストワイルドカードのリスト .It idletime time ログアウトまでの最大アイドル時間 .It monthtime time 月毎の最大ログイン時間 .It passwordtime time 次回パスワード無効日を指定するために .Xr passwd 1 が使用 .It refreshtime time アカウントのリフレッシュ許可時間 .It refreshperiod str リフレッシュが行なわれる頻度 .It sessiontime time セッション毎の最大ログイン時間 .It sessionlimit number すべてのグループに対する tty 上の 同時最大ログイン数 .It ttys.accounted list ログインアカウントが有効な tty と ttygroup のリスト .It ttys.exempt list ログインアカウントが無効な tty と ttygroup のリスト .It warnexpire time 失効しそうなアカウントに対する事前の注意を 行なう時間 .It warnpassword time 失効しそうなパスワードに対する事前の 注意を行なう時間 .It warntime time 時間切れになりそうな場合に対する事前の注意を 行なう時間 .It weektime time 1 週間毎の最大ログイン時間 .El .Pp これらのフィールドは、ユーザのログインアクセスを規制、コントロール、記録する タイムアカウンティングシステムによって使われます。 .Pp .Em ttys.accounted と .Em ttys.exempt フィールドは、先に述べた .Em ttys.allow と .Em ttys.deny と同じような方法で状態を操作します。 .Em host.accounted と .Em host.exempt のリストも同様です。 .Sh 関連項目 .Xr cap_mkdb 1 , .Xr login 1 , .Xr getcap 3 , .Xr getttyent 3 , .Xr login_cap 3 , .Xr login_class 3 , .Xr passwd 5 , .Xr ttys 5 diff --git a/ja_JP.eucJP/man/man5/mailer.conf.5 b/ja_JP.eucJP/man/man5/mailer.conf.5 index 7cee4a707a..d2afd8851f 100644 --- a/ja_JP.eucJP/man/man5/mailer.conf.5 +++ b/ja_JP.eucJP/man/man5/mailer.conf.5 @@ -1,101 +1,102 @@ .\" %NetBSD: mailer.conf.5,v 1.2 1999/05/29 18:18:30 christos Exp % +.\" %FreeBSD: src/share/man/man5/mailer.conf.5,v 1.1.1.1.2.1 2000/09/27 07:49:32 marko Exp % .\" .\" Copyright (c) 1998 .\" Perry E. Metzger. 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 acknowledgment: .\" This product includes software developed for the NetBSD Project .\" by Perry E. Metzger. .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. .\" .\" jpman %Id: mailer.conf.5,v 1.3 2000/05/09 23:01:21 yt-kage Stab % .\" The following requests are required for all man pages. .Dd December 16, 1998 .Dt MAILER.CONF 5 .Os .Sh 名称 .Nm mailer.conf .Xr mailwrapper 8 .Nd の設定ファイル .Sh 解説 .Pp -.Pa /etc/mailer.conf +.Pa /etc/mail/mailer.conf はいくつかのペアが含まれています。 それぞれのペアの 1 番目の要素は .Xr mailwrapper 8 によって起動されるプログラムの名前です。 通常、このプログラムは .Pa /usr/sbin/sendmail へのシンボリックリンクです (大抵のシステムでは、 .Xr newaliases 1 と .Xr mailq 1 はそのように設定されているでしょう)。 それぞれのペアの 2 番目の要素は最初の名前が起動された時に、 実際に実行されるプログラムの名前です。 ファイルにはどの行にでも最初の列に # を示すことにより、 コメントを含めることができます。 .Sh 使用例 以下は伝統的な sendmail 起動動作のための .Nm 設定例です。 .Bd -literal # /usr/libexec/sendmail/sendmail という名前 "実際の" sendmail を実行します sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail .Ed .Pp この例では、sendmail の代わりに架空の "newmail" プログラムを 起動する方法を示しています。 .Bd -literal # postfix を用いて sendmail をエミュレートします sendmail /usr/libexec/postfix/sendmail send-mail /usr/libexec/postfix/sendmail mailq /usr/libexec/postfix/sendmail newaliases /usr/libexec/postfix/sendmail .Ed .Sh 関連ファイル -/etc/mailer.conf +/etc/mail/mailer.conf .Sh 関連項目 .Xr mail 1 , .Xr mailq 1 , .Xr mailwrapper 8 , .Xr newaliases 1 , .Xr sendmail 8 . .Sh 歴史 .Nm は .Nx 1.4 で登場しました。 .Sh 作者 Perry E. Metzger .Sh バグ このプログラムは、互換のためだけに存在しています。このプログラムのかわりに、 どういう手段でメールを送るかを決める標準的なコマンドをつくり、そして .Xr mailq 1 のような "異なる名前で実行されると振る舞いが異なる" という動作は すべてなくしてしまうべきです。 diff --git a/ja_JP.eucJP/man/man8/ipfw.8 b/ja_JP.eucJP/man/man8/ipfw.8 index caab7afc70..ca6f6229ec 100644 --- a/ja_JP.eucJP/man/man8/ipfw.8 +++ b/ja_JP.eucJP/man/man8/ipfw.8 @@ -1,1279 +1,1281 @@ .\" -.\" %FreeBSD: src/sbin/ipfw/ipfw.8,v 1.63.2.3 2000/08/05 00:43:18 billf Exp % +.\" %FreeBSD: src/sbin/ipfw/ipfw.8,v 1.63.2.4 2000/09/29 08:51:10 ru Exp % .\" .\" jpman %Id: ipfw.8,v 1.4 1997/05/19 17:19:51 horikawa Stab % .Dd February 16, 2000 .Dt IPFW 8 .Os FreeBSD .Sh 名称 .Nm ipfw .Nd IP ファイアウォールとトラフィックシェイパの制御ユーティリィティ .Sh 書式 .Nm ipfw .Op Fl q .Oo .Fl p Ar preproc .Oo Fl D .Sm off .Ar macro .Op = Ar value .Sm on .Oc .Op Fl U Ar macro .Oc .Ar file .Nm ipfw .Op Fl f | q .Cm flush .Nm ipfw .Op Fl q .Es \&{ \&} .En Cm zero | resetlog | delete .Op Ar number ... .Nm ipfw .Op Fl s Op Ar field .Op Fl aftN .Es \&{ \&} .En Cm list | show .Op Ar number ... .Nm ipfw .Op Fl q .Cm add .Op Ar number .Ar rule-body .Nm ipfw .Cm pipe .Ar number .Cm config .Ar pipe-config-options .Nm ipfw .Cm pipe .Es \&{ \&} .En Cm delete |list | show .Op Ar number ... .Nm ipfw .Cm queue .Ar number .Cm config .Ar queue-config-options .Nm ipfw .Cm queue .Es \&{ \&} .En Cm delete | list | show .Op Ar number ... .Sh 解説 .Nm は、 .Fx の .Xr ipfirewall 4 と .Xr dummynet 4 トラフィックシェイパを制御するユーザインタフェースです。 .Pp 各入出力パケットは .Nm ルールを通されます。 ホストがゲートウェイとして動作している場合、 ゲートウェイが転送するパケットは .Nm が 2 度処理します。 ホストがブリッジとして動作している場合、 ブリッジが転送するパケットは .Nm が 1 度処理します。 .Pp ファイアウォール設定は、番号付けされたルールのリストからなります。 あるルールにマッチしそれに関連する動作が実行されるまで、 各パケットはルールのリストに対し照合されます。 動作とシステムの設定によっては、マッチしたルールの直後で、 パケットがファイアウォールに再注入され、 更に処理が継続することもあります。 全てのルールが全てのインタフェースに適用されますので、 チェックの回数が最小となるようなルール集合を書くのは システム管理者の責任です。 .Pp どの設定も常に、 .Em DEFAULT ルール (番号 65535) を含みます。このルールはプログラマが変更できず、 常にパケットにマッチします。 デフォルトルールに関連付けるルールは .Cm deny か .Ar allow のどちらかになりますが、 これはどのようにカーネルを設定したかに依存します。 .Pp ルール集合が .Cm keep-state オプション付きのルールを含む場合、 .Nm は .Em ステートフル (状態依存型) で動作します。すなわち、あるマッチの結果、 マッチしたパケットのパラメータにちょうど一致するルールが 動的に生成されます。 .Pp これらの動的ルールの寿命は有限で、 .Cm check-state または .Cm keep-state ルールが最初に生じた場所でチェックされます。 動的ルールは、合法的なトラフィックをオンデマンドで ファイアウォールを通過させるために用いることが普通です。 .Nm のステートフルな動作について更に情報が必要ならば、 以下の .Sx ルール書式 または .Sx 使用例 セクションを参照して下さい。 .Pp 動的ルールも含めすべてのルールは、 それに関連するカウンタをいくつか持っています。 それは、パケットカウント、バイトカウント、ログカウント、 最後にマッチした時刻を示すタイムスタンプです。 カウンタは、 .Nm コマンドによって、表示およびリセット可能です。 .Pp ルールの追加は .Cm add コマンドにて可能です。 個々のルールの削除は .Cm delete コマンドにて可能であり、すべてのルールの削除は .Cm flush コマンドにて可能です。 ルールの表示は、 .Ar show コマンドおよび .Ar list コマンドにて可能です。 これらにより、オプションでカウンタ内容も含めて表示させることができます。 最後に、カウンタのリセットは .Ar zero コマンドおよび .Ar resetlog コマンドにて可能です。 .Pp 次のオプションが利用可能です: .Bl -tag -width indent .It Fl a リスト中にカウンタ値を示します。 .Dq show コマンドもあわせて見てください。 .It Fl f 誤って使用すると問題を起す可能性のあるコマンド、 .No すなわち Cm flush に対して、実行の確認を行いません。 .Em 注 : プロセスに関連付けられた tty が無い場合、このオプションが 暗黙のうちに指定されたとして処理されます。 .It Fl q .Cm add , .Cm zero , .Cm resetlog , .Cm flush 実行中、動作について報告しません .Po 暗黙のうちに .Fl f が指定されます .Pc 。 スクリプト .Po 例えば .Sq sh /etc/rc.firewall .Pc の中で複数の .Nm コマンドを実行してルールを変更する場合や、 リモートログインセッション経由で多数の .Nm ルールを含むファイルを処理することによりルールを変更する場合に 有用です。 通常 (冗長) モードで (デフォルトカーネル設定で) flush を行った場合、 メッセージを表示します。 すべてのルールが捨てられますので、 メッセージはログインセッションへ渡せません。 つまり、リモートログインセッション経由の場合、セッションはクローズされ、 残りのルールセットは処理されません。 この状態から回復するためにはコンソールへのアクセスが必要になります。 .It Fl t リスト作成時に、最後にマッチしたタイムスタンプを表示します。 .It Fl N 出力中のアドレスとサービス名を解決しようとします。 .It Fl s Op Ar field パイプ経由でリスト出力している際に、4つのカウンタの1つについて 整列させます (現在のパケット数)。 .El .Pp 設定を簡単にするために、ルールをファイルに記述して、 これを .Nm の最初の書式行を使って処理します。この場合 .Ar file を 1 行ずつ、 .Nm ユーティリティへの引数として読み込みます。 .Pp .Fl p Ar preproc を使用して、 .Ar file がパイプされるプリプロセッサを指定することもできます。 有用なプリプロセッサには、 .Xr cpp 1 と .Xr m4 1 があります。 .Ar preproc の最初の文字がスラッシュ .Pq Ql / から始まらない場合、 .Ev PATH を使用した通常の名前検索が行われます。 .Nm が実行されるときまでに全ファイルシステムが (まだ) マウントされないような環境 (例えば NFS 経由でマウントされる場合) では、このことに注意してください。 ひとたび .Fl p が指定されると、オプションとして .Fl D と .Fl U の指定を続けることが可能となり、これらがプリプロセッサに渡されます。 これにより、(ローカルホスト名により条件付けするなど) 柔軟性のある設定ファイルを作成可能となり、IP アドレスのように 頻繁に必要となる引数を集中管理するためのマクロを使用可能となります。 .Pp 後述の .Sx トラフィックシェイパ設定 の節で示すように、 .Nm .Cm pipe コマンドを使用して、トラフィックシェイパを構築可能です。 .Pp .Sh ルール書式 .Nm ルールフォーマットは次の通りです。 .Bd -ragged .Op Cm prob Ar match_probability .Ar action .Op Cm log Op Cm logamount Ar number .Ar proto .Cm from Ar src .Cm to Ar dst .Op Ar interface-spec .Op Ar options .Ed .Pp 各パケットをフィルタする際には、以下の情報に基づくことができます。 .Pp .Bl -tag -width "送信元および宛先 IP アドレス" -offset indent -compact .It 送受信インタフェース (名前またはアドレス) .It 方向 (入力または出力) .It 送信元および宛先 IP アドレス (マスク使用可) .It プロトコル (TCP, UDP, ICMP 等) .It 送信元および宛先ポート (リスト、範囲、マスクのいずれか) .It TCP フラグ .It IP フラグメントフラグ .It IP オプション .It ICMP タイプ .It パケットに関連付けられたソケットのユーザ ID とグループ ID .El .Pp 送信元 IP アドレスや宛先 TCP/UDP ポートによるフィルタは 危険があることに注意してください。 なぜなら、これらの詐称は簡単だからです。 .Bl -tag -width indent .It Cm prob Ar match_probability 指定した確率 (0 から 1 までの浮動小数点数です) でのみマッチが宣言されます。 ランダムにパケットを落とす応用として用いる場合や、 .Po .Xr dummynet 4 と共に使用して .Pc パケット到達順序の乱れを引き起こす複数経路の効果をシミュレートする際に 有用です。 .It Ar action : .Bl -tag -width indent .It Cm allow マッチするパケットを通過させ、マッチングを終了します。 .Cm pass , .Cm permit , .Cm accept はこれの別名です。 .It Cm deny マッチするパケットを破棄し、マッチングを終了します。 .Cm drop は .Cm deny の別名です。 .It Cm reject .Pq この使用は推奨されません マッチするパケットを破棄し、 ICMP の host unreachable を送信し、 マッチングを終了します。 .It Cm unreach Ar code マッチするパケットを破棄し、 ICMP の unreachable に .Ar code を付けて送信します。ここで、 .Ar code は、0 から 256 までの数字、もしくは、以下に列挙する別名のいずれかです: .Cm net , host , protocol , port , .Cm needfrag , srcfail , net-unknown , host-unknown , .Cm isolated , net-prohib , host-prohib , tosnet , .Cm toshost , filter-prohib , host-precedence , .Cm precedence-cutoff 。マッチングは終了します。 .It Cm reset TCP パケットのみ対象。 パケットを破棄し、TCP の reset (RST) を送信し、 マッチングを終了します。 .It Cm count ルールにマッチするパケットすべてのカウンタを更新し、 引続きマッチングを行ないます。 .It Cm check-state 動的ルール集合に対してパケットのチェックを行ないます。 マッチした場合、マッチングは終了します。 マッチしなかった場合、次のルールに移ります。 .Cm check-state ルールが見つからないときは、動的ルール集合は最初の .Cm keep-state ルールの場所でチェックされます。 .It Cm divert Ar port マッチするパケットを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、マッチングを終了します。 .It Cm tee Ar port マッチするパケットのコピーを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送ります。 検索を終了し、元のパケットは受理されます .Po ただし後述の .Sx バグ を参照してください .Pc "。" .It Cm fwd Ar ipaddr Ns Xo .Op , Ns Ar port .Xc マッチしたパケットの次のホップを .Ar ipaddr に変更します。これはドット付き 4 つ組の IP アドレスでもホスト名でもよいです。 .Ar ipaddr が直接到達可能なアドレスではない場合、その IP に対して ローカルルーティングテーブルでみつかった経路を使用します。 .Ar ipaddr がローカルアドレスの場合、 リモートホストからこのシステムにパケットが到着すると、 そのパケットをローカルマシンの .Ar port に転換します。 その際、 ソケットのローカルアドレスは、 パケットの元々の宛先の IP アドレスのままとします。 これは透過的プロキシサーバのためにあります。 IP が ローカルアドレスではない場合、ポート番号は (指定されていても) 無視され、 ルールはシステムから出て行くパケットに対してのみ適用されます。 パケットがローカルに生成されたときには、アドレスをローカルポートに マップします。 検索はこのルールがマッチしたときに終了します。 ポート番号が与えられなかった場合、 外部マシンのポート Y へのパケットは ローカルポート Y へ転送されるように、 パケット中のポート番号が使用されます。 カーネルは、 オプション IPFIREWALL_FORWARD 付きでコンパイルされている必要があります。 .It Cm pipe Ar pipe_nr パケットを .Xr dummynet 4 .Dq パイプ へ渡します (バンド幅制限、遅延等のため)。 更なる情報については .Sx トラフィックシェイパ設定 の節を参照してください。 検索は終了します。 しかし、パイプから抜けたときに .Xr sysctl 8 変数 .Em net.inet.ip.fw.one_pass がセットされていない場合、 パケットはファイアウォールコードへ再度渡されて次のルールから開始します。 .It Cm queue Ar queue_nr パケットを .Xr dummynet 4 .Dq queue へ渡します (WF2Q を使ったバンド幅制限用)。 .It Cm skipto Ar number .Ar number より小さな番号のルールを飛び越して、 .Ar number 以上の番号のルールで最初に存在するものから、マッチングを継続します。 .El .It Cm log Op Cm logamount Ar number カーネルが .Dv IPFIREWALL_VERBOSE オプション付きでコンパイルされている場合に、 .Cm log キーワードが指定されているルールとマッチした時、 メッセージをコンソールへ表示します。 カーネルが、 .Dv IPFIREWALL_VERBOSE_LIMIT オプション付きでコンパイルされている場合、 デフォルトでは、 一連のルールに対し指定されたパケット 数を受信した後、メッセージの表示を中止し、 .Em net.inet.ip.fw.verbose_limit がその数に設定されます。 しかし .Cm logamount Ar number が使用された場合、 .Em net.inet.ip.fw.verbose_limit の代りにこの .Ar number がデフォルトのログ制限になり、値 .Dq 0 を指定すると、ロギングの制限は取り除かれます。 このエントリに対するロギングカウンタまたはパケットカウンタを クリアすれば、ロギングは再び有効になります。 .Pp コンソールログとデフォルトログ制限数は、 .Xr sysctl 8 を通じて MIB ベース .Dv net.inet.ip.fw にて動的に設定できます。 .It Ar proto 名前または数値で指定する IP プロトコル (詳細は .Pa /etc/protocols のリストを参照のこと)。 .Cm ip または .Cm all のキーワードを使用すると、すべてのプロトコルがマッチします。 .It Ar src No と Ar dst : .Aq Ar address Ns / Ns Ar mask .Op Ar ports .Pp .Aq Ar address Ns / Ns Ar mask は以下のように指定できます。 .Bl -tag -width indent .It Ar ipno IP 番号を 1.2.3.4 の形式で指定します。 この IP 番号にのみマッチします。 .It Ar ipno Ns / Ns Ar bits IP 番号とネットマスクの幅を 1.2.3.4/24 の形式で指定します。 この例の場合は 1.2.3.0 から 1.2.3.255 のアドレスがマッチします。 .It Ar ipno Ns : Ns Ar mask IP 番号とネットマスクを 1.2.3.4:255.255.240.0 の形式で指定します。 この場合は 1.2.0.0 から 1.2.15.255 のアドレスがマッチします。 .El .Pp アドレスの前に .Cm not を付けることによって、マッチの意味を反転させる ことができます (指定されたアドレス以外のすべてのアドレスがマッチします)。 これはポート番号の選択には影響しません。 .Pp TCP と UDP ではさらに、 .Em ports を以下のように指定できます。 .Bd -ragged -offset indent .Sm off .Eo \&{ .Ar port | .Ar port No \&- Ar port | .Ar port : mask .Ec \&} Op , Ar port Op , Ar ... .Sm on .Ed .Pp 記号 .Ql \&- による表現は、ポート範囲 (両端含む) を指定します。 .Pp 記号 .Ql \&: による表現は、ポートとマスクを指定します。 マッチが宣言されるのは、 パケット中のポート番号がルール中のポート番号にマッチするときですが、 マッチ対象のビットはマスク中で指定されたものに限定されます。 .Pp ポート番号の代わりに (ファイル .Pa /etc/services から取った) サービス名を使用できます。 ポート範囲指定の書式は、最初の値としてのみ指定できます。 列挙出来るポート数は .Pa /usr/src/sys/netinet/ip_fw.h で .Dv IP_FW_MAX_PORTS として定義されています。 バックスラッシュ .Pq Ql \e を使用することにより、サービス名中の .Pq Ql - 文字をエスケープ可能です: .Pp .Dl ipfw add count tcp from any ftp\e\e-data-ftp to any .Pp 断片化されたパケットでオフセットが非 0 のもの (すなわち、最初の断片ではないもの) は、 1 つ以上のポート指定を持つルールにはマッチしません。 断片化されたパケットへのマッチングに関する詳細は .Cm frag オプションを参照してください。 .It Ar interface-spec 次の指定子の組み合わせを使用可能です: .Bl -tag -width "via ipno" .It Cm in 入力パケットにのみマッチします。 .It Cm out 出力パケットにのみマッチします。 .It Cm via Ar ifX パケットはインタフェース .Ar ifX を通過せねばなりません。 .It Cm via Ar if Ns Cm * パケットはインタフェース .Ar ifX を通過せねばなりません。この .Ar X はどんなユニット番号でもかまいません。 .It Cm via any パケットは .Em いずれか のインタフェースを通過せねばなりません。 .It Cm via Ar ipno パケットは、 IP アドレス .Ar ipno を持つインタフェースを通過せねばなりません。 .El .Pp .Cm via を用いると、常時指定されたインタフェースがチェックされます。 .Cm recv や .Cm xmit を、 .Cm via の代わりに指定すると、 受信、もしくは送信インタフェースのみが (おのおの) チェックされます。 両方を指定すれば、 受信インタフェースと送信インタフェースの両方に基づきパケットを マッチさせることが可能になります。 例 : .Pp .Dl "ipfw add 100 deny ip from any to any out recv ed0 xmit ed1" .Pp .Cm recv で指定したインタフェースでは、受信と送信、両方のパケットをチェックできます。 それに対し、 .Cm xmit で指定したインタフェースでは、送信パケットのみとなります。 それゆえに、 .Cm xmit を指定すると .Cm out が、必須です ( .Ar in は不可)。 .Ar via と共に .Ar xmit もしくは、 .Ar recv を指定する事はできません。 .Pp パケットは、受信用ないし送信用インタフェースを持たない場合があります。 ローカルホストで発生したパケットには受信用のインタフェースはありませんし、 ローカルホスト内宛のパケットには送信用インタフェースはありません。 .It Ar options : .Bl -tag -width indent .It Cm keep-state Op Ar method マッチの際に、ファイアウォールが動的ルールを生成します。このルールの デフォルトの動作は、同一プロトコルを用いる発信元と宛先の IP/port 間で双方向に通過するパケットへのマッチです。 このルールの生存期間は有限です ( .Xr sysctl 8 変数の集合により制御されます)。この生存期間は、パケットのマッチが 生じるたびに更新されます。 .Pp 実際の動作は、異なる .Ar method を指定することにより変更が可能です。 .It Cm bridged ブリッジされるパケットにのみマッチします。 これはマルチキャストやブロードキャストのパケットを扱う際に有用です。 これ以外の方法では、パケットは、ブリッジの際に一度、 ローカルスタックに渡される際にもう一度と、 ファイアウォールを 2 度通過してしまいます。 .Pp パフォーマンス上のわずかな損失はともかく、 .Em pipe を用いる際にも問題になります。これは、バンド幅、キュー占有度などの カウンタに関して、同じパケットが 2 度カウントされてしまうためです。 .It Cm frag パケットが断片 (フラグメント) 化されたデータグラムの一部で、 かつデータグラムの先頭の断片でない場合にマッチします。 .Cm frag を、 .Cm tcpflags や TCP/UDP ポート指定と共に使用することはできません。 .It Cm ipoptions Ar spec IP ヘッダが、 .Ar spec に指定されたコンマで区切られたオプションのリストを含む場合にのみマッチします。 サポートされている IP オプションは .Pp .Cm ssrr (strict source route), .Cm lsrr (loose source route), .Cm rr (record packet route), .Cm ts (timestamp) です。 .Ql ! によって、特定のオプションを含まない指定が記述できます。 .It Cm tcpoptions Ar spec TCP ヘッダが、 .Ar spec に指定されたコンマで区切られたオプションのリストを含む場合にのみマッチします。 サポートされている TCP オプションは .Pp .Cm mss (maximum segment size), .Cm window (tcp window advertisement), .Cm sack (selective ack), .Cm ts (rfc1323 timestamp), .Cm cc (rfc1644 t/tcp connection count) です。 .Ql ! によって、特定のオプションを含まない指定が記述できます。 .It Cm established TCP パケットのみに適用されます。 RST または ACK ビットがセットされているパケットのみマッチします。 .It Cm setup TCP パケットのみに適用されます。 SYN ビットがセットされ ACK がセットされていないパケットのみマッチします。 .It Cm tcpflags Ar spec TCP パケットのみに適用されます。 TCP ヘッダが .Ar spec に指定されたコンマで区切られたフラグのリストを含む場合にのみマッチします。 サポートされているフラグは、 .Pp .Cm fin , .Cm syn , .Cm rst , .Cm psh , .Cm ack , .Cm urg です。 .Ql ! によって、特定のフラグを含まない指定を記述できます。 .Cm tcpflags 指定を含むルールは、非 0 のオフセットを持つ断片化されたパケットに マッチすることはありません。 断片化されたパケットに関するマッチについての詳細は .Cm frag オプションを参照してください。 .It Cm icmptypes Ar types ICMP パケットのみに適用されます。 ICMP タイプが .Ar types で指定されたリスト中に存在する場合にのみマッチします。 リストは範囲指定でも、タイプおのおのをコンマで区切ったものでも どちらの組み合わせでもかまいません。 サポートされている ICMP タイプは次の通りです: .Pp エコー返答 .Pq Cm 0 , 終点不到達 .Pq Cm 3 , 発信抑制 .Pq Cm 4 , リダイレクト .Pq Cm 5 , エコー要求 .Pq Cm 8 , ルータ広告 .Pq Cm 9 , ルータ要請 .Pq Cm 10 , 時間超過 .Pq Cm 11 , IP ヘッダ異常 .Pq Cm 12 , タイムスタンプ要求 .Pq Cm 13 , タイムスタンプ応答 .Pq Cm 14 , 情報要求 .Pq Cm 15 , 情報返答 .Pq Cm 16 , アドレスマスク要求 .Pq Cm 17 , アドレスマスク応答 .Pq Cm 18 .It Cm uid Ar user .Ar user が送信したまたは受信する、 すべての TCP パケットと UDP パケットにマッチします。 .Ar user は、名前でも ID 番号でもマッチします。 .It Cm gid Ar group .Ar group が送信したまたは受信する、 すべての TCP パケットと UDP パケットにマッチします。 .Ar group は、名前でも ID 番号でもマッチします。 .El .El .Sh トラフィックシェイパ設定 .Nm ユーティリティは、 .Xr dummynet 4 トラフィックシェイパへのユーザインタフェースも提供します。 シェイパは、ユーザが指定したマスクを IP ヘッダの異なったフィールドに 適用することにより、パケットを .Em フロー (flow) に分割します。 同じフローに属するパケットは 2 つの異なったオブジェクトへ渡されます。 それは .Em パイプ (pipe) または .Em キュー (queue) と呼ばれるものです。 .Em パイプ は、与えられたバンド幅、遅延時間、キューの長さ、パケット喪失率を もつリンクをエミュレートします。 このパラメータに従い、パケットはパイプ中を遷移します。 .Pp .Em キュー は、WF2Q+ ポリシを実装するために使用する抽象化です。 キューは、各フローに対し、重みと参照パイプを関連付けます。 それから、同じパイプに結び付けられたすべてのフローは、 WF2Q+ ポリシに従い、 パイプによって固定されたレートでスケジュールされます。 .Pp .Nm パイプ設定書式は次の通りです。 .Bd -ragged .Cm pipe Ar number Cm config .Op Cm bw Ar bandwidth | device .Op Cm delay Ar ms-delay .Oo .Cm queue .Es \&{ \&} .En Ar slots | size .Oc .Op Cm plr Ar loss-probability .Op Cm mask Ar mask-specifier .Op Cm buckets Ar hash-table-size .Oo .Cm red | gred .Sm off .Ar w_q No / Xo .Ar min_th No / .Ar max_th No / .Ar max_p .Xc .Sm on .Oc .Ed .Pp .Nm キュー設定書式は次の通りです。 .Bd -ragged .Cm queue Ar number Cm config .Op Cm pipe Ar pipe_nr .Op Cm weight Ar weight .Oo .Cm queue .Es \&{ \&} .En Ar slots | size .Oc .Op Cm plr Ar loss-probability .Op Cm mask Ar mask-specifier .Op Cm buckets Ar hash-table-size .Oo .Cm red | gred .Sm off .Ar w_q No / Xo .Ar min_th No / .Ar max_th No / .Ar max_p .Xc .Sm on .Oc .Pp 次のパラメータをパイプに対して設定可能です: .Bl -tag -width indent .It Cm bw Ar bandwidth | device バンド幅であり、単位は .Sm off .Oo .Cm K | M .Oc Eo \&{ .Cm bit/s | Byte/s .Ec \&} .Sm on で測定します。 .Pp 値 0 (デフォルト) は無限のバンド幅を意味します。 単位は数値の直後に続けて書く必要があり、次のようにします。 .Pp .Dl "ipfw pipe 1 config bw 300Kbit/s queue 50KBytes" .Pp 数値の代りにデバイス名が指定された場合、 送信クロックは指定したデバイスから与えられます。 現在のところ、 .Xr tun 4 デバイスのみが .Xr ppp 8 と組み合わせて使用するために、この機能を提供しています。 .It Cm delay Ar ms-delay 遅延時間であり、ミリ秒単位で指定します。 値は、クロックティックの倍数 (典型的には 10ms ですが、 カーネルを "options HZ=1000" で動作させて精度を 1ms 以下にすると良い ことが経験的に知られています) に丸められます。 デフォルト値は 0 であり、遅延無しを意味します。 .It Cm queue Xo .Es \&{ \&} .En Ar slots | size Ns Cm Kbytes .Xc キューの大きさであり、スロット数か KBytes です。 デフォルト値は 50 スロットであり、 イーサネットデバイスの典型的なキューの大きさです。 低速リンクではキューの大きさを短くすべきことに注意してください。 さもないと、トラフィックは甚大なキュー遅延による影響を受けてしまいます。 例えば、 50 個の最大イーサネットパケット (1500 バイト) は 600Kbit であり、 30Kbit/s のパイプでは 20 秒のキューを意味します。 より大きな MTU のインタフェースからパケットを受け取るときには、 より悪い結果となります。 例えば、ループバックインタフェースにおいて 16KB パケットを受け取るときです。 .It Cm plr Ar packet-loss-rate パケット喪失率です。 引数 .Ar packet-loss-rate は 0 と 1 の間の浮動小数点数であり、 0 は喪失無しを意味し、1 は 100% の喪失を意味します。 喪失率は内部的には 31 ビットで表現されます。 .It Cm mask Ar mask-specifier .Xr dummynet 4 では、フローごとのキューを生成可能です。 フロー識別子は、パイプ設定において指定される IP アドレス、ポート、プロトコルタイプでマスクすることで構築されます。 マスク後に同じ識別子を持つパケットは、同じキューに落ちます。 使用可能なマスク指定子は、次を組み合わせたものです: .Cm dst-ip Ar mask , .Cm src-ip Ar mask , .Cm dst-port Ar mask , .Cm src-port Ar mask , .Cm proto Ar mask , .Cm all 。 最後の指定子は、 すべてのフィールドのすべてのビットが重要であることを意味しています。 .Ar pipe 設定中で使用される場合、 各フローにはパイプのレートに等しいレートが割り当てられます。 .Ar queue 設定中で使用される場合、 各フローにはキューの重みに等しい重みが割り当てられ、 同じパイプを構成するキューは重みに比例してバンド幅を共有します。 .It Cm buckets Ar hash-table-size 様々なキューを格納するために使用するハッシュ表の大きさを指定します。 デフォルト値は 64 であり、 .Xr sysctl 8 変数 .Em net.inet.ip.dummynet.hash_size で制御され、使用可能な範囲は 16 から 1024 です。 .It Cm pipe Ar pipe_nr キューを指定したパイプに接続します。 複数のキュー (通常は異なった重み) を同一のパイプに接続可能です。 この場合、このキュー集合に対する集約レートを、このパイプが指定します。 .It Cm weight Ar weight このキューに適合するフローに使用する重みを指定します。 重みは 1..100 の範囲であることが必要であり、デフォルトは 1 です。 .It Cm red | gred Xo .Sm off .Ar w_q No / .Ar min_th No / .Ar max_th No / .Ar max_p .Sm on .Xc RED キュー管理アルゴリズムを使用します。 .Ar w_q と .Ar max_p は 0 から 1 (0 を含みません) の範囲の浮動小数点数であり、 .Ar min_th と .Ar max_th はキュー管理用の閾値を指定する整数です (キューがバイト数で指定された場合は閾値はバイトで計算され、 そうでない場合はスロット数で計算されます)。 .Xr dummynet 4 は、gentle RED という変型 (gred) もサポートします。 RED の動作を制御するために、3 個の .Xr sysctl 8 変数を使用可能です: .Bl -tag -width indent .It Em net.inet.ip.dummynet.red_lookup_depth リンクがアイドルの時の、平均キューの計算精度を指定します (デフォルトは 256 であり、0 より大きい必要があります) .It Em net.inet.ip.dummynet.red_avg_pkt_size パケットサイズの平均の期待値を指定します (デフォルトは 512 であり、0 より大きい必要があります) .It Em net.inet.ip.dummynet.red_max_pkt_size パケットサイズの最大値の期待値を指定します。 キューの閾値がバイトの場合のみ使用されます (デフォルトは 1500 であり、0 より大きい必要があります) .El .El .Sh チェックリスト ルールを構成する際に考慮すべき重要な点を述べます。 .Bl -bullet .It かならず送信パケットと受信パケットの両方のパケットをフィルタリングします。 ほとんどのネットワークコネクションではパケットが双方向に流れることが必要です。 .It テストは細心の注意を払って行ないます。テストの際にはコンソールの近くにいる のがよいでしょう。 .It ループバックインタフェースのことを忘れてはなりません。 .El .Sh 長所 ファイアウォールが常に破棄するパケットが 1 種類あります。 フラグメントオフセットが 1 のフラグメントパケットです。 これはパケットとしては有効なものですが、利用目的はファイアウォールを かいくぐることしかありません。 .Pp ネットワーク越しにログインしている場合、 .Xr kld 4 バージョンの .Nm をロードすることはそれほど単純なことではありません。 以下のコマンドを奨めます。 .Bd -literal -offset indent kldload /modules/ipfw.ko && \e ipfw add 32000 allow ip from any to any .Ed .Pp これに引続き、同じような状況で .Bd -literal -offset indent ipfw flush .Ed .Pp とするのは良くありません。 .Pp システムセキュリティレベルが 3 以上に設定されている場合、 IP フィルタリストを変更できません (システムセキュリティレベルについては .Xr init 8 を参照してください)。 .Sh パケットの行き先変更 指定されたポートにバインドされた .Xr divert 4 ソケットは、 そのポートへ行き先変更されたパケットを、 全部受けとります。 宛先ポートにバインドされたソケットがない場合や、 カーネルがパケットの行き先変更ソケットをサポートするようには コンパイルされていない場合、 パケットは破棄されます。 .Sh SYSCTL 変数 ファイアウォールの動作を制御する .Xr sysctl 8 変数の集合があります。これらを、デフォルトの値と意味とともに 以下に示します。 .Bl -tag -width indent .It Em net.inet.ip.fw.debug : No 1 .Nm ipfw が生成するデバッグメッセージを制御します。 .It Em net.inet.ip.fw.one_pass : No 1 -セットされると、ファイアウォールの通過が 1 回だけ許されるように -なります。セットされない場合、pipe や行き先変更処理のあと、 +セットされると、 +.Xr dummynet 4 +パイプから出て来たパケットは、ふたたびファイアウォールを通さないようにします。 +セットされない場合、pipe 処理のあと、 パケットは再びファイアウォールに挿入され、次のルールから再開されます。 .It Em net.inet.ip.fw.verbose : No 1 冗長なメッセージを出力するようにします。 .It Em net.inet.ip.fw.enable : No 1 ファイアウォールを動作可能にします。 この変数を 0 に設定すると、ファイアウォールをコンパイルして 仕込んでいてもファイアウォールなしで動作します。 .It Em net.inet.ip.fw.verbose_limit : No 0 冗長なファイアウォールが生成するメッセージの数を制限します。 .It Em net.inet.ip.fw.dyn_buckets : No 256 .It Em net.inet.ip.fw.curr_dyn_buckets : No 256 動的ルールを保持するために使用するハッシュ表の設定サイズと 現在のサイズです。この値は 2 のべき乗にする必要があります。 ハッシュ表のサイズの変更は、表が空の場合のみ行なわれます。 したがって、実行中に表のサイズを変更するためには、 .Cm flush してルール集合を再ロードする必要があるでしょう。 .It Em net.inet.ip.fw.dyn_count : No 3 現在の動的ルールの数です .Pq 読み込み専用 。 .It Em net.inet.ip.fw.dyn_max : No 1000 動的ルールの最大値です。この限界にいきつくと、 古いルールが無効になるまでは、それ以上、動的ルールを 組み込むことはできません。 .It Em net.inet.ip.fw.dyn_ack_lifetime : No 300 .It Em net.inet.ip.fw.dyn_syn_lifetime : No 20 .It Em net.inet.ip.fw.dyn_fin_lifetime : No 20 .It Em net.inet.ip.fw.dyn_rst_lifetime : No 5 .It Em net.inet.ip.fw.dyn_short_lifetime : No 30 これらの値は、動的ルールの生存期間を秒単位でコントロールします。 最初の SYN 交換の際に、生存期間が short になり、 SYN を両方とも見た後に増やされ、最後の FIN 交換の間、 または RST が生じる際に再び減らされます。 .El .Sh 使用例 次のコマンドは .Em cracker.evil.org から .Em wolf.tambov.su の telnet ポートへ送られるすべての TCP パケットを拒否するルールを追加します。 .Pp .Dl "ipfw add deny tcp from cracker.evil.org to wolf.tambov.su telnet" .Pp 次のコマンドはクラッカーのネットワーク全体からホスト my への すべてのコネクションを拒否します。 .Pp .Dl "ipfw add deny ip from 123.45.67.0/24 to my.host.org" .Pp 最初に効率良く (動的ルールを用いずに) アクセスを制限する方法は、 次のルールを用いることです。 .Pp .Dl "ipfw add allow tcp from any to any established" .Dl "ipfw add allow tcp from net1 portlist1 to net2 portlist2 setup" .Dl "ipfw add allow tcp from net3 portlist3 to net3 portlist3 setup" .Dl "..." .Dl "ipfw add deny tcp from any to any" .Pp 最初のルールは通常の TCP パケットにすぐにマッチしますが、 最初の SYN パケットにはマッチしません。 指定した発信元/宛先の組の SYN パケットのみ、次の .Cm setup ルールにマッチします。これら以外の SYN パケットは、最後の .Cm deny ルールにより却下されます。 .Pp にせの TCP パケットを含む怒涛の攻撃 (flood attack) から サイトを保護するためには、次の動的ルールを用いた方が安全です。 .Pp .Dl "ipfw add check-state" .Dl "ipfw add deny tcp from any to any established" .Dl "ipfw add allow tcp from my-net to any setup keep-state" .Pp これらのルールにより、ファイアウォールは、自分たちのネットワークの 内側から到着する通常の SYN パケットで始まるコネクションに対して のみ動的ルールを組み込みます。動的ルールは、最初の .Cm check-state ルール、または、 .Cm keep-state ルールに遭遇した時点でチェックされます。 ルール集合のスキャン量を最小にするために、 .Cm check-state ルールは、ルール集合の最初のほうに置くことになるのが普通です。 実際の燃費は変動します。 .Pp .Em 注意 : ステートフルなルールは、怒涛の SYN 攻撃により極めて大量の動的ルールを 作ってしまい、サービス不能攻撃を受けることになる可能性があります。 ファイアウォールの動作をコントロールする .Xr sysctl 8 変数に従いファイアウォールが動作することによって、 このような攻撃の影響を部分的にでも制限することはできます。 .Pp 次はカウントされている情報とタイムスタンプ情報を見る .Cm list コマンドのよい例です。 .Pp .Dl ipfw -at l .Pp これはタイムスタンプを省略して次のように指定できます。 .Pp .Dl ipfw -a l .Pp 次のルールは 192.168.2.0/24 からのすべての受信パケットを、5000 番のポートに 行き先変更するものです。 .Pp .Dl ipfw divert 5000 ip from 192.168.2.0/24 to any in .Pp 次のルールは、 .Nm と .Xr dummynet 4 をシミュレーションなどで使う際の使用方法を示しています。 .Pp このルールは 5% の確率でランダムにパケットを落します。 .Pp .Dl "ipfw add prob 0.05 deny ip from any to any in" .Pp 同様の効果は dummynet パイプで実現可能です: .Pp .Dl "ipfw add pipe 10 ip from any to any" .Dl "ipfw pipe 10 config plr 0.05" .Pp 人工的にバンド幅を制限するためにパイプを使用可能です。 例えばルータとして動作するマシン上で、 192.168.2.0/24 上のローカルクライアントからのトラフィックを制限したい場合、 次のようにします: .Pp .Dl "ipfw add pipe 1 ip from 192.168.2.0/24 to any out" .Dl "ipfw pipe 1 config bw 300Kbit/s queue 50KBytes" .Pp .Cm out 指示子を使用しているので、ルールが 2 度使われないことに注意してください。 .Nm ルールは、実際には、 入力パケットと出力パケットの両方に適用されることを覚えておいてください。 .Pp バンド幅に制限がある双方向リンクをシミュレートする場合、 正しい方法は次の通りです: .Pp .Dl "ipfw add pipe 1 ip from any to any out" .Dl "ipfw add pipe 2 ip from any to any in" .Dl "ipfw pipe 1 config bw 64Kbit/s queue 10Kbytes" .Dl "ipfw pipe 2 config bw 64Kbit/s queue 10Kbytes" .Pp 上述の方法は非常に有用な場合があり、 例えばあなたの装飾的なウェブページが 低速リンクのみで接続されている在宅ユーザにどう見えているか 知りたい場合に有用です。 半二重メディア (例えば appletalk, Ethernet, IRDA) をシミュレートしたい 場合を除き、単一のパイプを両方の方向に使用すべきではありません。 両方のパイプが同じ設定である必要はないので、 非対称リンクをシミュレート可能です。 .Pp RED キュー管理アルゴリズムを使用してネットワーク性能を検証するには、 次のようにします: .Pp .Dl "ipfw add pipe 1 ip from any to any" .Dl "ipfw pipe 1 config bw 500Kbit/s queue 100 red 0.002/30/80/0.1" .Pp トラフィックシェイパの他の典型的な応用は、 いくばくかの通信遅延を導入することです。 これは、遠隔手続き呼び出しを多用するアプリケーションで、 バンド幅よりも接続のラウンドトリップ時間がしばしば制約条件となる アプリケーションに、大きな影響を与えます: .Pp .Dl "ipfw add pipe 1 ip from any to any out" .Dl "ipfw add pipe 2 ip from any to any in" .Dl "ipfw pipe 1 config delay 250ms bw 1Mbit/s" .Dl "ipfw pipe 2 config delay 250ms bw 1Mbit/s" .Pp フローごとのキューはさまざまな用途に有用です。 非常に単純な用途は、トラフィックの計数です: .Pp .Dl "ipfw add pipe 1 tcp from any to any" .Dl "ipfw add pipe 1 udp from any to any" .Dl "ipfw add pipe 1 ip from any to any" .Dl "ipfw pipe 1 config mask all" .Pp 上述のルールセットは、 すべてのトラフィックに対するキューを生成 (して統計情報を収集) します。 パイプには制限をつけていないので、統計情報を集める効果しかありません。 最後のルールだけでなく 3 個のルールが必要なことに注意してください。 .Nm が IP パケットのマッチを試みるときにポートを考慮しないため、 別々のポート上の接続は我々には同じものに見えます。 .Pp より洗練された例は、 ネットワークの出力トラフィックを、 ネットワーク毎に制約するのではなく、ホスト毎に制約するものです: .Pp .Dl "ipfw add pipe 1 ip from 192.168.2.0/24 to any out" .Dl "ipfw add pipe 2 ip from any to 192.168.2.0/24 in" .Dl "ipfw pipe 1 config mask src-ip 0x000000ff bw 200Kbit/s queue 20Kbytes" .Dl "ipfw pipe 2 config mask dst-ip 0x000000ff bw 200Kbit/s queue 20Kbytes" .Sh 関連項目 .Xr cpp 1 , .Xr m4 1 , .Xr bridge 4 , .Xr divert 4 , .Xr dummynet 4 , .Xr ip 4 , .Xr ipfirewall 4 , .Xr protocols 5 , .Xr services 5 , .Xr init 8 , .Xr kldload 8 , .Xr reboot 8 , .Xr sysctl 8 , .Xr syslogd 8 .Sh バグ .Pp この数年で文法が大きくなってしまい、 非常にすっきりしているとは言い難いです。 .Pp .Em WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!! .Pp このプログラムはコンピュータをかなり使いにくい状態にしてしまう 可能性があります。 はじめて使用する時はコンソール上で実行し、理解していない操作は .Em 絶対に実行しない ようにして下さい。 .Pp 連続したエントリの操作もしくは追加に際し、 サービス名やプロトコル名は使用できません。 .Pp 入ってきたパケットの断片 (フラグメント) が .Cm divert によって行き先を変更されるか .Cm tee されると、ソケットに配送される前にパケットは再構成されます。 .Pp .Cm tee ルールにマッチするパケットは、 即時に受理されるべきではなく、ルールリストを更に通るべきです。 これは、以降のバージョンで修正されるかもしれません。 .Sh 作者 .An Ugen J. S. Antsilevich , .An Poul-Henning Kamp , .An Alex Nash , .An Archie Cobbs , .An Luigi Rizzo . .Pp API は Daniel Boulet が BSDI 用に記述したコードに基づいています。 .Pp .Xr dummynet 4 トラフィックシェイパは Akamba Corp がサポートしました。 .Sh 歴史 .Nm は、 .Fx 2.0 で最初に現れました。 .Xr dummynet 4 は .Fx 2.2.8 から導入されました。 ステートフル拡張は、 .Fx 4.0 から導入されました。 diff --git a/ja_JP.eucJP/man/man8/syslogd.8 b/ja_JP.eucJP/man/man8/syslogd.8 index 8de04bfcb8..51032a4084 100644 --- a/ja_JP.eucJP/man/man8/syslogd.8 +++ b/ja_JP.eucJP/man/man8/syslogd.8 @@ -1,246 +1,246 @@ .\" Copyright (c) 1983, 1986, 1991, 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. .\" .\" @(#)syslogd.8 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.sbin/syslogd/syslogd.8,v 1.22.2.1 2000/08/07 01:11:31 ps Exp % +.\" %FreeBSD: src/usr.sbin/syslogd/syslogd.8,v 1.22.2.2 2000/09/23 22:39:54 alfred Exp % .\" .\" jpman %Id: syslogd.8,v 1.3 1997/05/19 17:08:30 horikawa Stab % .\" .Dd October 12, 1995 .Dt SYSLOGD 8 .Os BSD 4.2 .Sh 名称 .Nm syslogd .Nd システムメッセージの記録をとる .Sh 書式 .Nm syslogd -.Op Fl dsuv +.Op Fl dnsuv .Op Fl a Ar allowed_peer .Op Fl f Ar config_file .Op Fl m Ar mark_interval .Op Fl p Ar log_socket .Op Fl l Ar path .Sh 解説 .Nm デーモンは設定ファイルに指定された通りに、システムコンソール、 ログファイル、他のマシンやユーザへのメッセージを読み込み、記録します。 .Pp オプションには以下のものがあります。 .Bl -tag -width indent .It Fl a Ar allowed_peer .Ar allowed_peer がこの .Nm に UDP データグラムを使用してログすることを許します。複数の .Fl a オプションを指定可能です。 .Pp .Ar allowed_peer は以下のいずれかです: .Bl -tag -width "ipaddr/masklen[:service]XX" .It Ar ipaddr/masklen Ns Op Ar :service .Ar ipaddr (通常のドット表記の 4 つ組) からのデータグラムを受け付けます。 アドレス比較の際、 .Ar masklen ビットを考慮します。 .Ar service が指定された場合、パケット送出元が属すべき UDP service の名前もしくは番号となります ( .Xr services 5 参照)。 .Ar service に .Ql \&* を指定すると、全ての UDP ポートから送信されたパケットを受け付けます。 デフォルトの .Ar service は .Ql syslog です。 .Ar masklen を指定しないと、 .Ar ipaddr がクラス A もしくは B のアドレス範囲に属す場合にはそれぞれ 歴史的なクラス A もしくは B のネットマスクが使用され、 そうでない場合には 24 が使用されます。 .It Ar domainname Ns Op Ar :service 送信アドレスのアドレス逆引きにおいて .Ar domainname が得られたデータグラムを受け付けます。 .Ar service の意味は前述の通りです。 .It Ar *domainname Ns Op Ar :service 上述の通りですが、送信ホスト名が .Ar domainname で .Em 終る 全てのホストから受け付けます。 .El .It Fl d .Nm をデバッグモードで実行します。これは恐らく、 .Nm の開発者にのみ役立ちます。 .It Fl f 代りの設定ファイルのパス名を指定します。 デフォルトは .Pa /etc/syslog.conf です。 .It Fl m .Dq mark されたメッセージの間隔を分単位で指定します。 デフォルトは 20 分です。 .It Fl n すべての要求に対し、DNS への問い合わせを抑止します。 .It Fl p 代りに使用するログ用ソケットのパス名を指定します。 デフォルトは .Pa /var/run/log です。 .It Fl l .Nm が追加のログ用ソケットを置く場所を指定します。 19 個まで追加のログ用ソケットを指定可能です。 主な用法は、 様々に chroot したファイル空間において追加のログ用ソケットを .Pa /var/run/log に置くというものです。 .It Fl s セキュアモードで操作します。リモートマシンからのログメッセージをログしません。 2 度指定すると、ネットワークソケットを全くオープンせず、 またリモートマシンへのログ動作も無効にします。 .It Fl u ただ 1 つの優先度のログのみ行います。 指定した優先度のメッセージのみログします。 このオプションを指定しないと、指定した優先度以上のメッセージがログされます。 このオプションにより、デフォルトの比較を .Dq => から .Dq = に変更します。 .It Fl v 冗長なログを行います。1 度指定すると、ローカルに書き込まれたメッセージと共に、 ファシリティと優先度が数値でログされます。 複数回指定すると、ローカルに書き込まれたメッセージと共に、 ファシリティと優先度が名前でログされます。 .El .Pp .Nm デーモンは 起動時と hangup シグナルを受けとった時はいつでも設定ファイルを 読み込みます。 設定ファイルのフォーマットに関する情報は、 .Xr syslog.conf 5 参照して下さい。 .Pp .Nm デーモンは .Tn UNIX ドメインソケット .Pa /var/run/log、 .Pa /etc/services で指定されるインターネットドメインソケット および特殊デバイス .Pa /dev/klog (カーネルメッセージを読むため) からメッセージを読み込みます。 .Pp .Nm デーモンはファイル .Pa /var/run/syslog.pid を作成し、プロセス ID を記録します。 これは .Nm を kill や、設定ファイルを読み込ませるために使えます。 .Pp .Nm に送られるメッセージは単一の行で構成されます。このメッセージは先頭に 優先順位コードを含んでいます。このコードは .Sq Aq 5 のように括弧でくくられた 10 進数から構成されており、インクルードファイル .Aq Pa sys/syslog.h で定義されている優先順位に対応します。 .Sh 関連ファイル .Bl -tag -width /var/run/syslog.pid -compact .It Pa /etc/syslog.conf コンフィギュレーションファイル .It Pa /var/run/syslog.pid 動作中の .Nm のプロセス ID .It Pa /var/run/log .Tn UNIX ドメインデータグラムのログ用ソケットの名前 .It Pa /dev/klog カーネルログ用のデバイス .El .Sh 関連項目 .Xr logger 1 , .Xr syslog 3 , .Xr services 5 , .Xr syslog.conf 5 .Sh 歴史 .Nm コマンドは .Bx 4.3 から登場しました。 .Pp .Fl a , .Fl s , .Fl u , .Fl v のオプションは .Fx 2.2 における拡張です。 .Sh バグ UDP パケットで受けとったメッセージを記録する能力は認証されていない ディスクを溢れさせるリモートサービスと等価であり、恐らくデフォルトで無効に されるべきです。ある種の .Nm 間の認証メカニズムが用意されるべきでしょう。 最悪の無駄遣いを避けるために、 .Fl a オプションの使用を強く勧めます。 .Pp .Fl a のマッチングアルゴリズムは非常に効率的には見えません; ドメイン名比較より、数値による IP アドレスを使用する方が高速です。 許可されたピアのリストの検索は線型に行なわれるため、 多くのメッセージを受け付けると予測されるピアグループは .Fl a リストの最初の方に置くべきです。 .Pp ログ用ソケットは読み込み専用のルートファイルシステムの扱いを容易にする ために .Pa /dev から移されました。このことは古いバイナリを混乱させるかもしれないので、 過渡期の間はシンボリックリンクが役に立つでしょう。 diff --git a/ja_JP.eucJP/man/man8/tftpd.8 b/ja_JP.eucJP/man/man8/tftpd.8 index 6c48e37ebb..568886e957 100644 --- a/ja_JP.eucJP/man/man8/tftpd.8 +++ b/ja_JP.eucJP/man/man8/tftpd.8 @@ -1,138 +1,169 @@ .\" Copyright (c) 1983, 1991, 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. .\" .\" @(#)tftpd.8 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/libexec/tftpd/tftpd.8,v 1.6 1999/08/28 23:08:19 mpp Exp % +.\" %FreeBSD: src/libexec/tftpd/tftpd.8,v 1.6.2.1 2000/09/23 17:14:19 jkh Exp % .\" jpman %Id: tftpd.8,v 1.3 1997/07/22 17:00:36 horikawa Stab % .\" -.Dd June 4, 1993 +.Dd September 14, 2000 .Dt TFTPD 8 .Os BSD 4.2 .Sh 名称 .Nm tftpd .Nd インターネット TFTP (Trivial File Transfer Protocol) サーバ .Sh 書式 .Nm /usr/libexec/tftpd -.Op Fl l -.Op Fl n +.Op Fl ln .Op Fl s Ar directory +.Op Fl u Ar user .Op Ar directory ... .Sh 解説 .Nm -は、インターネット TFTP プロトコル ( -.Tn RFC 783 -) を提供するサーバです。 +は、インターネット TFTP プロトコル +.Pq Tn RFC 1350 +を提供するサーバです。 .Tn TFTP サーバは、 .Ql tftp サービス定義で指示されたポートを操作します。 .Xr services 5 を参照してください。 このサーバは普通 .Xr inetd 8 によって起動されます。 .Pp .Xr tftp 1 の利用には、リモートシステムのアカウントやパスワードを必要としません。 認証情報がありませんので、 .Nm はパブリックに読み込み可能なファイルだけしかアクセスを許可しません。 文字列 ``/\|\fB.\|.\fP\|/'' を含んだファイル、もしくは ``\|\fB.\|.\fP\|/'' から始まるファイルのアクセスは許可されません。 ファイルは、既に存在してパブリックに書き込み可能な場合だけ 書き込まれます。 .Dq パブリック (public) という概念は、ネットワークを通して到達可能な全てのホストの全てのユーザ を含むように拡張されている点に注意してください。 これは全てのシステムにおいて適当ではないかも知れないし、 そのことは tftp サービスを有効にする前に考慮すべきです。 サーバは、もっとも可能な限り小さな権限を持ったユーザ ID を 持たねばなりません。 .Pp ファイルへのアクセス制限は、 .Nm 起動時のディレクトリリストを、 .Pa /etc/inetd.conf にサーバプログラムへの引数として 20 までのパス名を指定することにより可能です。 この場合、アクセスは、ファイル名がそこで与えられたディレクトリを 頭に付けたものに制限されます。 与えられたディレクトリは、相対ファイル指定要求に対しての探索パスと しても利用されます。 .Pp -chroot オプションは、 -.Nm -のアクセスを chroot されたファイルシステム -だけに制限することで、セキュリティを追加します。 -これは、ブートサーバとして .Fl s -を提供している OS から実行する時に便利です。 -chroot の実行は root に制限されていますので、 +オプションは、 +.Nm tftpd +のルートディレクトリを変更し、指定した +.Ar directory +外へのアクセスを禁止することにより、さらなる安全性を提供します。 +.Xr chroot 2 +はスーパユーザの権限が必要ですから、 .Nm -は root で -実行しなければなりません。しかしながら、 chroot した場合、 +は root で実行することが必要です。 +しかしながら +.Fn chroot +を実行した後では、 .Nm -はユーザ id を nobody に設定します。 +は自己のユーザ ID を、指定された +.Ar user +か、 +.Fl u +オプションが指定されない場合には +.Dq nobody +に設定します。 .Pp 以下のようなオプションがあります。 .Bl -tag -width Ds .It Fl l 全ての要求を、 .Xr syslog 3 -のファシリティ LOG_FTP を使って、ログ保存します。 +のファシリティ +.Dv LOG_FTP +を使って、ログ保存します。 注: syslog 設定ファイル .Xr syslog.conf 5 -においても、LOG_FTP メッセージのログ機能を有効とする必要があります。 +においても、 +.Dv LOG_FTP +メッセージのログ機能を有効とする必要があります。 .It Fl n 存在しない相対ファイル名に対する要求の否定応答を抑止します。 .It Fl s Ar directory -コマンドを受け取る前に -.Nm -を .Pa directory -へ chroot させます。更に、ユーザ id を nobody にします。 -.Pp -.Fl s -を使用しない場合、ユーザ id の変更は試みられません。 -.Fl s -を使用しない場合は、 +へと、 +.Nm +のルートディレクトリを変更させます。 +ルートディレクトリの変更後、コマンドを受け付ける前に、 .Nm -を root で実行してはなりません。 +は非特権ユーザの権限へ移行します。 +.It Fl u Ar user +.Fl s +オプション使用時に、 +権限を +.Ar user +(デフォルトでは +.Dq nobody +です) へ切り替えます。 +user は、名前で指定することが必要であり、数値の UID では駄目です。 .El .Sh 関連項目 .Xr tftp 1 , +.Xr chroot 2 , .Xr inetd 8 , .Xr syslogd 8 +.Rs +.%A K. R. Sollins +.%T The TFTP Protocol (Revision 2) +.%D July 1992 +.%O RFC 1350, STD 33 +.Re .Sh 歴史 .Nm コマンドは、 .Bx 4.2 から導入されました。 +.Fl s +オプションは +.Fx 2.2 +から導入され、 +.Fl u +オプションは +.Fx 4.2 +から導入されました。