diff --git a/ja/man/man1/awk.1 b/ja/man/man1/awk.1 index 704dd7b933..58b1389537 100644 --- a/ja/man/man1/awk.1 +++ b/ja/man/man1/awk.1 @@ -1,1938 +1,1938 @@ .\" jpman %Id: awk.1,v 1.3 1997/04/17 13:23:21 horikawa Stab % .ds PX \s-1POSIX\s+1 .ds UX \s-1UNIX\s+1 .ds AN \s-1ANSI\s+1 .TH AWK 1 "Apr 18 1994" "Free Software Foundation" "Utility Commands" .SH 名称 awk \- GNU awk パターン検索・処理言語 .SH 書式 .B awk [ POSIX or GNU style options ] .B \-f .I program-file [ .B \-\^\- ] file .\^.\^. .br .B awk [ POSIX or GNU style options ] [ .B \-\^\- ] .I program-text file .\^.\^. .SH 解説 .I gawk は GNU プロジェクトが実装した プログラミング言語 AWK の処理系です。 本処理系は \*(PX 1003.2 コマンド言語とユーティリティ規約に定められた 言語の定義に適合しています。 本バージョンはまた、Aho、Kernighan、Weinberger の著書『 .I The AWK Programming Language 』の記述にもとづいており、 System V Release 4 \*(UX の .I awk の付加機能も含んでいます。 .I gawk はまた、GNU 独自の拡張も提供します。 .PP コマンドラインは、 .I awk へのオプション、(もし .B \-f または .B \-\^\-file オプションにより指定されていなければ)AWK のプログラムテキスト、そして 残りの引数列からなります。 この残りの引数列は、定義済み AWK 変数 .BR ARGC , .B ARGV を用いることで参照できます。 .SH オプション .PP .I gawk へのオプションは、伝統的な \*(PX 形式の一文字オプションと、GNU 形式の ロングオプションがあります。 \*(PX 形式のオプションは単一の ``\-'' で始まり、一方 GNU 形式のもの は ``\-\^\-'' で始まります。GNU 形式のロングオプションは GNU の独自仕様と \*(PX の必須仕様の両方について用意されています。 他の実装による AWK では、伝統的な一文字オプションのみを受け付けるものが 多いようです。 .PP \*(PX 標準に従い、 .I awk 独自仕様のオプションは .B \-W オプションへの引数で与えます。 複数の .B \-W オプションを指定することもできますし、 複数の引数をコンマで区切って、もしくは引用符で括り空白で区切ることで 一度にまとめて .B \-W オプションに与えることもできます。 .B \-W オプションへの引数では、大文字小文字の区別は行なわれません。後述の ように、各 .B \-W オプションには、それに対応する GNU 形式のロングオプション が存在します。GNU 形式のロングオプションへの引数は、空白を入れずに .B = でつないで指定するか、その次のコマンドライン引数として渡すことができます。 .PP .I gawk は以下のオプションを受け付けます。 .TP .PD 0 .BI \-F " fs" .TP .PD .BI \-\^\-field-separator= fs 入力フィールドセパレータ(変数 .B FS の値)を .I fs とします。 .TP .PD 0 \fB\-v\fI var\fB\^=\^\fIval\fR .TP .PD \fB\-\^\-assign=\fIvar\fB\^=\^\fIval\fR プログラムを実行する前に、変数 .I var に値 .I val を設定します。このようにして設定 した変数は、 AWK プログラムの .B BEGIN ブロック内でも参照できます。 .TP .PD 0 .BI \-f " program-file" .TP .PD .BI \-\^\-file= program-file .B awk への第一引数を用いるかわりに、AWK プログラムをファイル .I program-file から読み込みます。 .B \-f (または .B \-\^\-file ) オプションは複数回使 用することができます。 .TP .PD 0 .BI \-mf= NNN .TP .BI \-mr= NNN さまざまなメモリの制限値を .I NNN に設定します。フラグ .B f は最大フィールド数、フラグ .B r は最大レコードサイズを設定します。この2つのフラグと .B \-m オプションは、AT&T ベル研究所バージョンの \*(UX .I awk に由来しています。しかし、 .I awk にはこのような制限はありませんので、 .I awk では本オプションは無視されます。 .TP \w'\fB\-\^\-copyright\fR'u+1n .PD 0 .B "\-W compat" .TP .PD .B \-\^\-compat .I 互換 モードで動作します。互換モードでは、 .I awk は \*(UX .I awk と等価な動作を行い、GNU 独自拡張は解釈できません。 詳しくは後述の .B "GNU 拡張" を参照してください。 .TP .PD 0 .B "\-W copyleft" .TP .PD 0 .B "\-W copyright" .TP .PD 0 .B \-\^\-copyleft .TP .PD .B \-\^\-copyright GNU の著作権表示の短いバージョンを標準エラー出力へ書き出します。 .TP .PD 0 .B "\-W help" .TP .PD 0 .B "\-W usage" .TP .PD 0 .B \-\^\-help .TP .PD .B \-\^\-usage 短めのオプション一覧を標準エラー出力へ書き出します。GNU コーディング規約に 従い、本オプションを指定すると .I awk はただちに終了し、成功を意味する終了ステータスを返します。 .TP .PD 0 .B "\-W lint" .TP .PD 0 .B \-\^\-lint 他の AWK での処理が疑わしい、あるいは他の AWK との互換性がない構造が ある場合に警告を行います。 .ig .\" This option is left undocumented, on purpose. .TP .PD 0 .B "\-W nostalgia" .TP .PD .B \-\^\-nostalgia 長い間 .I awk を使ってきたユーザのために郷愁の瞬間を提供します。 .. .TP .PD 0 .B "\-W posix" .TP .PD .B \-\^\-posix .I 互換 モードをオンにし、更に以下の制約が課せられます。 .RS .TP \w'\(bu'u+1n \(bu .B \ex エスケープシーケンスを解釈しません。 .TP \(bu キーワード .B function に対応する別名 .B func を解釈しません。 .TP \(bu 演算子 .B ^ や .B ^= のかわりに .B ** や .B **= を用いることができません。 .RE .TP .PD 0 .BI "\-W source=" program-text .TP .PD .BI \-\^\-source= program-text .I program-text を AWK プログラムとして用います。本オプションにより、ライブラリ化された関数( .B \-f または .B \-\^\-file オプションを用いて読み込む)とコマンドラインから入力されたプログラムを 簡単に合成することができます。 これは、主にシェルスクリプトで用いられる中規模から大規模な AWK プログラム のために用意されました。 .sp .5 .B "\-W source=" 形式においては、そのコマンドライン引数の残りの部分を .I program-text として解釈します。 よって、同じ引数内でこれ以上 .B \-W のオプション引数を続けることはできません。 .TP .PD 0 .B "\-W version" .TP .PD .B \-\^\-version 実行された .I awk プログラムのバージョン情報を標準エラー出力へ書き出します。これは主に、 あなたが使用している .I awk プログラムが Free Software Foundation が配布してい るプログラムのうち、最新のものであるかどうかを知る場合に便利です。本オ プションを指定すると、GNU コーディング規約に従い、 .I awk はただちに終了し、成功を意味する終了ス テータスを返します。 .TP .B \-\^\- オプションの終了を意味します。AWK に ``\-'' から始まるオプションではない 引数を与える場合に便利です。 これは主に、他の \*(PX プログラムの多くが引数に対して行 う解釈と一貫性を保つためにあります。 .PP 互換モードでは、他のオプションは不正であるとされるか、無視されます。通 常の実行において、プログラムテキストがコマンドラインに指定されていれば、 不明なオプションは、AWK プログラムに .B ARGV 配列を通して渡されます。これ は、AWK プログラムを ``#!'' 機構を用いて実行する場合に特に便利です。 .SH AWK プログラムの実行 .PP AWK プログラムは、パターンとアクションの組の列と、(もし必要なら)関数定義か らなります。 .RS .PP \fIpattern\fB { \fIaction statements\fB }\fR .br \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements\fB }\fR .RE .PP .I gawk はまず、 .I program-file (複数可)が指定されていればそれから、 .B "\-W source=" の引数から、あるいは、最初のオプションではない引数から プログラムを読み込みます。 .B \-f と .B "\-W source=" オプションは、コマンドラインで複数回指定できます。 .I gawk は、すべての .I program-file とコマンドラインで指定したプログラムを結 合して使用します。新しく作った AWK プログラム一つ一つに AWK 関数のライブラリを埋め込む必要が無いので、この機能はライブラリの構築に 便利です。 また、ライブラリ関数とコマンドラインで指定したプログラムとを混合して使 うことも可能にしています。 .PP 環境変数 .B AWKPATH により、 .B \-f オプションで指定されたファイルを検索するパスを指定できます。 .B AWKPATH が設定されていない場合のデフォルトパスは \fB".:/usr/lib/awk:/usr/local/lib/awk"\fR です。 .B \-f オプションで指定したファイル名が ``/'' を含んでいる場合は、 パス検索は行われません。 .PP .I awk は、 AWK プログラムを以下の順序で実行します。 .RS .TP \w'4.'u+1n 1. .B \-v オプションで指定された変数への代入をすべて行う .TP 2. プログラムを内部形式にコンパイルする .TP 3. (もし存在すれば) .B BEGIN ブロック(複数存在可)を実行する .TP 4. 配列 .B ARGV で指定されたファイルを順に読み、処理を行う(コマンドラインでファイル名が 指定されていなければ、標準入力に対して処理を行う)。 .RE .PP コマンドラインで指定されたファイル名が .IB var = val という形式ならば、それ は変数への代入であると解釈されます。変数 .I var は値 .I val に設定されます (これは、すべての .B BEGIN ブロックを実行したあとに行われます)。コマンドライン での変数の代入は、AWK が入力をフィールドやレコードに分割するためのセパレータ を実行時に変更するのに便利です。また、1つのデータファイルに 対し数回処理を行う必要がある場合、状態をコントロールするのにも便利です。 .PP 配列 .B ARGV の要素に空(\fB""\fR)がある場合、 .I awk はその要素を無視します。 .PP .I awk は、入力された各行に対してマッチする .I パターン が AWK プログラム内にあるかどうかを 検索します。その行にマッチしたパターンすべてについて、それぞれ対応する .I アクション が実行されます。 パターンは、プログラムテキストに出現した順序で検索されます。 .PP 入力がつきると、 .I awk は(もしあれば) .B END ブロック(複数存在可)を実行します。 .SH 変数とフィールド AWK における変数は動的、すなわち、最初に使用されたときに生成されます。 変数の値は、浮動小数か、文字列か、あるいは両方です。変数の用い られ方により変化します。AWK ではまた、1次元配列を利用することができます。 多次元配列 も、擬似的にではありますが、利用可能です。プログラム実行開始時に、 いくつかの定義済み変数が設定されます。 .SS フィールド .PP 入力ファイルから1行を読み込むと、 .I awk はその行を .I フィールド に分割しま す。分割する際には、変数 .B FS の値がフィールドセパレータとして参照されます。 .B FS の値が1文字なら、その 文字を境にフィールドが分割されます。1文字でないなら、 .B FS は正規表現である と解釈されます。特殊な場合として .B FS が単一の空白のときには、フィールドは 連続した空白とタブにより分割されます。変数 .B IGNORECASE (下記参照)の 値は、 .B FS が正規表現の場合、フィールド分割にも影響を与えることに注意してください。 .PP 変数 .B FIELDWIDTHS の値が空白で区切られた数字の列である場合、各フィールドは 固定長であると解釈され、 .I awk は指定された幅ごとにフィールドの 分割を行います。この場合、 .B FS の値は無視されます。 .B FS に新たに値を設定 することにより、この .B FIELDWIDTHS の効果を打ち消し、標準の動作に戻すことができます。 .PP 各フィールドの値は、左から .BR $1 , .B $2 等という名前で参照できます。 .B $0 は 行全体です。フィールドに値を代入することもできます。フィールドは定数だ けでなく、変数によって参照することもできます。以下の例では、入力行の 5 番目のフィールドの値を出力します。 .RS .PP .ft B n = 5 .br print $n .ft R .RE .PP 変数 NF は、自動的にその行のフィールドの数に設定されます。 .PP 存在しないフィールド(すなわち、 .B $NF より右のフィールド)を参照した結果は 空文字列になります。しかしながら、存在しないフィールドへの代入(たとえ ば、 .BR $(NF+2) = 5 )は .B NF の値を増加させ、間のフィールドには空文字が設定されます。 さらに .B $0 の値は、フィールドの値を変数 .B OFS の値で結合したものに再設定されます。 負のフィールド番号への参照は致命的エラーとなります。 .SS 組み込み変数 .PP -AWK の組込み変数は以下のとおりです。 +AWK の組み込み変数は以下のとおりです。 .PP .TP \w'\fBFIELDWIDTHS\fR'u+1n .B ARGC コマンドライン引数の個数( .I awk へのオプションと、プログラム指定は含みま せん)。 .TP .B ARGIND 現在処理中のファイル名が格納されている配列 .B ARGV のインデックス。 .TP .B ARGV コマンドライン引数の配列。配列は、 0 から .B ARGC \- 1 までのインデックスを 持ちます。 .B ARGV の内容を変更することで、入力に用いるファイル名を変 更することができます。 .TP .B CONVFMT 数値の変換フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B ENVIRON 現在の環境変数の値からなる配列。配列は、環境変数名によりインデックスされ 、各要素の値はその環境変数の値です(たとえば、環境変数 .B HOME は \fBENVIRON["HOME"]\fP で参照できます)。本配列に 代入を行っても、 .I awk からリダイレクトや .B system() 関数により実行される プログラムの環境には影響を与えません(これは、将来の .I awk では変更される可能性があります)。 .\" but don't hold your breath... .TP .B ERRNO .B getline のリダイレクト、 .B getline による読み込み、 .B close() 関数の実行時のいずれかにシステムエラーが発生した場合、変数 .B ERRNO にはエラーの内容を示した文字列が設定されます。 .TP .B FIELDWIDTHS 空白で区切られたフィールド長のリスト。もしこの値が設定されていれば、 .I awk は .B FS の値を用いてフィールド分割するかわりに、固定長のフィールド分割を行 います。固定長のフィールド分割機能はまだ実験的なもので、 .I awk が改良されるに従 って意味が変化する可能性があります。 .TP .B FILENAME 現在の入力ファイル名。もし、コマンドラインで入力ファイルが指定されてい なければ、 .B FILENAME の値は ``\-'' です。しかしながら、 .B BEGIN ブロック内では .B FILENAME は未定義です。 .TP .B FNR 現在の入力ファイルにおける入力レコード番号。 .TP .B FS 入力フィールドセパレータ。デフォルトでは単一の空白です。 .TP .B IGNORECASE すべての正規表現において大文字小文字の区別を制御します。もし、 .B IGNORECASE が 0 でない値に設定されていれば、ルールのパターンマッチ、 .B FS によるフィールド分割、 .B ~ と .B !~ による正規表現マッチ、定義済み関数 .BR gsub() , .BR index() , .BR match() , .BR split() , .B sub() において大文字と小文字の違いは無視されます。このため、 .B IGNORECASE が 0 以外の 値なら、 .B /aB/ は \fB"ab"\fP、\fB"aB"\fP、\fB"Ab"\fP、\fB"AB"\fP のいずれにもマッチすることになります。 他のAWK 変数と同様に .B IGNORECASE のデフォルト値は 0 なので、通常は 正規表現において大文字と小文字は区別されます。 .TP .B NF 現在の入力レコードのフィールド数。 .TP .B NR 現在までに読み込んだ入力レコード数の合計。 .TP .B OFMT 数字の出力フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B OFS 出力フィールドセパレータ。デフォルトは空白です。 .TP .B ORS 出力レコードセパレータ。デフォルトは改行です。 .TP .B RS 入力レコードセパレータ。デフォルトは改行です。 .B RS は例外的な変数で、 値の最初の1文字のみがレコード分割に用いられます(これは、将来リリースされる .I awk では変更されているかもしれません)。もし .B RS が空文字列に設定されていたなら、 レコードは空行によって分割されます。この場合、 .B FS の値が何であろうとも、改行はつねにフィールドセパレータとしての役割を 果たします。 .TP .B RSTART .B match() によりマッチした最初の文字の位置。0 はマッチしなかったことを示します。 .TP .B RLENGTH .B match() によりマッチした文字列の長さ。\-1 はマッチしなかったことを示します。 .TP .B SUBSEP 多次元配列を実現する際に用いられる、配列のインデックスを結合する文字。 デフォルト値は \fB"\e034"\fR です。 .SS 配列 .PP 配列は、ブラケット .RB ( [ と .BR ] ) の間の式によってインデックスを指定します。もし式が式 のリスト(式, 式, ...) なら、式の値を変数 .B SUBSEP の値を区切りとして 結合した文字列をインデックスとして用います。これにより、多次元配列を シミュレートしています。たとえば、 .PP .RS .ft B i = "A" ;\^ j = "B" ;\^ k = "C" .br x[i, j, k] = "hello, world\en" .ft R .RE .PP は、文字列 \fB"hello, world\en"\fR を、文字列 \fB"A\e034B\e034C"\fR で インデックスした配列 x の要素に代入しています。 AWK の配列はすべて、文字列によりインデックスを行う連想配列です。 .PP 特殊な演算子 .B in を .B if または .B while ステートメントで用いることによって、あるインデックス値に おける配列の値が定義されているかを調べることができます。 .PP .RS .ft B .nf if (val in array) print array[val] .fi .ft .RE .PP もし、配列が多次元インデックスを持つなら、 .B "(i, j) in array" を用います。 .PP .B in はまた、 .B for ループ中で、配列のすべてのインデックス値について繰り返すために 用いることができます。以下の方法で、配列のすべての要素の値を表示する ことができます。 .PP .RS .ft B .nf for (i in array) print array[i] .fi .ft .RE .PP 配列の要素は、 .B delete ステートメントを用いて削除することができます。 .B delete ステートメントはまた、 配列全体を削除するのにも使えます。 .SS 変数の型と変換 .PP 変数とフィールドは、(浮動小数の)数値または文字列、あるいは両方として 扱われます。 変数の値がどのように解釈されるかは、変数の使われ方によって変化します。 数式中で用いられれば変数は数値として解釈され、文字列として用いられれ ば文字列として解釈されます。 .PP 変数の値を強制的に数値であると解釈させたい場合は、変数に 0 を加えます (var + 0)。文字列と解釈させたい場合は空文字列を結合します(var "")。 .PP 文字列を数値に変換する必要がある場合、変換は .IR atof (3) によって行われます。 数値を文字列に変換する場合は、変数 .B CONVFMT の値をフォーマット文字列として用いて、 .IR sprintf (3) により行われます。AWK ではすべての数値は浮動小数ですが、整数値はつねに整数 として変換が行われます。 .PP よって、以下の場合、 .PP .RS .ft B .nf CONVFMT = "%2.2f" a = 12 b = a "" .fi .ft R .RE .PP 変数 .B b は文字列値 \fB"12"\fR となり、"12.00" とはなりません。 .PP .I gawk は、以下のようにして比較を行います: 2つの変数が数値なら数値として比 較します。もし片方が数値で片方が`数値'文字列なら、数値として比較されます。 片方が数値でない文字列なら、数値のほうが文字列に変換され、文字列として 比較されます。両方とも文字列なら、文字列として比較されます。\*(PX 標準に従う なら、両方とも数値文字列の場合は数値として比較しますが、これは明ら かに間違いです。 .I awk はそのような動作をしません。 .PP 初期化されていない変数は、数値としては 0 を、文字列としては空文字列を持ちます。 .SH パターンとアクション awk は行指向の言語です。まずパターン、次にアクションが続きます。アクショ ンは .B { と .B } で囲みます。パターンまたはアクションは省略することもできます。 もちろん、両方とも 省略してしまっては意味がありません。 パターンがない場合、アクションはすべての入力行に 対して適用されます。省略されたアクションは以下と等価です。 .RS .PP .B "{ print }" .RE .PP これは行全体を出力します。 .PP コメントは ``#'' で始まり、行末まで続きます。空行は、複数ステートメントの 間をあけるのに使うことができます。 通常、ステートメントは改行で終わります。ただし、 以下の記号で行が終わる場合にはこの限りではありません: ``,'', ``{'', ``?'', ``:'', ``&&'', ``||''。 .B do または .B else で終わる行は、ステートメントが自動的に以降 の行へ継続されます。また、改行の直前に ``\e'' を置くことで、 行を継続することができます。この場合、その改行は無視されます。 .PP ``;'' で区切ることにより、1行に複数のステートメントを記述することができ ます。アクション部におけるステートメントだけではなく、 パターンとアクションの対自体も ``;'' で区切って複数置くことができます。 .SS パターン AWK のパターンは、以下のうちのいずれかです。 .PP .RS .nf .B BEGIN .B END .BI / "regular expression" / .I "relational expression" .IB pattern " && " pattern .IB pattern " || " pattern .IB pattern " ? " pattern " : " pattern .BI ( pattern ) .BI ! " pattern" .IB pattern1 ", " pattern2 .fi .RE .PP .B BEGIN と .B END は特殊なパターンであり、入力と比較されることはありません。すべての .B BEGIN パターンに対応したアクション部は結合されます。結合されたアクションは すべての入力ファイルの読み込みに先立って実行されます。同様にすべての .B END ブロックは結合され、すべての入力ファイルの処理後(あるいは、exit ステートメント が実行されたとき)に実行されます。 .B BEGIN と .B END はパターン式内で他のパターンと混ぜて使うことはできません。また、 .B BEGIN と .B END パターンはアクション部を省略することができません。 .PP .BI / "regular expression" / パターンでは、正規表現にマッチした入力行に対してアクション が実行されます。正規表現は .IR egrep (1) と同じものが使えます。あとに要約を示します。 .PP 関係式では、後述のアクションについての節で示す演算子を用いることが できます。 これらは概して、特定のフィールドが正規表現にマッチするかどうかを 調べるために用いられます ($2 ~ /foo/ 等)。 .PP 演算子 .BR && , .BR || , .B ! は、それぞれ C 言語での論理AND、論理OR、論理NOT と等価です。 C 言語と同様に、評価値が確定した時点で以降の評価を打ち切ります。 これらは複数のパターン式を結合するために使用されます。 他のプログラミング言語と同様、括弧によって評価順序を変更することができます。 .PP ?\^: 演算子は C 言語のものと同様です。もし、最初のパターンが真なら、 テストのために 2 番目のパターンが用いられ、そうでなければ 3 番目のパターンが 用いられます。2 番目と 3 番目のパターンのどちらかだけが評価されます。 .PP .IB pattern1 ", " pattern2 形式は .I 範囲パターン と呼ばれます。範囲パターンは、 .I pattern1 にマッチするレコードから、 .I pattern2 にマッチする行レコードまでのすべてにマッチします。 この形式は、他のパターン式と混合して用いることはできません。 .SS 正規表現 awk の正規表現は .I egrep のものと同様に、拡張された正規表現です。 以下の構成要素から成り立っています。 .TP \w'\fB[^\fIabc...\fB]\fR'u+2n .I c メタ文字ではない .I c にマッチする。 .TP .I \ec リテラル文字 .I c にマッチする。 .TP .B . 改行以外の任意の一文字にマッチする。 .TP .B ^ 行頭、または文字列の先頭にマッチする。 .TP .B $ 行末、または文字列の終端にマッチする。 .TP .BI [ abc... ] abc... のいずれか一文字にマッチする(文字クラス)。 .TP .BI [^ abc... ] abc... と改行を除く任意の一文字にマッチする(否定文字クラス)。 .TP .IB r1 | r2 .I r1 または .I r2 にマッチする(選言)。 .TP .I r1r2 .I r1 の直後に .I r2 が続くものにマッチする(結合)。 .TP .IB r + .I r の 1 回以上の繰り返しにマッチする。 .TP .IB r * .I r の 0 回以上の繰り返しにマッチする。 .TP .IB r ? .I r の 0 回または 1 回の繰り返しにマッチする。 .TP .BI ( r ) .I r にマッチする(グループ化)。 .PP 文字列定数中で用いることができるエスケープシーケンス(後述参照)は、 正規表現中でも使用することができます。 .SS アクション アクションは、ブレース .B { と .B } で囲みます。アクションは通常の代入、条件文、 ループ文等からなります。演算子、制御文、入出力文は C 言語とほぼ同様です。 .SS 演算子 .PP AWK での演算子を、優先順位の低いものから順に示します。 .PP .TP "\w'\fB*= /= %= ^=\fR'u+1n" .PD 0 .B "= += \-=" .TP .PD .B "*= /= %= ^=" 代入。絶対的な代入 .BI ( var " = " value ) と演算子代入(その他の形式)がサポートされています。 .TP .B ?: C 言語の条件式と同様です。 .IB expr1 " ? " expr2 " : " expr3\c の形式で使います。もし .I expr1 が真なら式の値は .I expr2 になり、そうでなければ .I expr3 になります。 .I expr2 か .I expr3 のうち片方のみが評価されます。 .TP .B || 論理 OR。 .TP .B && 論理 AND。 .TP .B "~ !~" 正規表現マッチ、否定のマッチ。 .B 注意: .B ~ と .B !~ の左辺に正規表現定数 .RB ( /foo/ 等) を用いてはいけません。正 規表現定数は右辺にのみ置くことができます。式 .BI "/foo/ ~ " exp は \fB(($0 ~ /foo/) ~ \fIexp\fB)\fR と等価であり、これは通常意図するものとは異なります。 .TP .PD 0 .B "< >" .TP .PD 0 .B "<= >=" .TP .PD .B "!= ==" 通常の関係演算子。 .TP .I blank 文字列の結合。 .TP .B "+ \-" 加算、減算。 .TP .B "* / %" 乗算、除算、剰余。 .TP .B "+ \- !" 単項プラス、単項マイナス、論理否定。 .TP .B ^ べき乗(\fB**\fR も同様の意味で使用できる。また \fB**=\fR 代入演算子も存在する)。 .TP .B "++ \-\^\-" インクリメント、デクリメント。前置も後置も可能。 .TP .B $ フィールド参照 .SS 制御ステートメント .PP 制御ステートメントは以下のとおりです。 .PP .RS .nf \fBif (\fIcondition\fB) \fIstatement\fR [ \fBelse\fI statement \fR] \fBwhile (\fIcondition\fB) \fIstatement \fR \fBdo \fIstatement \fBwhile (\fIcondition\fB)\fR \fBfor (\fIexpr1\fB; \fIexpr2\fB; \fIexpr3\fB) \fIstatement\fR \fBfor (\fIvar \fBin\fI array\fB) \fIstatement\fR \fBbreak\fR \fBcontinue\fR \fBdelete \fIarray\^\fB[\^\fIindex\^\fB]\fR \fBdelete \fIarray\^\fR \fBexit\fR [ \fIexpression\fR ] \fB{ \fIstatements \fB} .fi .RE .SS 入出力ステートメント .PP 入出力ステートメントは以下のとおりです。 .PP .TP "\w'\fBprintf \fI書式, 式の列\fR'u+1n" .BI close( filename ) ファイルまたはパイプ(下記参照)をクローズします。 .TP .B getline 次のレコードを .B $0 に読み込みます。 .BR NF , .BR NR , .B FNR が設定されます。 .TP .BI "getline <" file ファイル .I file から次のレコードを .B $0 に読み込みます。 .B NF が設定されます。 .TP .BI getline " var" 次のレコードを変数 .I var に読み込みます。 .BR NF , .B FNR が設定されます。 .TP .BI getline " var" " <" file ファイル .I file から次のレコードを変数 .I var に読み込みます。 .TP .B next 現在のレコードに対する処理を終了し、次のレコードを読み込み、AWK プログ ラムの最初のパターンから処理を開始します。 C 言語の continue と類似した意味を持ちます。 もし、入力データの終端に達した場合、 .B END ブロックが存在すれば実行されます。 .TP .B "next file" 現在の入力ファイルに対する処理を終了し、次の入力ファイルからレコードを 読み込みます。 .B FILENAME が更新され、 .B FNR が 1 にリセットされ、AWK プログラムの 最初のパターンから処理が開始されます。入力データの終端に達したときは、 もし存在すれば、 .B END ブロックが実行されます。 .TP .B print 現在のレコードを出力します。 .TP .BI print " expr-list" 式を出力します。各式は .B OFS の値で区切られます。出力されるレコードの最後に は .B ORS の値が付加されます。 .TP .BI print " expr-list" " >" file 式をファイル .I file に出力します。各式は .B OFS の値で区切られます。出力されるレコードの 最後には .B ORS の値が付加されます。 .TP .BI printf " fmt, expr-list" 書式付き出力です。 .TP .BI printf " fmt, expr-list" " >" file ファイル .I file への書式付き出力です。 .TP .BI system( cmd-line ) コマンド .I cmd-line を実行し、終了ステータスを返します(\*(PX に対応しない システムでは使用できない場合があります)。 .PP その他の形式のリダイレクトとして以下のものが利用可能です。 .B print と .B printf に対して、 .BI >> file を指定すると出力はファイル .I file に追加され、 .BI | " command" は出力をパイプに対して行います。同様に、 .IB command "| getline" はコマンドの出力から .B getline を行ないます。 .B getline はファイル終端では 0 を、エラー時には \-1 を返します。 .SS \fIprintf\fP\^ ステートメント .PP AWK での .B printf ステートメントと .B sprintf() 関数(後述参照)は、以下の変換指定書式を受け付けることができます。 .TP .B %c 1つの \s-1ASCII\s+1 文字。 .B %c に対応する引数が数値なら、その値を \s-1ASCII\s+1 コードとみなし て文字に変換します。そうでなければ、引数は文字列であると解釈され、その1 文字目が出力されます。 .TP .B %d 10進数(整数部分)。 .TP .B %i .B %d と同じです。 .TP .B %e .B [-]d.ddddddE[+-]dd という形式の浮動小数。 .TP .B %f .B [-]ddd.dddddd という形式の浮動小数。 .TP .B %g .B %e と .B %f の短い方の形式の浮動小数。余計な 0 は省略されます。 .TP .B %o 符号なしの 8 進数(整数)。 .TP .B %s 文字列。 .TP .B %x 符号なしの 16 進数(整数)。 .TP .B %X .B %x と同様。ただし、 .B abcdef のかわりに .B ABCDEF を用います。 .TP .B %% 単一の文字 .B % 。引数は使用しません。 .PP .B % と上記のコントロール文字との間にオプショナルな追加のパラメータを置く ことができます。以下にそれらを示します。 .TP .B \- 左寄せ。 .TP .I width フィールドが指定した幅 .I width になるように拡張されます。もし、 .I width が 0 で始まる数値の場合、 フィールドは 0 によって拡張されます。さもなければ、空白で拡張されます。 これは数値ではない出力に対しても適用できます。 .TP .BI . prec 文字列の最大長、または、小数点以下の桁数を指定します。 .PP \*(AN C の .B printf() の動的な幅 .I width と精度 .I prec の指定機能が使用できます。幅または精 度の指定部分に .B * を指定することで、その値を .B printf または .B sprintf() への引数で指定できます。 .SS 特殊ファイル名 .PP 入出力リダイレクトを行う場合、 .I awk が内部で解釈する特殊なファイル名があります。 これらのファイル名により、親プロセス(通常はシェルです)から受け継いだ ファイルディスクリプタを用いて入出力を行ったり、実行中の .I awk プロセスに関する情報を得ることができます。 特殊ファイル名は以下のとおりです。 .TP \w'\fB/dev/stdout\fR'u+1n .B /dev/pid 現在の .I awk プロセスのプロセスID(10進数で、最後に改行が付きます)を 読み込むことができます。 .TP .B /dev/ppid 親プロセスのプロセスID(10進数で、最後に改行が付きます)を 読み込むことができます。 .TP .B /dev/pgrpid 現在の awk プロセスのプロセスグループ ID(10進数で、最後に改行が付きます) を読み込むことができます。 .TP .B /dev/user このファイルを読むことで、改行で終わる単一のレコードが得られます。 各フィールドは空白で区切られています。 .B $1 は .IR getuid (2) システムコールの値、 .B $2 は .IR geteuid (2) システムコールの値、 .B $3 は .IR getgid (2) システムコールの値、$4 は .IR getegid (2) システムコールの値です。もし、さらにフィールドがあれば、 それは .IR getgroups (2) システムコールが返すグループ ID のリストです。 全てのシステムで複数のグループがサポートされているわけではありません。 .TP .B /dev/stdin 標準入力。 .TP .B /dev/stdout 標準出力。 .TP .B /dev/stderr 標準エラー出力。 .TP .BI /dev/fd/\^ n オープンされたファイルディスクリプタ .I n に対応しているファイル。 .PP エラーメッセージを出力するには、以下の方法が便利です。 .PP .RS .ft B print "You blew it!" > "/dev/stderr" .ft R .RE .PP もしこの機能が無かったら、次のようにするしかないところです。 .PP .RS .ft B print "You blew it!" | "cat 1>&2" .ft R .RE .PP これらのファイル名は、コマンドラインのデータファイル指定で使うこともできます。 .SS 数値関数 .PP AWK は以下の定義済み数値関数を持っています。 .PP .TP \w'\fBsrand(\^\fIexpr\^\fB)\fR'u+1n .BI atan2( y , " x" ) .I y/x の逆正接(ラジアン単位)。 .TP .BI cos( expr ) 余弦(与える値はラジアン)。 .TP .BI exp( expr ) 指数関数。 .TP .BI int( expr ) 整数への切捨て。 .TP .BI log( expr ) 自然対数。 .TP .B rand() 0 から 1 の間の乱数。 .TP .BI sin( expr ) 正弦(与える値はラジアン)。 .TP .BI sqrt( expr ) 平方根。 .TP .BI srand( expr ) 式 .I expr の値を乱数生成関数の種として用います。式が指定されなかった場合は、 時刻が用いられます。直前の種の値を返します。 .SS 文字列関数 .PP AWK は以下の定義済み文字列関数を持っています。 .PP .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgsub(\fIr\fB, \fIs\fB, \fIt\fB)\fR 文字列 .I t 中で正規表現 .I r にマッチした部分をすべて .I s に置換します。置換の個数を返します。 .I t を指定しなかった場合は .B $0 が用いられます。 .TP .BI index( s , " t" ) 文字列 .I s 中に含まれる文字列 .I t の位置を返します。 .I t が含まれていない場合は 0 を返します。 .TP .BI length( s ) 文字列 .I s の長さを返します。 .I s を指定しなかった場合には .B $0 の長さを返します。 .TP .BI match( s , " r" ) 文字列 .I s 中で正規表現 .I r にマッチする位置を返します。マッチしない場合は 0 を 返します。 .B RSTART と .B RLENGTH の値が設定されます。 .TP \fBsplit(\fIs\fB, \fIa\fB, \fIr\fB)\fR 文字列 .I s を正規表現 .I r を用いて分割し、配列 .I a に格納します。 フィールド数を返します。 .I r が省略され た場合は .B FS が用いられます。配列 .I a の内容は、分割前にクリアされます。 .TP .BI sprintf( fmt , " expr-list" ) 書式 .I fmt に従って .I exp-list を整形表示し、結果の文字列を返します。 .TP \fBsub(\fIr\fB, \fIs\fB, \fIt\fB)\fR .B gsub() と似てますが、最初にマッチした文字列のみが置換されます。 .TP \fBsubstr(\fIs\fB, \fIi\fB, \fIn\fB)\fR 文字列 .I s の .I i 文字目から始まる .I n 文字の部分文字列を返します。 .I n が省略された場合、 .I i 文字目以降の部分文字列が返されます。 .TP .BI tolower( str ) 文字列 .I str をコピーし、大文字をすべて小文字に変換したものを返します。 アルファベットでない文字は変化しません。 .TP .BI toupper( str ) 文字列 .I str をコピーし、小文字をすべて大文字に変換したものを返します。 アルファベットでない文字は変化しません。 .SS 時間関数 .PP タイムスタンプを含んだログファイルの処理は AWK プログラムの主な使い道の1つですから、 .I awk はタイムスタンプを取り出したり、フォーマット するための 2 つの関数を提供します。 .PP .TP "\w'\fBsystime()\fR'u+1n" .B systime() エポックからの経過秒数を返します (\*(PX システムでは、エポックは UTC で 1970 年 1 月 1 日 0:00 です)。 .TP \fBstrftime(\fIformat\fR, \fItimestamp\fB)\fR 書式 .I format に従って .I timestamp をフォーマットします。 .I timestamp は .B systime() が返す値と同じ形式でなければなりません。 .I timestamp が省略された 場合、現在の .B systime() の値が用いられます。利用可能なフォーマットにつ いては、\*(AN C の .B strftime() 関数の仕様を参照して下さい。パブリックドメイン な .IR strftime (3) とそのマニュアルページが .I awk とともに配布されています。もし、 .I awk を作成するためにその .B strftime を用いた場合は、そのマニュアルに記述さ れている変換書式が .I awk でも利用可能です。 .SS 文字列定数 .PP AWK での文字列定数は、ダブルクォート(\fB"\fR)に狭まれた文字の列です。 文字列内では、C 言語のようにいくつかの .I エスケープシーケンス が使えます。 .PP .TP \w'\fB\e\^\fIddd\fR'u+1n .B \e\e バックスラッシュそのもの。 .TP .B \ea 「警告」文字。通常は \s-1ASCII\s+1 \s-1BEL\s+1 文字です。 .TP .B \eb バックスペース。 .TP .B \ef 改ページ。 .TP .B \en 改行。 .TP .B \er 復帰(キャリッジリターン)。 .TP .B \et 水平タブ。 .TP .B \ev 垂直タブ。 .TP .BI \ex "\^hex digits" .B \ex に続く 16 進数で表現された文字。\*(AN C と同様に、 .B \ex に続くすべての 16 進数字 はエスケープシーケンスの一部であるとみなされます。 (この機能によりコミッティによる言語デザインが分かります。) たとえば、\fB"\ex1B"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e ddd 1桁か2桁か3桁の 8 進数で表現された文字。たとえば、 \fB"\e033"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e c 文字 c そのもの。 .PP エスケープシーケンスは正規表現定数内でも用いることができます(たとえば、 .B "/[\ \et\ef\en\er\ev]/" は空白文字にマッチします)。 .SH 関数 AWK では関数を以下のようにして定義します。 .PP .RS \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements \fB}\fR .RE .PP 関数は、アクション部から呼び出されたときに実行されます。 関数呼び出しにおいて与えられた実引数が、関数宣言における仮引数に 受け渡されます。 このとき配列の場合は参照渡しが行われ、他の変数の場合は値渡しで行われます。 .PP 元々 AWK に関数は備わっていませんでしたので、局所変数の機構はあまり スマートではありません。 局所変数は引数リストの余分な引数として宣言します。局所変数と関 数引数を区別するため、余分な空白で区切るのが慣習です。たとえば、以下のよ うにします。 .PP .RS .ft B .nf function f(p, q, a, b) { # a と b は局所変数 ..... } /abc/ { ... ; f(1, 2) ; ... } .fi .ft R .RE .PP 関数呼び出しにおける左括弧は、空白を狭まずに関数名の直後に 置かなければいけません。 これは、文字列結合演算子との曖昧さを生じさせないために必要です。 この制限は、上述の組み込み関数にはあてはまりません。 .PP 関数は、他の関数を呼び出したり、自分自身を再帰的に呼び出すことができます。 局所変数として用いられる関数引数は、関数起動時に空文字列および 0 に初期化されます。 .PP .B function のかわりに .B func を用いることができます。 .SH 例 .nf ``/etc/passwd'' から全ユーザのログイン名を取り出し、ソートして出力する。 .ft B BEGIN { FS = ":" } { print $1 | "sort" } .ft R ファイルの行数を数える。 .ft B { nlines++ } END { print nlines } .ft R 行番号をつける。 .ft B { print FNR, $0 } .ft R 全ファイルを通した行番号をつける。 .ft B { print NR, $0 } .ft R .fi .SH 関連項目 .IR egrep (1), .IR getpid (2), .IR getppid (2), .IR getpgrp (2), .IR getuid (2), .IR geteuid (2), .IR getgid (2), .IR getegid (2), .IR getgroups (2) .PP .IR "The AWK Programming Language" , Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988. ISBN 0-201-07981-X. .PP .IR "The AWK Manual" , Edition 0.15, published by the Free Software Foundation, 1993. .SH POSIX 互換 .I awk は最新版の \*(UX .I awk との互換性だけでなく、\*(PX 標準との互換性も追求しています。 このため .I awk には以下のような機能が取り入れられています。 これらの機能は AWK 本には述べられていませんが、 System V Release 4 および \*(PX 標準の .I awk が有している機能です。 .PP プログラム実行前に変数代入を行なう .B \-v オプションは新しい物です。 AWK 本によれば、コマンドラインで指定された変数代入は .I awk が引数をファイル名としてオープンする際に行なわれることになります。つまり これは .B BEGIN ブロックの実行後です。しかしながら初期の頃の実装では、引数の中でファイル名に 先立って変数代入が指定されている場合には、代入は .B BEGIN ブロック実行の .I 前に 行われていました。そしてアプリケーションは、この「仕様」に依存する ようになりました。 .I awk がそのドキュメントに合うように直された時、昔の動作に依存している アプリケーションの便宜を図るためにこのオプションが加えられました。 (この仕様は AT&T および GNU の開発者達によって合意されました。) .PP 独自機能のための .B \-W オプションは \*(PX 標準に従ったものです。 .PP 引数の列に特別なオプション ``\fB\-\^\-\fP'' を指定すると、 .I awk はそこがオプションの終わりであると解釈します。 互換モードにおいては未定義オプションは警告が出力され、それ以外のものは 無視されます。 通常の実行においては残りの引数は AWK プログラムに引き渡されます。 .PP AWK 本は .B srand() の返り値を定義していません。 System V Release 4 版の \*(UX .I awk (と \*(PX 標準) では、その関数が使っている種を返します。 したがって .I awk における .B srand() も現在の種を返すようにしてあります。 .PP その他にも以下のような新機能があります。 .B \-f オプションの複数回使用 (MKS .IR awk に倣いました); .B ENVIRON 配列; エスケープシーケンス .B \ea と .B \ev ( .I awk で最初に実装され、AT&T の .I awk にフィードバックされました); 組み込み関数 .B tolower() と .B toupper() (AT&T に倣いました); .B printf における \*(AN C 変換指定 (AT&T 版で最初に実装されました)。 .SH GNU 拡張 .I gawk は \*(PX .I awk に対していくつかの拡張が行なわれています。 この節ではそれらについて解説します。 .B "\-W compat" オプション付きで .I awk を起動することによって、 ここで述べられている拡張機能をすべて禁止することができます。 .PP .I awk が持つ以下の機能は \*(PX .I awk では使用できません。 .RS .TP \w'\(bu'u+1n \(bu エスケープシーケンス .B \ex 。 .TP \(bu 関数 .B systime() および .B strftime() 。 .TP \(bu 入出力リダイレクトで利用可能な特殊ファイル名。 .TP \(bu 変数 .B ARGIND および .B ERRNO は特殊変数ではありません。 .TP \(bu 変数 .B IGNORECASE とその副作用は利用できません。 .TP \(bu 変数 .B FIELDWIDTHS と固定長フィールド分割。 .TP \(bu .B \-f オプションで指定されたファイル名について行われるパス検索。 よって、環境変数 .B AWKPATH は特殊な変数ではありません。 .TP \(bu 現在の入力ファイルに対する処理を終わらせるために使用される .B "next file" 。 .TP \(bu 配列全体を削除するために使用される .BI delete " 配列" 。 .RE .PP AWK 本は関数 .B close() の返り値を定義していません。 .I gawk の .B close() は、ファイルやパイプをクローズする際に呼び出す .IR fclose (3)、 や .IR pclose (3)、 からの返り値を返します。 .PP オプション .B "\-W compat" 付きで .I awk を起動し .B \-F オプションへの引数 .I fs として ``t'' を与えた場合に、 .B FS の値はタブ文字に設定されます。 これは少々見苦しい特殊事例ですので、デフォルトの動作としては 採用されていません。 .B "\-W posix" を指定した場合にも、この動作は行なわれません。 .ig .PP If .I awk was compiled for debugging, it will accept the following additional options: .TP .PD 0 .B \-Wparsedebug .TP .PD .B \-\^\-parsedebug Turn on .IR yacc (1) or .IR bison (1) debugging output during program parsing. This option should only be of interest to the .I awk maintainers, and may not even be compiled into .IR awk . .. .SH 歴史的機能 .I awk は歴代の AWK の実装にあった二つの機能を備えています。 一つめとして、組み込み関数 .B length() は引数無しで呼び出せるだけでなく、さらに括弧無しでも呼び出せます! したがって .RS .PP .ft B a = length .ft R .RE .PP は以下の2例と同じです。 .RS .PP .ft B a = length() .br a = length($0) .ft R .RE .PP \*(PX 標準ではこの機能は ``deprecated'' と注意書きされており、 .I awk ではコマンドラインで .B "\-W lint" を指定した場合に、この機能の使用に対して警告を出力します。 .PP もう一つは、 .BR while 、 .BR for 、 .B do ループ本体の外でも .B continue ステートメントを使用できるという機能です。 伝統的な AWK の実装では、このように使用した .B continue ステートメントを .B next ステートメントと等価なものとして扱ってきました。 .I gawk では .B "\-W posix" が指定されていない場合に、この機能を使うことができます。 .SH 環境変数 環境に .B POSIXLY_CORRECT が存在する場合には、 .I awk はコマンドラインで .B \-\-posix が指定されている時と全く同じ動作をします。 このとき .B \-\-lint が指定されていると .I awk はこの作用についての警告メッセージを出力します。 .SH バグ コマンドラインでの変数代入機能を使用するには、変数への代入を直接 コマンドラインに書けばよく、 .B \-F オプションをつける必要はありません。 このオプションは昔の .I awk との互換性のためだけに残されています。 .PP ファイル .B /dev/fd および .BR /dev/stdin 、 .BR /dev/stdout 、 .B /dev/stderr を実際にサポートしているシステムでの .I awk からは、それらがないシステムとは違った出力が得られるかもしれません。 .I awk はそれらのファイルを内部で解釈する際に標準出力への出力を .B /dev/stdout への出力と同期させますが、それらのファイルを持つシステムでは 出力はそれぞれ異なるファイルへ向けられます。 利用者の方で気を付けるようにしてください(Caveat Emptor)。 .SH バージョン情報 このマニュアルは .I awk バージョン 2.15 について書かれています。 .PP バージョン 2.11 にあったオプション .BR \-c 、 .BR \-V 、 .BR \-C 、 .ig .BR \-D 、 .. .BR \-a 、 .B \-e は、バージョン 2.15 以降では使用できません。 バージョン 2.16 のマニュアルでは、この事実の記述さえ無くなるでしょう。 .SH 作者 \*(UX .I awk の最初のバージョンは、AT&T ベル研究所の Alfred Aho と Peter Weinberger および Brian Kernighan によって設計、実装されました。 Brian Kernighan はその保守と改良を続けています。 .PP Free Software Foundation の Paul Rubin と Jay Fenlason が、Seventh Edition \*(UX で配布された最初のバージョンの .I awk と互換性を持つように .I gawk を書きました。 John Woods は数々のバグ修正を送って下さいました。 David Trueman は、Arnold Robbins が送って下さった内容をもとに、 .I gawk を新バージョンの \*(UX .I awk 互換にしました。 .PP DOS への最初の移植は Conrad Kwok と Scott Garfinkle によって 行なわれました。 現在は Scott Deifik が DOS 版の保守をしています。 Pat Rankin は VMS への移植を行ない、Michal Jaegermann は Atari ST への 移植を行ないました。 OS/2 への移植は Kai Uwe Rommel が Darrel Hankerson の助けを借りて 行ないました。 .SH 謝辞 ベル研究所の Brian Kernighan はテストおよびデバッグの間、貴重な助力を 提供して下さいました。 感謝致します。 diff --git a/ja/man/man1/chpass.1 b/ja/man/man1/chpass.1 index 7543a7d24e..6411012672 100644 --- a/ja/man/man1/chpass.1 +++ b/ja/man/man1/chpass.1 @@ -1,405 +1,414 @@ .\" Copyright (c) 1988, 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. .\" .\" @(#)chpass.1 8.2 (Berkeley) 12/30/93 -.\" %Id: chpass.1,v 1.7.2.3 1998/07/16 23:50:59 jkh Exp % +.\" %Id: chpass.1,v 1.7.2.4 1998/08/14 03:38:01 thepish Exp % .\" jpman %Id: chpass.1,v 1.2 1997/03/31 14:06:36 horikawa Stab % .\" .Dd December 30, 1993 .Dt CHPASS 1 .Os .Sh 名称 .Nm chpass, chfn, chsh, ypchpass, ypchfn, ypchsh .Nd ユーザデータベース内の情報を編集する .Sh 書式 .Nm chpass .Op Fl a Ar list .Op Fl p Ar encpass .Op Fl s Ar newshell .Op user .Sh 解説 .Nm chpass は .Ar user もしくはデフォルトでは実行したユーザのユーザデータベースの情報を変更します。 情報はフォーマットされ、必要な部分をエディタで変更します。 .Pp ユーザが変更することができる情報だけが表示されます。 .Pp オプションとしては、以下のものがあります: .Bl -tag -width flag .It Fl a スーパユーザは、ユーザデータベースのエントリを .Xr passwd 5 で定義されたフォーマットで引数として直接指定できます。 この引数はコロン(``:'')で区切られたリストであり、 空きの部分があっても許されますが、 すべてのフィールドをリストにしなければなりません。 .It Fl p スーパユーザは、暗号化されたパスワードフィールドを .Xr crypt 3 で用いられているフォーマットで引数として直接指定することができます。 .It Fl s .Fl s オプションは、ユーザのシェルを .Ar newshell に変更します。 .El .Pp 表示されるエントリには以下のものがあります: .Pp -.Bl -tag -width "Home Directory:" -compact -offset indent +.Bl -tag -width "Other Information:" -compact -offset indent .It Login: ユーザのログイン名 .It Password: ユーザの暗号化されたパスワード .It Uid: ユーザの ID .It Gid: ユーザのグループ ID .It Change: パスワードの変更時間 .It Expire: アカウントの有効期限 .It Class: ユーザの一般的な分類 .It Home Directory: ユーザのホームディレクトリ .It Shell: ユーザのログインシェル .It Full Name: ユーザの実際の名前 .It Location: ユーザが通常いる場所 .It Home Phone: ユーザの自宅の電話番号 .It Office Phone: ユーザのオフィスの電話番号 +.It Other Information: +ユーザに関するローカル定義情報 .El .Pp .Ar login フィールドは計算機にアクセスするときに使われるユーザ名です。 .Pp .Ar password フィールドはユーザの暗号化されたパスワードが収められています。 .Pp .Ar uid フィールドは .Ar login フィールドと関連した番号です。ファイルのアクセスを制御するために、 どちらのフィールドもシステム (しばしば、複数のシステム) の中で 一意である必要があります。 .Pp 複数のエントリが同一のログイン名や同一のユーザ ID を持つことは可能ですが、 そのようにすることは通常誤りです。 これらのファイルを操作する手順では、 それらの複数のエントリ内から無作為に選んだものの一つだけを返すでしょう。 .Pp .Ar group フィールドはユーザがログイン時に所属するグループです。BSD が複数の グループを採用してから( .Xr groups 1 参照) このフィールドはほとんど意味がありません。 このフィールドは番号やグループ名( .Xr group 5 参照) のどちらかが記述されます。 .Pp .Ar change フィールドはパスワードが変更されているべき日付です。 .Pp .Ar expire フィールドはアカウントの満了する日付です。 .Pp .Ar change と .Ar expire の両方のフィールドは ``month day year'' の形式で入力し、 .Ar month は、英語の月の名前 (はじめの3文字でも十分です) で、 .Ar day は、その月の中の日で、 .Ar year は、その年です。 .Pp .Ar class フィールドは現在では使われてません。近い将来には、 .Xr termcap 5 形式のユーザ属性のデータベースへの手がかりとなるでしょう。 .Pp ユーザの .Ar home directory はユーザがログイン時にいる場所への絶対 UNIX パス名です。 .Pp .Ar shell フィールドはユーザの好むコマンドインタプリタです。 もし .Ar shell フィールドが空であれば、ボーンシェル .Pa /bin/sh であると仮定します。 ログインシェルを変更するときに、スーパユーザではないユーザは、 非標準シェルから、または非標準シェルへの変更は許されていません。 非標準シェルとは .Pa /etc/shells で見つけられないシェルのことです。 .Pp -最後の 4 つのフィールドはユーザの -.Ar 実際の名前 , オフィスの場所 -そして +最後の 5 つのフィールドはユーザの +.Ar 実際の名前 +、 +.Ar オフィスの場所 +、 .Ar 職場 と .Ar 家で使う電話 -番号の保管をしています。 +番号、そして +.Ar その他の情報 +を保管しています。 +.Ar その他の情報 +は、コンマで区切った単一文字列であり、追加の gcos フィールドを表現します。 +(典型的にはサイト固有のユーザ情報のために使用します)。 .Pp 一度情報が確認されたら .Nm chpass はユーザデータベースを更新するために .Xr pwd_mkdb 8 を用います。 .Sh 環境変数 環境変数 EDITOR を設定して他のエディタを指定している場合を除き、 .Xr vi 1 エディタが使われます。エディタが終了すると、その情報は再度読み込まれ、 ユーザデータベースを変更するための情報とします。 ユーザの情報を変更できるのは、そのユーザかスーパユーザのみです。 .Sh NIS との相互作用 いくつかの制限が適用されますが、 .Nm chpass を NIS と同時に使うこともできます。現在 .Nm chpass が .Xr rpc.yppasswdd 8 を通じて NIS のパスワードマップ中で変更できるのは、 通常はユーザのパスワード、シェル、GECOS フィールドだけです。 NIS マスタサーバ上でスーパユーザによって起動された場合を除き、 .Nm chpass (同様に .Xr passwd 1 ) は、ユーザ情報の変更および新レコードの追加のために .Xr rpc.yppasswdd 8 サーバを使用出来ません。 なお、 .Xr rpc.yppasswdd 8 は、どのような変更を行う前にもパスワード認証を要求します。 パスワード無しで変更要求できるユーザは NIS マスタサーバ上のスーパユーザだけです; 他の全てのユーザはパスワードを入力する必要があります。 他の全てのユーザには NIS クライアント(および NIS スレーブサーバ)上の ルート権限を持つユーザも含まれます。 (NIS マスタサーバ上のスーパユーザがこの制約をバイパスできる理由は、 主に簡便さのためです: NIS マスタサーバへのルートアクセス権限をもつユーザは 既に NIS マップを更新するための権限を持っています。 それにもかかわらずマップソースファイルを手で編集することは面倒です。 .Pp 注: これらの例外が適用されるのは NIS マスタサーバが FreeBSD システムの時だけです。) .Pp その結果として、上述の例外を除き、NIS 環境で .Nm chpass を使う場合には以下の制限が適用されます: .Bl -enum -offset indent .It .Pa シェルと GECOS 情報だけを変更できます。 たとえ .Nm chpass がスーパユーザによって起動された場合であってもです。 他のフィールドの変更がサポートされるようになっても、 他の NIS システムとの互換性の問題を引き起こすでしょう。 スーパユーザがあるエントリを編集している時に、 他のフィールドにデータを書いても、余分な情報として (パスワードは例外 -- 以下を参照してください) だまって廃棄されるでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは、 任意のフィールドの変更が許されています。 .Pp .It .Pa パスワード認証が要求されます。 どのような変更を行う前にも .Nm chpass はユーザの NIS パスワードを要求します。もしパスワードが間違っていたら、 どのような変更も行われません。 .Pp 例外: NIS マスタサーバ上のスーパユーザはパスワード無しに変更要求できます。 (スーパユーザは、後述するように .Fl o フラグを指定する事によりこの仕様を無効にする事が選択できます。) .It .Pa 新しいレコードのローカルパスワードデータベースへの追加は勧められません。 NIS が動作しているときに、管理者が .Nm chpass によって新しいレコードをローカルのパスワードデータベースに追加可能です。 しかし、新しいレコードがマスタパスワードファイルの最後、 通常は NIS の特別な '+' エントリの後に追加されるため、 いくつかの混乱を招きかねません。 .Xr vipw 8 を使ってローカルのパスワードファイルを変更するべきです。 .Pp NIS マスタサーバ上のスーパユーザによる NIS パスワードマップへの新レコードの追加が許可されるのは、 .Xr rpc.yppasswdd 8 サーバが .Fl a フラグ付で起動された場合、すなわち追加を許可して起動された場合のみです (通常は追加を拒否します)。 .Nm chpass はデフォルトではローカルのパスワードデータベースを更新しようとします; NIS マップを変更する場合には chpass を .Fl y フラグ付で起動してください。 .It .Pa パスワードの変更は許可されていません。 ユーザが、自分の NIS のパスワードを変更するときには .Xr passwd 1 か .Xr yppasswd 1 を使うべきです。スーパユーザは新しいパスワードを指定することを許され ています(たとえ、``Password:'' フィールドがエディタのテンプレートに あらわれていなくても、スーパユーザは手動で加えることができます) 。 しかしながら、スーパユーザであってもユーザの元のパスワードがなければ .Xr rpc.yppasswdd 8 が NIS マップの更新を拒否するでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは .Nm chpass を使用して、ユーザの NIS パスワードを変更する事が許されています。 .El .Pp .Nm chpass が NIS をサポートしてコンパイルされたときに、数個の特別なフラグが有効 になります: .Bl -tag -width flag .It Fl l .Fl l フラグは、ローカルと NIS の両方のデータベースにユーザが存在していても、 ユーザのパスワード情報のローカルのコピーを修正することを .Nm chpass に強制します。 .It Fl y このフラグは .Fl l と反対の効果があります。もし NIS が動作していれば、 デフォルトでは .Nm chpass は NIS のエントリを操作するので、 このフラグはまったく冗長です。 .It Fl d Ar domain NIS ドメインを指定します。 .Nm chpass はデフォルトではシステムのドメイン名を使用します。 これは .Xr domainname 1 コマンドにて設定されています。 .Fl d オプションは、 このデフォルトを上書きするため、 もしくはドメイン名が設定されていない場合にドメイン名を指定するために 使用できます。 .It Fl h Ar host 問い合わせるべき NIS サーバの名前もしくはアドレスを指定します。 通常 .Nm chpass は .Pa master.passwd もしくは .Pa passwd マップにて指定される NIS マスタホストと通信します。 NIS クライアントとして構成されていないホスト上では、 この情報を決定するための方法がプログラムにはありませんので、 ユーザがサーバのホスト名を指定します。 指定するホスト名は NIS マスタサーバである必要が無い事に注意してください; NIS ドメイン内のマスタサーバ名でもスレーブサーバ名でも良いのです。 .Pp .Fl d オプション使用時には、ホスト名のデフォルトは ``localhost'' です。 .Fl h オプションを .Fl d とともに使用し、ユーザが指定するホスト名でこのデフォルトを上書きできます。 .Pp .It Fl o .Xr rpc.yppasswdd 8 に RPC ベースの更新を強制します(``旧モード'')。 NIS マスタサーバ上でスーパユーザにより起動された場合、 .Nm chpass は専用の非 RPC ベースの機構を使用し、 NIS パスワードマップに対する無制限の変更を許可します (この場合 UNIX ドメインソケットを使用します)。 .Fl o フラグを使用する事により .Nm chpass に標準の更新メカニズムを使用させる事が出来ます。 このオプションは主にテスト目的のために提供されています。 .El .Pp .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/master.passwd ユーザデータベース .It Pa /etc/passwd Version 7 フォーマットのパスワードファイル .It Pa /etc/chpass.XXXXXX パスワードファイルのテンポラリ用コピー .It Pa /etc/shells 利用できるシェルのリスト .El .Sh 関連項目 .Xr finger 1 , .Xr login 1 , .Xr passwd 1 , .Xr getusershell 3 , .Xr passwd 5 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Rs .%A Robert Morris and .%A Ken Thompson .%T "UNIX Password security" .Re .Sh 注釈 .Xr chfn 1 , .Xr chsh 1 , .Xr ypchpass 1 , .Xr ypchfn 1 , .Xr upchsh 1 コマンドは実際には .Nm chpass にリンクしているだけです。 .Sh バグ ユーザ情報の保存はどこか他の場所にするべきです (し、いつかはそうなるでしょう)。 .Sh 歴史 .Nm chpass コマンドは .Bx 4.3 Reno から登場しました。 diff --git a/ja/man/man1/ld.1 b/ja/man/man1/ld.1 index c7d82898e8..d53d509e14 100644 --- a/ja/man/man1/ld.1 +++ b/ja/man/man1/ld.1 @@ -1,290 +1,291 @@ .\" .\" Copyright (c) 1993 Paul Kranenburg .\" 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 Paul Kranenburg. .\" 3. 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. .\" -.\" %Id: ld.1,v 1.12.2.3 1998/03/03 07:00:18 jkh Exp % +.\" %Id: ld.1,v 1.12.2.4 1998/07/26 04:13:21 jkoshy Exp % .\" jpman %Id: ld.1,v 1.4 1997/11/12 13:02:08 horikawa Stab % .\" .Dd October 14, 1993 .Dt LD 1 .Os FreeBSD .Sh 名称 .Nm ld .Nd リンクエディタ .Sh 書式 .Nm ld .Op Fl fMNnrSstXxz .Bk -words .Op Fl A Ar symbol-file .Op Fl assert Ar keyword .Op Fl B Ns Ar linkmode .Op Fl D Ar datasize .Op Fl d Ar c .Op Fl d Ar p .Op Fl e Ar entry .Op Fl l Ns Ar library-specifier .Op Fl L Ns Ar library-search-path .Op Fl nostdlib .Op Fl O Ar filename .Op Fl o Ar filename .Op Fl R Ns Ar record-library-search-path .Op Fl T Ar address .Op Fl u Ar symbol .Op Fl V Ar shlib-version .Op Fl y Ar symbol .Ek .Sh 解説 .Nm はコマンドラインで指定されたオブジェクトとアーカイブファイルを結合 し、新しいオブジェクトファイルを生成します。生成されるオブジェクトファイルは 実行可能プログラム、実行時ロードに対応した共有オブジェクト、もう一度 .Nm により処理可能なオブジェクトのいずれかになります。オブジェクト ファイルとアーカイブはコマンドラインで指定された順に処理します。 .Pp オプションは以下の通りです。 .Pp .Bl -tag -width indent .It Fl A Ar symbol-file symbol-file を、コマンドラインで指定されたオブジェクトファイルをリンクする ためのベースとして用います。 .It Fl assert Ar keyword 本オプションは主に SunOS の .Nm ld との互換性のために存在します。 Sun の assert が失敗する条件のほとんどは、本 .Nm ではエラーになるか、警告メッセージが発せられます。 .Nm ld が実装している唯一のキーワードは .Nm pure-text です。これを使用すると、位置独立オブジェクトが生成され、 位置独立でないファイルとリンクされるときに警告が生成されます。 .It Fl B Ns Ar dynamic ダイナミックライブラリとのリンクを指定します。 ライブラリが -lx オプションによりコマンドラインから指定されると、libx.so.n.m .Po .Fl l オプションの項を参照 .Pc を検索ルールに基づき有効な範囲で検索します。もしこの形式 のライブラリが発見できなければ、検索ルールに基づき通常の libx.a を検索します。 本オプションはコマンドラインのどこにでも置くことが可能であり、 .Fl B Ns Ar static と相補的なものです。 .It Fl B Ns Ar forcedynamic これは .Fl B Ns Ar dynamic と似ていますが、ダイナミックライブラリとリンクしようとしなくても、 .Nm ld はダイナミックな実行可能ファイルを生成します。 スタティックプログラムでありかつ、 実行時にダイナミックオブジェクトをロードする プログラムに有用です。 .It Fl B Ns Ar static .Fl B Ns Ar dynamic の逆の効果を持ちます。本オプション以降に指定されたライブラリに 関しては、もう一度 .Fl B Ns Ar dynamic が指定されるまで、ダイナミックリンクが行われなくなります。 .Fl B Ns Ar static が有効な位置においてコマンドラインから明示的に共有オブジェクトが 指定された場合は、エラーとなります。 .It Fl B Ns Ar shareable 通常の実行可能イメージではなく、共有オブジェクトを生成するよう指示します。 .It Fl B Ns Ar symbolic リンク時に、すべてのシンボル参照が解決されるように指示します。 実行時に必要なリロケーションは .Em ベース相対 リロケート、すなわちロードアドレスに関する変換のみです。 シンボル参照の解決に失敗した場合はエラーとなります。 .It Fl B Ns Ar forcearchive アーカイブ中の全メンバをロードします。 メンバが通常のオブジェクトファイルに対して定義を提供するか否かには無関係です。 PIC オブジェクトのアーカイブを展開することなく、共有ライブラリを 作成するのに便利です。 .It Fl B Ns Ar silly 共有オブジェクトのための愚かな .Em \.sa アーカイブを作成します。これは、version 3 の共有オブジェクトとの互換性のために存在します。 .It Fl D Ar data-size データセグメントのサイズを設定します。 正気を保つためには、 サイズを入力ファイルの全データサイズの合計より大きくすべきです。 .It Fl d Ar c リロケータブルな出力を作成している時でも、 コモンエリアのアロケートを強制します。 .It Fl d Ar p 非 PIC コード中の手続き呼び出しの別名定義を強制します。 手続きリンク表 (Procedure Linkage Table) による呼び出しのリダイレクト のような、実行時リロケーションを含む共有コードを作成するのに便利です。 .Po .Xr link 5 を参照 .Pc .It Fl e Ar entry-symbol 実行可能ファイルのエントリのシンボルを指定します。 .It Fl f 全てのオブジェクトファイルとライブラリの解決されたパスを 標準出力にリストし、終了します。 .It Fl L Ns Ar path .Fl l オプションで指定したライブラリの検索パスに .Ar path を追加します。 .It Fl l Ns Ar lib-spec 出力に含めるとされるライブラリを指定します。もし、 .Fl B Ns Ar dynamic オプションが有効ならば、まず lib.so.m.n .Po .Em m はメジャーバージョン番号、 .Em n はマイナーバージョン番号 .Pc 形式の共有ライブラリを検索します。検索パス中に見つかった、 最もバージョンが高いライブラリを選択します。共有ライブラリが見つからないか、 .Fl B Ns Ar static オプションが有効なら、lib.a 形式のアーカイブを ライブラリ検索パスより探します。 .It Fl M 入力ファイルのセグメントマッピングと、 出力ファイルの .Pq 大域 シンボルに割り付けられた値 に関する報告を出力します。 .It Fl N OMAGIC 形式ファイル を生成します。 .It Fl n NMAGIC 形式ファイル を生成します。 .It Fl nostdlib .Fl l で指定されたライブラリの検索時に、組み込みのライブラリ検索パス .Po 通常は .Dq /usr/lib .Pc を使用しません。 .It Fl O Ar filename 出力ファイル名を指定します。 ファイルは .Ar filename .tmp として生成され、出力が完了すると、 .Ar filename にリネームされます。 .It Fl o Ar filename 出力ファイル名を指定します。デフォルトは .Dq a.out です。 .It Fl Q QMAGIC (FreeBSD/BSDi-i386)形式のファイルを生成します。これがデフォルトです。 .It Fl r さらに、 .Nm によって処理可能なリロケータブルオブジェクトを生成します。 .It Fl R 実行時のライブラリ検索のために、与えられたバスを実行可能ファイルに記録します。 ダイナミックリンクされた実行可能ファイルにのみ適用されます。 .It Fl S 出力にデバッガシンボルを含めません。 .It Fl s 出力にすべてのシンボルを含めません。 .It Fl T テキストセグメントの開始アドレスを指定します。このアドレスを基準に、すべ ての入力ファイルがリロケートされます。 .It Fl t 入力ファイルの処理状況を出力します。 .It Fl u Ar symbol シンボル .Ar symbol を強制的に未定義とマークします。 他からの参照がない状況で、あるアーカイブのメンバをロードするのに便利です。 .It Fl V Ar version .Pq 共有ライブラリ生成時に 共有ライブラリにバージョン番号を埋め込みます。SunOS 4.x 等の他 のシステムと互換性のある共有ライブラリを作成するのに便利です。 SunOS 4.x ではバージョン番号は 3、本 ld のデフォルトは 8 です。 .It Fl X 入力ファイル中の文字 .Dq L から始まるローカルシンボルを削除します。 .It Fl x 入力ファイル中のすべてのローカルシンボルを削除します。 .It Fl y Ar symbol シンボル .Ar symbol に関する処理状況を報告します。 .It Fl Z 386BSD ZMAGIC 形式ファイルを生成します。 .It Fl z NetBSD ZMAGIC 形式ファイルを生成します。 .Sh 環境変数 .Nm は以下の環境変数を使用します: .Bl -tag -width "LD_LIBRARY_PATH" .It Ev LD_LIBRARY_PATH これはコロンで区切るディレクトリリストであり、ライブラリ検索パスとして、 .Fl L オプションで指定されたディレクトリの後であり組み込みパスの前であるところに 挿入されます。 .\" .It Ev LD_NOSTD_PATH .\" When set, do not search the built-in path for libraries. .\" This is an alternative to the .\" .Fl nostdlib .\" command-line flag. .El .Sh 関連ファイル .Sh 関連項目 +.Xr ldd 1 , .Xr rtld 1 , .Xr link 5 , .Xr ldconfig 8 .Sh 警告 通常の実行可能ファイルを生成するなら、エントリポイントを明示する必要が あります。以前のバージョンの .Nm ld では、このようなことは不要でした。 .Sh バグ 共有オブジェクトに対しては、正しく未定義シンボルの検査が行われません。 .Pp 共有オブジェクトをカスケードすると .Dq -Bstatic オプションは失敗します。 .Pp 実行時に必要なシンボルを必要とされなくとも、 .Nm に指定された共有オブジェクトは実行時ロードのためのマークが含まれます。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 .Nm による共有ライブラリモデルは SunOS 4.0 より登場しています。 diff --git a/ja/man/man1/sh.1 b/ja/man/man1/sh.1 index 246dcd1b35..8d723271ce 100644 --- a/ja/man/man1/sh.1 +++ b/ja/man/man1/sh.1 @@ -1,1192 +1,1204 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Kenneth Almquist. .\" .\" 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: @(#)sh.1 8.6 (Berkeley) 5/4/95 -.\" %Id: sh.1,v 1.9.2.9 1998/06/30 06:42:53 charnier Exp % +.\" %Id: sh.1,v 1.9.2.10 1998/07/28 14:47:36 thepish Exp % +.\" .\" jpman %Id: sh.1,v 1.2 1997/05/31 16:40:31 jsakai Stab % .\" Japanese Translation amended by Norihiro Kumagai, 3/29/96, .\" based on the version of NetBSD Japanese Man Project .\" This amended version is for the FreeBSD-jpman Project, convened .\" by Kazuo Horikawa. .\" .Dd May 5, 1995 .Dt SH 1 .Os BSD 4 .Sh 名称 .Nm sh .Nd コマンドインタプリタ(シェル) .Sh 書式 .Nm .Op Fl /+abCEefIimnpsuVvx .Op Fl /+o Ar longname .Op Fl c Ar string .Op Ar arg ... .Sh 解説 .Nm はシステムの標準コマンドインタープリタです。 現在 .Nm は .St -p1003.2 のシェル規約に対応する途上にあります。 本バージョンのシェルは、見方によっては Korn shell と同様に 見える機能を多数持っていますが、 Korn shell のクローンではありません(もし Korn shell クローンを望むなら、 Gnu の bash を使いましょう)。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 されるプログラムです(ただし、ユーザは chsh(1) コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに 実行させることもできます。 .Ss 起動 引数が与えられず、かつシェルの標準入力が端末の場合 (または -i フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが ダッシュ `-' で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile と .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV を設定するには、ユーザのホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 .sp .Dl ENV=$HOME/.shinit; export ENV .sp ここで、 .Pa .shinit のかわりに好きな名前を指定することができます。 オプション以外にコマンドライン引数が指定された場合、シェルは最初の引数 を、コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm の 1 文字からなるオプションはそれぞれ対応する名前を持っており、 .Xr set 1 組み込みコマンド (後述) の引数として用いることができます。 これらの名前は、以下の説明で 1 文字オプションのすぐあとに書いてあります。 マイナス記号 .Dq - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 .Dq + でオプションを指定することは、そのオプションを無効にすることを意味します。 .Bl -tag -width Ds .It Fl a Li allexport 値が代入された変数の全てをエクスポートします(未実装です)。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す(未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して .Dq > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs -組込みの +組み込みの .Xr emacs 1 -風のコマンド行編集機能を有効にします (それ以前に -V オプションが指定 -された場合、それを無効にします)。 +風のコマンド行編集機能を有効にします (それ以前に +.Fl V +オプションが指定された場合、それを無効にします)。'set -o emacs' も +参照してください (後述します)。 .It Fl e Li errexit 非対話的シェルで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 .Dq && や .Dq || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof 対話的シェルの場合、入力の EOF を無視します。 .It Fl i Li interactive シェルが対話的に動作するように強制します。 .It Fl m Li monitor ジョブ制御を可能にします (対話的シェルの場合は自動的に設定されます)。 .It Fl n Li noexec 非対話的シェルの場合、コマンドを読み込みますが、そのコマンドの実行は しません。シェルスクリプトの文法を検査する場合に便利です。 .It Fl p Li privileged 特権モードを有効にします。 起動時に実効ユーザ ID あるいは実効グループ ID が、実ユーザ ID や実グルー プ ID と一致していなければ、このモードが有効になります。このモードを無 効化すると、実効ユーザ ID および実効グループ ID は、実ユーザ ID および 実グループ ID に設定されます。 対話的シェルでこのモードが有効になっていると、 .Pa /etc/profile の後で .Pa ~/.profile に代わり、 .Pa /etc/suid_profile を読み込みます。一方、環境変数 .Ev ENV の内容は無視されます。 .It Fl s Li stdin コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを( .Xr set 1 などによって)設定しても効果はありません。 .It Fl u Li nounset 値が設定されていない変数を展開しようとした場合、 標準エラー出力にエラーメッセージを出力し、 さらに非対話的シェルならば、ただちにシェルを終了します (未実装です)。 .It Fl V Li vi -組込みの +組み込みの .Xr vi 1 風の行編集機能を有効にします (それ以前に .Fl E オプションが指定されていた場合、それは無効になります)。 .It Fl v Li verbose 入力を読み込むごとに標準エラー出力に書き出します。デバッグのときに便利です。 .It Fl x Li xtrace 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの 前に `+' を付加して) 書き出します。デバッグのときに便利です。 .It Fl c Ar string 文字列引数 string はシェルに渡され、入力として解釈されます。このオプショ ンは引数として文字列を一つだけ受け取ることに注意して下さい。ですから、複 数の単語からなる文字列は引用符で囲う必要があります。 .El .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるもので す) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: & && ( ) ; ;; | || .No \en .It No リダイレクト演算子: < > >| << >> <& >& <<- <> .El .Ss 引用(クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま(リテラ ル)として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 ダブルクォートのペアで囲まれた文字は、ドル記号文字($)、バッククォート 文字(`)、バックスラッシュ文字(\\) を除き、すべてリテラルとして扱われま す。ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 的経緯によりすこし変わった扱いを受けます。つまり、直後に $, `, ", \\, 改行文字 が来るときにのみ、それらの文字がリテラルとして扱われます。そ れ以外の文字が来る場合、バックスラッシュ文字自体がリテラルとして扱われ ます。 .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 します。ただし改行文字は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 .Bd -literal -offset indent ! { } case do done elif else esac fi for if then until while .Ed .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 -組込みコマンド +組み込みコマンド .Xr alias 1 によって定義されます。 シェルは、予約語が現れる可能性がある場所(上記を参照)で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、``lf'' という名前で ``ls -F'' という値を持つエイリアスが 存在したとすると、次の入力行 .Bd -literal -offset indent lf foobar .Ed .Pp は、以下のように置換されます。 .Bd -literal -offset indent ls -F foobar .Ed .Pp エイリアスは、初心者に対し、引数付きの関数を生成する面倒を求めることなく、 短いコマンドをつくり出す便利な方法を提供するものです。 しかし、構文的にあいまいなコードを作り出すことにもつながりかねません。 そのような使い方はお勧めできません。 .Ss コマンド シェルは、読み込んだ単語を、文法に従って解釈します。 本マニュアルでは文法については解説しません。 .St -p1003.2 の BNF 表記を参照してください。要するに、行を1行を読み込み、読み込んだ 行の最初の単語 (制御演算子がある場合は、そのあとの最初の単語) が予約語 でない場合、シェルはその行を単純コマンドとして解釈します。それ以外の場 合、複合コマンドあるいは特殊構造であると解釈します。 .Ss 単純コマンド 単純コマンドを解釈する場合、シェルは以下のような動作をします。 .Bl -enum .It 単語の前にある ``name=value'' の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、「展開」の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した ``name=value'' の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複写 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 .sp .Dl [n] redir-op file .sp ここで、redir-op は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 .Bl -tag -width "1234567890" -offset indent .It [n]> file 標準出力 (またはファイル記述子 n への出力) をファイル file に書き出します。 .It [n]>| file 上と同様。ただし、-C オプションの効果を打ち消します。 .It [n]>> file 標準出力 (またはファイル記述子 n への出力) をファイル file に追加します。 .It [n]< file 標準入力 (またはファイル記述子 n からの入力) をファイル file から取ります。 .It [n1]<&n2 ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複写します。 .It [n]<&- 標準入力 (またはファイル記述子 n) をクローズします。 .It [n1]>&n2 ファイル記述子 n2 を標準出力 (またはファイル記述子 n1) に複写します。 .It [n]>&- 標準出力 (またはファイル記述子 n) をクローズします。 .It [n]<> file 標準入力 (あるいはファイル記述子 n) により、ファイル file を 読み書きするようにします。 .El .Pp 以下のリダイレクトは、しばしば``ヒア・ドキュメント(here-document)''と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter here-doc-text... delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォー ト) されていた場合、here-doc-text の内容をリテラルとして扱います。そ うでない場合、パラメータ展開、コマンド置換、数値演算 (「展開」の節で説 明します) を適用します。演算子が (``<<'' でなく) ``<<-'' の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 -コマンドには、シェル関数、組込みコマンド、通常プログラムの 3 種類があり、 +コマンドには、シェル関数、組み込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 それぞれのコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に ``name=value'' を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp -組込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 +組み込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp -コマンドが関数でも組込みコマンドでもない場合は、通常のプログラムとみなし +コマンドが関数でも組み込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で "#!" となる「マジックナンバ」でファイルが始まっておらず、 .Fn execve 2 が .Er ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新た にシェルが起動されたかのような効果を得るために、子シェルは自分自身を再 初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、マジッ クナンバのないシェルスクリプトのことを「シェルプロシージャ」と呼んでい て、まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを -調べます。次に、その名前の組込みコマンドがあるかどうかを調べます。 +調べます。次に、その名前の組み込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン(``:'')で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 1 個のピリオドを指定することで明示的に 指示することができます。 .El .Ss コマンドの実行ステータス 各コマンドは終了ステータスを持ち、それにより他のシェルコマンドの動作に 影響を与えることができます。基本的な考え方として、終了ステータス 0 は 通常の終了または成功を示します。0 以外の終了ステータスは失敗、エラーを 意味します。各コマンドのマニュアルにそれぞれの終了ステータスがどのよう -な意味を持つかが記述されているはずです。組込みコマンドと(実行された) +な意味を持つかが記述されているはずです。組み込みコマンドと(実行された) 関数も終了ステータスを返します。 .Pp コマンドがシグナルにより終了(terminate)させられた場合、 終了ステータスは 128 にシグナル番号を加えたものになります。 シグナル番号はヘッダファイル .Aq Pa sys/signal.h に定義されています。 .Ss 複合コマンド(Complex Commands) 複合コマンドは、単純コマンドの組み合わせで作ります。 制御演算子または予約語と組み合わせることで、より大きな複合コマンドを生 成します。一般に、コマンドは以下のうちのいずれかです。 .Bl -item -offset indent .It 単純コマンド .It パイプライン .It リストまたは合成リスト(compound-list) .It 合成コマンド(compound command) .It 関数定義 .El .Pp 特に指定のない場合、コマンドの終了ステータスは最後に実行された 単純コマンドの終了ステータスとなります。 .Ss パイプライン パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。 最後のコマンドを除くすべてのコマンドの標準出力は、次のコマンドの標準入力に 接続されます。 最後のコマンドの標準出力は、通常通り、シェルから受け継がれます。 .Pp パイプラインの形式は次のとおりです。 .Bd -literal -offset indent [!] command1 [ | command2 ...] .Ed .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属するリ ダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて下 さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 .Bd -literal -offset indent $ command1 2>&1 | command2 .Ed .Pp は、command1 の標準出力と標準エラー出力の両方を command2 の標準入力に 接続します。 .Pp \&; または改行文字を終端として用いることにより、直前の AND-OR リスト (後述) を 順次実行します。& は、直前の AND-OR リストを非同期に実行します。 .Pp 注: 他のいくつかのシェルと異なり、パイプラインの各プロセスは 起動したシェルの子プロセスとなります (シェルの組み込みコマンドである ときは別です。その場合は現在のシェルで実行されます --- ただし 環境に対して行った操作は取り消されます)。 .Ss バックグラウンドコマンド -- & コマンドが制御演算子 & で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 .Ss リスト -- 一般的な話 リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいず れかで終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始しま す。その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開 始します。 .Ss 短絡リスト演算子(Short-Circuit List Operators) ``&&'' と ``||'' は AND-OR リスト演算子です。 ``&&'' は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 ``||'' も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 ``&&'' と ``||'' の優先順位は 同じです。 .Ss 制御構造 -- if, while, for, case if コマンドの文法は以下のとおりです。 .Bd -literal -offset indent if list then list [ elif list then list ] ... [ else list ] fi .Ed .Pp while コマンドの文法は以下のとおりです。 .Bd -literal -offset indent while list do list done .Ed .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し 実行します。until コマンドも同様に実行しますが、 単語 while の代わりに単語 until を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp for コマンドの文法は以下のとおりです。 .Bd -literal -offset indent for variable in word... do list done .Ed .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを 繰り返し実行します。do と done は ``{'' と ``}'' で置き換えることができます。 .Pp break と continue コマンドの文法は以下のとおりです。 .Bd -literal -offset indent break [ num ] continue [ num ] .Ed .Pp break は内側から num 個の for ループまたは while ループを終了します。 continue は、 num 個目のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. -これらのコマンドは組込みコマンドとして実装されています。 +これらのコマンドは組み込みコマンドとして実装されています。 .Pp case コマンドの文法は以下のとおりです。 .Bd -literal -offset indent case word in pattern) list ;; ... esac .Ed .Pp pattern は、1 つあるいは複数のパターン (後述の「シェルパターン」を参照 のこと) を ``|'' で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 -(list) のなかの組込みコマンドは、現在のシェルには影響を与えません。 +(list) のなかの組み込みコマンドは、現在のシェルには影響を与えません。 2 つめの形式では新たなシェルを fork しないので、やや効率が良くなります。 このようにして複数コマンドをグループ化することで、 あたかも単一プログラムであるかのように、それらの出力をまとめて リダイレクトすることができます。 .Bd -literal -offset indent { echo -n "hello"; echo " world"; } > greeting .Ed .Ss 関数 関数定義の構文は以下のとおりです。 .Bd -literal -offset indent name ( ) command .Ed .Pp 関数定義は実行可能文の一種です。実行されると、名前 name の関数 が定義され、終了ステータスとして 0 を返します。command は 通常、``{'' と ``}'' で囲まれたリストです。 .Pp local コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 .Bd -literal -offset indent local [ variable | - ] ... .Ed .Pp -local コマンドは、組込みコマンドとして実装されています。 +local コマンドは、組み込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名 前の変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ を用います。すなわち、関数 f に局所的な変数 x を作成し、関数 f から関 数 g を呼び出した場合、関数 g 内部での変数 x に対する操作は大域変数 x ではなく、関数 f で宣言された変数 x への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは ``-'' だけです。 ``-'' を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp return コマンドの文法は以下のとおりです。 .Bd -literal -offset indent return [ exitstatus ] .Ed .Pp -return は現在実行中の関数を終了させます。return は組込みコマンドとして +return は現在実行中の関数を終了させます。return は組み込みコマンドとして 実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp ユーザが設定する変数は、アルファベット、数字、アンダースコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ 位置パラメータは、数字 (n > 0) によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 -組込みコマンド +組み込みコマンド .Xr set 1 により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang .It * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 される場合、展開結果は各位置パラメータの間を変数 IFS の先頭の文字 (IFS が設定されていない場合は空白文字) で区切った単一の文字列になります。 .It @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 @ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が ``abc''、$2 が ``def ghi'' であっ た場合、"$@" は次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed .It # 位置パラメータの数に展開されます。 .It ? 最後に実行したパイプラインの終了ステータスに展開されます。 .It - (ハイフン) 現在のオプションフラグ (1文字オプション名をつないだ文字列) -に展開されます。起動時に指定されたもの、組込みコマンド set で指定した +に展開されます。起動時に指定されたもの、組み込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .It $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 .It ! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 .It 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の パラメータ @ の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It 変数 IFS の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It パス名展開 (-f オプションが無効の場合) .It クォート削除 .El .Pp 文字 $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) 引用されていないチルダ文字 (~) で始まる単語は、チルダ展開の対象になります。 チルダ文字からスラッシュ文字または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合(たとえば ~/foobar)、チルダ文字は変数 HOME の値(現在のユーザ のホームディレクトリ)に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp ここで、expression は対応した `}' までのすべての文字です。対応する`}' を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に 狭まれた `}' や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧({})で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It パラメータが @ の場合を除き、フィールド分割は適用されません。 .El .Pp さらに、以下の形式を用いることにより、パラメータ展開の結果に修正を加える ことができます。 .Bl -tag -width Ds .It Li ${parameter:-word} デフォルト値への置換: パラメータ parameter が設定されていないか空の値 を持つ場合、word を展開した結果に置換されます。さもなければ、パラメー タ parameter の値に置換されます。 .It Li ${parameter:=word} デフォルト値の代入: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果が parameter に代入されます。最終的にパラメータ parameter の値 に置換されます。位置パラメータや特殊パラメータは、この方法で代入すること はできません。 .It Li ${parameter:?[word]} 空か設定されていないときにエラーとする: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果 (word が省略された場合にはパラメータが設定されていないことを表す デフォルトのメッセージ) が標準エラー出力に書き出され、 シェルは非 0 の終了ステータスで終了します。 それ以外の場合、パラメータ parameter の値に置換されます。対話的シェルの場合は 必ずしも終了しません。 .It Li ${parameter:+word} 代替値の使用: パラメータ parameter が設定されていないか空の値を持つ場合、空の値に 置換されます。さもなければ、word を展開した結果に置換されます。 .Pp 以上のパラメータ展開において、`:' を用いた場合はパラメータが設定されていない かまたは空の値であることが検査され、`:' を省略するとパラメータが 設定されていないことのみを検査します。 .It Li ${#parameter} 文字列の長さ: パラメータの値の(文字列としての)長さに置換されます。 .Pp 以下の 4 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 において、パターンは正規表現ではなく、パターンマッチ記法 (シェルパターン の項を参照) が用いられます。パラメータが` * 'または` @ 'の場合、展開の結果 がどうなるかは規定しません (unspecified)。 パラメータ展開全体をダブルクォートで囲んでも パターンは引用されません。中括弧のなかで引用することにより パターンを引用することができます。 .It Li ${parameter%word} 最短後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter%%word} 最長後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .It Li ${parameter#word} 最短前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter##word} 最長前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .El .Ss コマンド置換 コマンド置換により、コマンド名自身をコマンドの出力で置き換えることができます。 コマンド置換は、以下のように、コマンド command を囲った場合、 .Bd -literal -offset indent $(command) .Ed .Pp または(``バッククォート'' バージョン)、 .Bd -literal -offset indent `command` .Ed .Pp とした場合に行なわれます。 シェルは、コマンド command をサブシェルの環境で実行し、command が標準出力 に出力したものから最後の改行文字を削除した結果で置換します (最後以外の 改行は削除しません。ただし、フィールド分割の際に、IFS の値や引用のされかたに よっては、ここで残った改行文字が結局は空白に置換されることもあります)。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 +.Pp +あるいは、数式評価は組み込みの +.Xr let 1 +で実行可能です。この文法は +.Xr expr 1 +のものと同じです。 +.Xr exp 1 +は +.Xr let 1 +の別名です。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) -f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Xr case 1 コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは ``!''、 ``*''、 ``?''、 ``['' です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 (``*'') は、どのような文字列とも一致します。 クエスチョンマーク文字 (``?'') は、任意の文字 1 文字と一致します。 左大括弧 (``['') は文字クラスを開始します。 文字クラスの最後は右大括弧 (``]'') です。``]'' がない場合 は、``['' は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク (``!'') を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 ``]'' を含めるには、 ``]'' を文字クラスの最初 (``!'' を 置く場合はそのあと) に置きます。 文字クラスにマイナス記号を含めるときも同様で、 リストの最初もしくは最後に置きます。 -.Ss 組込みコマンド +.Ss 組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 -さらに、効率を上げるために組込みされているコマンド (例えば -test(1) +さらに、効率を上げるために組み込まれているかもしれないコマンド (例えば .Xr printf 1 , .Xr echo 1 , .Xr test 1 , 等) もあわせて列挙します。 .Bl -tag -width Ds .It : 終了ステータス 0 (真) を返すヌルコマンドです。 .It \&. file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に .Ql / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 .It alias [ name[=string] ... ] name=string が指定されている場合、シェルは名前 ``name'' を持つ値 ``value'' のエイリアスを定義します。単に ``name'' だけが指定された場合、 エイリアス ``name'' の値が表示されます。引数が指定されない場合、定義さ れているすべてのエイリアスの名前と値を表示します (unalias も参照)。 .It bg [ job ] ... 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 .It command command arg ... -指定された組込みコマンドを実行します (組込みコマンドと同じ名前のシェル関数 +指定された組み込みコマンドを実行します (組み込みコマンドと同じ名前のシェル関数 がある場合に使います)。 .It cd [ directory ] 指定されたディレクトリに移動します (directory 無指定時は $HOME に移動します)。 cd コマンドの 環境に CDPATH 変数があるか、シェル変数 CDPATH が設定されていて、かつ 指定されたディレクトリ directory がスラッシュ文字から始まっていないなら、 CDPATH に列挙されたディレクトリ以下に 指定されたディレクトリ directory がないか検索されます。 CDPATH の形式は PATH と同様です。対話的シェルでは、ユーザ が指定したディレクトリと異なる場所に移動した場合、移動先のディレクトリ名 を表示します。これは、CDPATH の機構が動作した場合と、シンボリックリンクを 辿った場合に発生します。 .It eval string ... 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 .It exec [ command arg ... ] コマンドが省略されない場合、そのシェルプロセスは指定されたプログラムに -置き換えられます (command は、シェル組込みコマンドや関数ではない、本物の +置き換えられます (command は、シェル組み込みコマンドや関数ではない、本物の プログラムでなければなりません)。exec コマンドにおけるリダイレクトは、 永久性を持つと見なされ、 exec コマンド完了後にも引き続き効力を持ちます。 .It exit [ exitstatus ] シェルを終了します。指定された exitstatus は、シェルの終了ステータスに なります。exitstatus が省略された場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 .It export name ... それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 変数のエクスポートを取り消す唯一の方法は、変数を unset することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 .It fc [-e editor] [first [last]] .It fc -l [-nr] [first [last]] .It fc -s [old=new] [first] fc は、対話的シェルにそれ以前に入力されたコマンドの内容を 表示、編集、再実行します。 .Bl -tag -width Ds .It -e editor 編集に際し、指定されたエディタ editor を使用します。 editor は変数 PATH を通して検索できるコマンド名です。 -e が指定されなかった場合は、変数 FCEDIT の値が 用いられます。FCEDIT が設定されていないか空に設定されている場合は EDITOR の値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 .It -l (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に (出力の順番は -r オプションの影響を受けます)出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 .It -n -l で一覧出力する際にコマンド番号を付加しません。 .It -r -l オプションでの一覧や、 編集時 (-l も -s も指定されなかった場合) の順序を反転します。 .It -s エディタを起動せずにコマンドを再実行します。 .It first .It last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド の数は変数 HISTSIZE の値で決まります。 first、last の値は以下のいずれかの形式で指定します。 .It [+]number 正の数で、コマンド番号を指定します。コマンド番号は -l オプションで表示させて 調べることができます。 .It -number 負の数で、指定された数だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 .It string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 もし -s オプションが指定されて ``old=new'' が指定されていなければ、 最初のオペランドにイコール記号(``='')を含めることはできません。 .El .\" 次の行の .Pp はもともとコメントアウトされていた .Pp fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds .It Va FCEDIT 使用するエディタ名 .It Va HISTSIZE アクセス可能なコマンド数 .El .It fg [ job ] 指定されたジョブまたは現在のジョブをフォアグラウンドに移動します。 .It getopts optstring var POSIX に準拠した getopts コマンドです。 この getopts コマンドにより、以前の getopt コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 見つかったオプションの次の引数のインデックスはシェル変数 OPTIND に格納されます。 あるオプションが引数をとる場合、その引数はシェル変数 OPTARG に置かれます。 有効でないオプションに出くわすと、変数 var には `?' がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 .It hash -rv command ... シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 最後に cd コマンドが実行されてから参照されていない項目には アスタリスク文字 (``*'') が表示されます。 この項目は無効になっているかもしれません。 .Pp 引数を指定した場合、hash コマンドは指定したコマンドをハッシュテーブル から削除し (command が関数ではない場合)、その後でそのコマンドを検索します。 -v オプションを指定した場合、発見したコマンドの位置を表示します。-r オ プションを指定した場合、関数以外のすべてのエントリをハッシュテーブルから 削除します。 .It jobid [ job ] ジョブ job 中の各プロセスのプロセス ID を表示します。引数 job が 省略された場合、現在のジョブに対して処理を行います。 .It jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 .It pwd -カレントディレクトリを表示します。組込みコマンドの pwd は +カレントディレクトリを表示します。組み込みコマンドの pwd は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 -組込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 +組み込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 .It Li "read [ -p prompt ] [ -e ] variable ... -p オプションが指定され、かつ標準入力が端末の場合、 prompt をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の 単語分割の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に 残りの単語すべて (IFS の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp -t オプションが指定され、かつ入力がなされる前にタイムアウトすると、 read コマンドは値を割当てずに戻ります。 タイムアウト値の後にはオプションで 's', 'm', 'h' のいずれかの一文字 を付けることが出来、それぞれ秒, 分, 時間を陽に指定します。 どれも指定しない場合には 's' であるものとします。 .Pp -e オプションを指定すると、入力中のバックスラッシュ文字を特別扱いします。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 文字が IFS に含まれていても、IFS の文字でないかのように扱われます。 .It readonly name ... 指定された名前の変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp 引数が指定されない場合、読み出し専用になっている変数の名前の一覧が表示され ます。 .It Li "set [ { -options | +options | -- } ] arg ... set コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It 引数を指定しなかった場合、すべてのシェル変数の名前と値の一覧を表示します。 .It options が指定された場合、「引数リスト処理」の節で説明した方法で、 指定されたオプションフラグを設定あるいは解除します。 .It 第 3 の用法は、シェルの位置パラメータを変更する際に使用します。オプションの 設定を変更せずに位置パラメータのみを変更したい場合は set コマンドへの最初 の引数として ``--'' を指定します。arg が指定されない場合、 すべての位置パラメータはクリアされます (``shift $#'' を実行することと 等価です)。 .El .Pp .It setvar variable value 変数に値を代入します。(一般に、setvar を使うよりも variable=value と書くほう が望ましいといえます。setvar は、関数内で、パラメータとして渡された名前を持つ 変数に値を代入するためのものです。) .It shift [ n ] 位置パラメータを n 回シフトします。1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 .It trap [ action ] signal ... シェルが指定されたシグナル signal を受けとったときに、action を解析し実行する ように設定します。シグナルはシグナル番号で指定します。action は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して trap コマンドを使用しても効果はありません。 .It type [name] ... 各 name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル -の組込みコマンド、コマンド、痕跡つきエイリアス(tracked alias)、最後に +の組み込みコマンド、コマンド、痕跡つきエイリアス(tracked alias)、最後に not found (見つからず)があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマ ンドの完全なパス名が印刷されます。 .It ulimit [ -HSacdflmnust ] [ limit ] リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 ``limit'' が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp ``-H'' が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション ``-S'' を指定した場合はソフトリミットになります。 リミット値を表示する場合、``-S'' か ``-H'' のいずれか一方だけしか 指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション ``-a'' を指定すると全リソースの設定値が表示されます。 この場合、パラメータ ``limit'' は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds .It -c coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 .It -d datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 .It -f filesize ファイルの最大サイズ。512 バイトブロック単位。これがデフォルトです。 .It -l lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 .It -m memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 .It -n nofiles あるプロセスがオープンできるファイル記述子の最大数。 .It -s stacksize スタックセグメントサイズの最大値。キロバイト単位。 .It -t time 各プロセスで消費できる CPU 時間の最大値。秒単位。 .It -u userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El .It umask [ mask ] umask の値 ( .Xr umask 2 を参照) を、指定された 8 進数の値に設定します。引数が 省略された場合、現在の umask の値が表示されます。 .It unalias [-a] [name] ``name'' が指定された場合、指定された名前のエイリアスを削除します。 ``-a'' オプションが指定された場合、すべてのエイリアスを削除します。 .It unset name ... 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 .It wait [ job ] 指定されたジョブ job が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび -コマンド履歴 (組込みコマンド fc 参照) を vi モードのコマンド行編集機能 +コマンド履歴 (組み込みコマンド fc 参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 キー によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja/man/man1/soelim.1 b/ja/man/man1/soelim.1 index 14375193a0..742568f8d8 100644 --- a/ja/man/man1/soelim.1 +++ b/ja/man/man1/soelim.1 @@ -1,86 +1,86 @@ .\" Copyright (c) 1980, 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. .\" .\" @(#)soelim.1 8.1 (Berkeley) 6/6/93 .\" jpman %Id: soelim.1,v 1.2 1997/05/04 13:39:07 horikawa Stab % .\" .Dd June 6, 1993 .Dt SOELIM 1 .Os BSD 3 .Sh 名称 .Nm soelim .Nd nroff への入力ファイルに \&.so が含まれないようにする .Sh 書式 .Nm .Op Ar .Sh 解説 .Nm は、指定したファイルまたは標準入力を読み込み、次の形式の .Xr ntoff 1 テキスト組み込みディレクティブを処理します: .Pp .Dl \&.so somefile .Pp ディレクティブは、入力ファイルの行頭に出現する必要があります。 .Xr tbl 1 と言ったプログラムは通常ディレクティブ行を処理しないので、便利です; 別々のファイルに分かれた表を 1 つのドキュメントにまとめることができます。 .Pp 単一のマイナス .Ql Fl で構成される引数は、標準入力に対応するファイル名とされます。 .Pp -組込みは +組み込みは .Ql \e. の代わりに .Ql \e' を使用して抑える事ができます。 例: .Pp .Dl \'so /usr/lib/tmac.s .Pp .Nm の使用例 .Pp .Bd -literal -offset indent -compact soelim exum?.n \&| tbl \&| nroff \-ms \&| col \&| lpr .Ed .Sh 関連項目 .Xr colcrt 1 , .Xr more 1 .Sh バグ 組み込みコマンドの形式に疑問が残ってはなりません \- ファイル名の前には唯 1 つの空白があり、後には空白を付けてはなりません。 .Sh 歴史 .Nm は .Bx 3.0 から登場しました。 diff --git a/ja/man/man1/startslip.1 b/ja/man/man1/startslip.1 index 789d4e7464..81d65dd5cb 100644 --- a/ja/man/man1/startslip.1 +++ b/ja/man/man1/startslip.1 @@ -1,208 +1,211 @@ .\" Copyright (c) 1990, 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. .\" .\" @(#)startslip.1 8.1 (Berkeley) 6/5/93 +.\" %Id: startslip.1,v 1.10.2.2 1998/08/12 06:37:07 charnier Exp % +.\" .\" jpman %Id: startslip.1,v 1.3 1997/08/19 03:06:09 h-nokubi Stab % -.\" %Id: startslip.1,v 1.10.2.1 1997/03/03 07:01:52 mpp Exp % .\" .Dd June 5, 1993 .Dt STARTSLIP 1 .Os BSD 4.4 .Sh 名称 .Nm startslip .Nd 電話をかけ、slip サーバにログインする .Sh 書式 .Nm startslip .Op Fl d .Op Fl b Ar speed [ .Fl s Ar string1 .Op Fl s Ar string2 Op Ar ... ] .Op Fl h .Op Fl l .Op Fl L .Op Fl A Ar annexname .Op Fl U Ar upscript .Op Fl D Ar downscript .Op Fl t Ar script_timeout .Op Fl W Ar maxtries .Op Fl w Ar retry_pause .Op Fl K Ar keepalive .Op Fl O Ar outfill .Op Fl S Ar unit .Ar device user passwd .Sh 解説 .Pp .Nm startslip は指定された .Ar device をオープンします。 ひとたびキャリアが確認されると(モデム制御が有効にされている場合)、 .Nm startslip は指定された .Ar user および .Ar password でのログインを試みます。 Annex オプション ( .Fl A 参照) が指定されない限り、 標準的な login: および Password: の方式を想定します。 成功すると、 .Nm はその device を slip の回線規約に設定し、 .Ar upscript を呼び出してウェイトモードに入ります。 キャリアが落ちる (モデム制御有効の場合) あるいは .Dv SIGHUP シグナルがに送られると、 .Nm startslip は device をクローズし、 .Ar downscript を呼び出し、ダイアルアップとログインのシーケンスを繰り返し試みます。 .Dv SIGTERM シグナルが送られると、 .Nm startslip は device をクローズし、 .Ar downscript を呼び出し、そして終了します。 同一 device に対して .Nm startslip が 2 回呼び出されると、処理を行う前に ひとつめの .Nm startslip が .Dv SIGTERM シグナルによって kill されます。 .Pp 利用可能オプション: .Bl -tag -width Ar .It Fl d 行おうとしている処理に関するデバッグ情報を出力します。 .It Fl b Ar speed .Ar device に用いるボーレートを決定します。デフォルトは 9600 です。 .It Fl t Ar script_timeout ログインスクリプトのタイムアウトを秒単位で指定します。デフォルトは 90 です。 .It Fl w Ar retry_pause 接続再試行の間の待ち時間を秒単位で指定します(再試行のたびに長くなります)。 デフォルトは 60 です。 .It Fl W Ar maxtries 一つのセッション内で接続再試行する最大回数を設定します。 デフォルトは 6 回です。0 を指定すると無限回という意味になります。 .It Fl s Ar stringN オプション文字列 .Ar stringN を .Ar device に書き出します。改行は自動的に付加されます。 ダイアルアップモデムの場合、 この文字列を用いてダイアルシーケンスを指定します。 デフォルトでは文字列は全く書き出しません。 複数個の .Fl s Ar stringN 引数を指定して、例えばいくつかのホストの電話番号を 接続試行毎に切り替えるように指定できます。 .It Fl A Ar annexname Xylogics の Annex box に接続しているものとみなし、引数 .Ar user および .Ar passwd を用いて適切なダイアログを行います。引数 .Ar annexname は Annex プロンプトとマッチさせて接続が確立したことを判断するのに 用いる文字列です。 .It Fl h .Ar device に対してハードウェアフロー制御 (CTS/RTS) を用います。 デフォルトではフロー制御は行いません。 .It Fl l .Ar device に対してのモデム制御 (キャリアを待つ およびキャリアドロップの検出) を 無効化します。 デフォルトではモデム制御は有効になっています。 .It Fl U Ar upscript SLIP インタフェースが接続されたときに実行するスクリプトを指定します。 このスクリプトには ifconfig, route その他適切なコマンドを含めることが できます。 スクリプトには "slX up" が引数として渡されます。 -デフォルトは "/sbin/ifconfig" です。 +デフォルトは +.Pa /sbin/ifconfig +です。 ダイアルシーケンス番号 ( .Fl s 参照) は環境変数 -.Dv LINE +.Ev LINE を通じて渡されます。 .It Fl D Ar downscript SLIP インタフェースが切断されたときに実行するスクリプトを指定します。 スクリプトには引数として "slX down" が渡されます。 デフォルトは "/sbin/ifconfig" です。 ダイアルシーケンス番号 ( .Fl s 参照) は環境変数 .Dv LINE を通じて渡されます。 .It Fl K Ar keepalive SLIP の "keep alive" タイムアウトの秒数を設定します。 この時間内に FRAME_END を受信しなければ、再接続が行われます。 向こう側からのアクティブな "out fill" タイムアウトを期待します。 デフォルトではタイムアウトなしです。 .It Fl O Ar outfill SLIP の "out fill" タイムアウトの秒数を設定します。 この時間内に FRAME_END を少なくとも 1 回送信するようにします。 向こう側で "keep alive" タイムアウトが設定されている必要があります。 デフォルトではタイムアウトなしです。 .It Fl S Ar unit SLIP ユニットナンバを直接設定します。 2 つのインタフェースが同一のナンバを使っていることはチェックしないので、 注意して使用して下さい。 デフォルトではダイナミックな割り当てを行います。 .It Fl L UUCP 形式のデバイスロックを行います。 既に UUCP ロックを行っている外部プログラムから .Nm startslip を実行する場合以外は、これが必要です。 デフォルトの場合、そのようなプログラムを満足させる UUCP ロックは行いません。 .El .Sh 関連ファイル .Bl -tag -width /var/run/startslip..pid -compact .It Pa /var/run/startslip..pid PID がここに格納されます。 .Sh 関連項目 .Xr uustat 1 , .Xr slattach 8 , .Xr sliplogin 8 , /usr/share/examples/startslip .Sh 歴史 .Nm startslip は .Bx 4.4 で登場しました。 diff --git a/ja/man/man1/tconv.1 b/ja/man/man1/tconv.1 index 5c1060c24f..2dbbc2023a 100644 --- a/ja/man/man1/tconv.1 +++ b/ja/man/man1/tconv.1 @@ -1,168 +1,168 @@ .\" @(#) mytinfo tconv.1 3.2 92/02/01 public domain, By Ross Ridge -.\" jpman %Id: tconv.1,v 1.3 1997/09/21 06:56:54 konuma Stab % .\" %Id: tconv.1,v 1.5.2.1 1997/08/14 06:37:58 charnier Exp % .\" +.\" jpman %Id: tconv.1,v 1.3 1997/09/21 06:56:54 konuma Stab % .Dd February 1, 1992 .Dt TCONV 1 .Os .Sh 名称 .Nm tconv .Nd termcap, terminfo ソースと terminfo バイナリを相互変換する .Sh 書式 .Nm tconv .Op Fl b .Op Fl c Op Fl OUGd .Op Fl i .Op Fl B Op Fl D Ar dir .Op Fl I .Op Fl k .Op Fl V .Op Fl t Ar term .Op Ar file .Nm tic .Op Ar file .Nm captoinfo .Op Fl t Ar term .Op Fl OUGdk .Op Ar file .Sh 解説 .Nm tconv は、termcap、terminfo ソースと .Em tinfo ライブラリが使用する terminfo バイナリ の 3 つの端末記述を互いに変換します。 このプログラムは System V の .Xr captoinfo 1 および .Xr tic 1 と同じ機能を提供します。 また、System V の .Xr infocmp 1 の機能の 1 つと同じく、terminfo バイナリから terminfo ソース リスティングを出力するのに使うこともできます。 .Pp 翻訳オプション .Bl -tag -width indent .It Fl c termcap から変換します。 .It Fl i terminfo ソースから変換します。 .It Fl b terminfo バイナリから変換します。 .It Fl B terminfo バイナリに変換します。 .It Fl I terminfo ソースに変換します。 .El .Pp ファイルを指定する場合、 .Fl c または .Fl i オプションのどちらか一方と、翻訳されるファイルの完全な名前 を指定する必要があります。 ファイル名を指定しなかった場合、入力オプションは単に、 翻訳されるべき端末がある、要求された型の記述がありそうな場所を 検索するのを制限するだけに用いられます。 (すなわち、 .Fl c オプション指定時には .Ev TERMCAP 環境変数と .Pa /usr/share/misc/termcap を、 .Fl i オプション指定時には .Ev TERMINFO 環境変数と .Pa /usr/lib/terminfo を検索します。) それ以外の時は .Nm は全ての利用可能なデータベースを検索します。 もし、 .Fl I と .Fl B のどちらのオプションも指定していない場合は、 .Fl I オプションを指定したものと仮定します。 .Fl B オプションを指定した場合、コンパイル結果の出力は terminfo データベースに 出力され、指定していない場合は標準出力に出力されます。 .Pp terminfo バイナリから terminfo バイナリへの翻訳はできません。 terminfo ソースから terminfo ソースへの翻訳は可能ですが、 .Em use= フィールドで参照している記述が、出力される端末記述に展開されるような場合を 除いては、ほとんどの場合あまり役に立ちません。 .Pp .Nm は標準 termcap の全てのパラメータ化された文字列を terminfo フォーマットに 翻訳できるはずですが、GNU の %a コードを使った複雑な文字列は難しすぎて 翻訳できません。 もし、 .Nm が、termcap 文字列が 既に terminfoフォーマットに翻訳されていると見なした場合 (%p コードが文字列に含まれている場合)、 それを翻訳しようと試みることはありません。 パラメータを持たない文字列型機能記述は翻訳されません。 .Pp -Termcap オプション +termcap オプション: 以下のオプションは、termcap エントリを翻訳するとき ( .Fl c オプションを指定したとき) に利用可能です。 .Bl -tag -width indent .It Fl d 欠けている機能記述を、一切デフォルトで補いません。 .It Fl O 時代遅れの termcap 機能記述を含めます。 .It Fl G GNU の機能記述を含めます。 .It Fl U UW の機能記述を含めます。 .El .Pp その他のオプション .Bl -tag -width indent .It Fl k ファイルを翻訳する時にコメントを保存します。 .It Fl V バージョン情報を表示して終了します。 .It Fl D Ar dir terminfo バイナリを置くディレクトリ。 .It Fl t Ar term 翻訳の対象となる端末の名前。 .El .Pp もし .Fl t オプションで端末名を指定しなかった場合、翻訳の対象となる端末名は環境変数 .Ev TERM から取られます。 .Sh 関連ファイル .Bl -tag -width /usr/lib/terminfo/terminfo.src -compact .It Pa /usr/lib/terminfo terminfo バイナリを読み書きするデフォルトの場所。 .It Pa /usr/lib/terminfo/terminfo.src terminfo ソースファイルのデフォルトのファイル名。 .It Pa /etc/termcap termcap データベースのデフォルトのファイル名。 .El .Sh 関連項目 .Xr curses 3 , .Xr termcap 3 , .Xr term 5 , .Xr termcap 5 , .Xr terminfo 5 . .Sh 診断 ファイルを翻訳しているときの警告メッセージの行番号は エントリ内の警告の原因となった行ではなく、そのエントリの最後の行の番号です。 .Sh バグ もっと多くの警告を出力できるはずです。 .Nm は termcap を翻訳できません。 生成されたバイナリはキャンセルされた機能記述をキャンセルされた 物とマークしたうえで含めていますが、これは System V Release 2.0 の terminfo と非互換です。 diff --git a/ja/man/man1/top.1 b/ja/man/man1/top.1 index 1c7a156823..2010490cf4 100644 --- a/ja/man/man1/top.1 +++ b/ja/man/man1/top.1 @@ -1,373 +1,381 @@ .\" NOTE: changes to the manual page for "top" should be made in the .\" file "top.X" and NOT in the file "top.1". .\" jpman %Id: top.1,v 1.3 1997/08/19 03:06:41 h-nokubi Stab % .nr N %topn% .nr D %delay% .TH TOP 1 Local .UC 4 .SH 名称 top \- CPU プロセスの上位リストに関する情報を表示/更新する .SH 書式 .B top [ -.B \-SbiInqu +.B \-SbiInqut ] [ .BI \-d count ] [ .BI \-s time ] [ .BI \-o field ] [ .BI \-U username ] [ .I number ] .SH 解説 .\" This defines appropriate quote strings for nroff and troff .ds lq \&" .ds rq \&" .if t .ds lq `` .if t .ds rq '' .\" Just in case these number registers aren't set yet... .if \nN==0 .nr N 10 .if \nD==0 .nr D 5 .I top はシステム内の上位 .if !\nN==-1 \nN プロセスを表示し、その情報を定期的に更新します。 .if \nN==-1 \ \{\ 標準出力がインテリジェント端末 (以下を参照) なら、 デフォルトでは端末画面に合わせて表示プロセス数を決定します。 それ以外の場合、適切な数のプロセス (約 20 プロセス) が表示されます。 .\} 生の CPU パーセンテージを用いてプロセス順位を決めます。もし .I number が指定されると、デフォルト値に代えて、上位 .I number プロセスが表示されます。 .PP .I top の動作は高機能端末とそうでない端末とで異なります。 この差異によって、いくつかのオプションのデフォルト値も変わってきます。 以下の部分では、\*(lqインテリジェント\*(rq 端末とは、 カーソルアドレシング、画面クリアおよび行末までのクリアをサポートしている 端末のことを指します。 逆に \*(lqダム\*(rq 端末とは、そのような機能をサポートしていないものを いいます。 .I top の出力をファイルにリダイレクトすると、 あたかもダム端末上で動作しているように振る舞います。 .SH オプション .TP .B \-S システムプロセスも画面に表示します。 pager や swapper といったシステムプロセスは通常、表示されませんが、 このオプションによりそれらも見えるようになります。 .TP .B \-b \*(lqバッチ\*(rq モードにします。 バッチモードでは、端末からの入力は全て無視されます。 ただし割り込みキャラクタ (^C や ^\e など) は有効です。 ダム端末上で実行する場合や出力先が端末以外の場合は、これがデフォルトです。 .TP .B \-i \*(lq対話的実行\*(rq モードにします。 対話的実行モードでは、あらゆる入力は直ちに読み込んで処理されます。 どのキーがどういう機能をもっているかについては、 \*(lq対話的実行モード\*(rq のセクションを参照して下さい。 コマンドが処理されると、そのコマンドが理解されなかった場合でも、 画面は直ちに更新されます。 出力先がインテリジェント端末の場合は、これがデフォルトです。 .TP .B \-I アイドル状態のプロセスを表示しません。 デフォルトでは、 top はアクティブプロセスもアイドルプロセスも両方とも表示します。 .TP +.B \-t +.I top +プロセスを表示しないようにします。 +.TP .B \-n \*(lq非対話的実行\*(rq モードにします。 これは \*(lqバッチ\*(rq モードと同じです。 .TP .B \-q .I top を -20 に renice し、より高速に実行されるようにします。 この機能は、システムが大変重い場合に、問題箇所を発見する可能性を高めるために 用いられます。 このオプションは root のみ使用可能です。 .TP .B \-u uid 値をユーザ名に変換する時間を割かないようにします。 通常、 .I top は必要に応じてファイル \*(lq/etc/passwd\*(rq を読み、 出現する全てのユーザ id 値をログイン名に変換します。 このオプションはその変換を全て止め、できるだけ実行時間を低減させます。 ログイン名の代わりに uid 値が表示されます。 .TP .BI \-d count .I count 回だけ表示し、その後終了します。 1 回の表示とは、1 回の画面更新のことです。 このオプションにより、ユーザは希望する回数だけ状況を表示し、 その後自動的に .I top を終了させることができます。 インテリジェント端末では、表示回数の上限は設定されていません。 ダム端末ではデフォルト値は 1 回です。 .TP .BI \-s time 画面更新間隔を .I time 秒に設定します。デフォルトの画面更新間隔は \nD 秒です。 .TP .BI \-o field プロセス表示領域を指定したフィールドによってソートします。 フィールド名には出力で示されているカラム名を用いますが、小文字で指定します。 しばしば用いられる値は \*(lqcpu\*(rq, \*(lqsize\*(rq, \*(lqres\*(rq, \*(lqtime\*(rq ですが、これは OS によっても異なります。 必ずしも全ての OS でこのオプションがサポートされているわけではないことに 注意して下さい。 .TP .BI \-U username ユーザ .IR username が所有しているプロセスのみ表示します。 現在のところ、このオプションはユーザ名指定のみ可能で、uid 値は指定できません。 .PP .I count と .I number はいずれも \*(lq無限\*(rq を指定でき、 その場合、それらは可能な限り引き延ばされます。 これは、キーワード \*(lqinfinity\*(rq, \*(lqmaximum\*(rq, \*(lqall\*(rq のいずれかの、 一意に識別可能な先頭からの部分文字列を指定することで行われます。 実際、インテリジェント端末での .I count のデフォルト値は .BI infinity となっています。 .PP コマンドラインのオプションを調べる前に、 環境変数 .B TOP が調べられます。これによりユーザ自身のデフォルト値を設定できます。 表示プロセス数も環境変数 .BR TOP で指定可能です。 オプション .BR \-I , .BR \-S , -.B \-u +.BR \-u , +.B \-t は実際はトグルオプションです。これらのオプションを 2 回指定すると、 最初の指定を無効にします。 ですから、環境変数 .B TOP を \*(lq\-I\*(rq と設定しているユーザは、 \*(lqtop \-I\*(rq とすることでアイドルプロセスの状況を見ることができます。 .SH 対話的実行モード \*(lq対話的実行モード\*(rq で動作している場合、 .I top は端末からコマンドを読み込み、それに応じて動作を行います。 このモードでは端末は \*(lqCBREAK\*(rq モードに設定され、 入力文字が速やかに処理されるようになります。 .I top の表示と表示の間、 つまり .I top が .I time 秒が経過するのを待っている間、ほとんどいつでもキー入力可能です。 実際キーが押されると、そのコマンドは直ちに処理され、 画面が更新されます (そのコマンドが指示した変更も反映されます)。 これはコマンドが正しくない場合にも行われます。 画面を更新している最中にキーが押されると、 .I top は画面更新を終らせて、そのコマンドを処理します。 コマンドによっては更に情報の指定が必要になるものもありますが、 その場合、それに応じてユーザに入力が求められます。 その情報を入力する間、ユーザの削除キーと行削除キー ( .IR stty コマンドで設定される) が利用でき、改行により入力が完了します。 .PP 現在のところ、以下のコマンドが利用可能です (^L は control-L を表します): .TP .B ^L 画面を再描画します。 .IP "\fBh\fP\ or\ \fB?\fP" コマンド一覧 (ヘルプ画面) を表示します。 .TP .B q .I top を終了します。 .TP .B d 表示する画面数を変更します (新しい数値入力が求められます)。 次回の表示が 1 回目となります。ですから .B d1 と入力すると、 .I top は 1 回表示して直ちに終了します。 .TP .B n or # 表示するプロセス数を変更します (新しい数値入力が求められます)。 .TP .B s 表示間隔の秒数を変更します (新しい数値入力が求められます)。 .TP .B k プロセスリストにシグナル (デフォルトでは \*(lqkill\*(rq) を送ります。 .IR kill (1) コマンドと同様の働きをします。 .TP .B r プロセスリストの優先度 (\*(lqnice\*(rq 値) を変更します。 .IR renice (8) コマンドと同様の働きをします。 .TP .B u 指定したユーザ名のユーザが所有するプロセスのみ表示します (ユーザ名入力 が求められます)。 ユーザ名として単に \*(lq+\*(rq が指定された場合、 全ユーザのプロセスが表示されます。 .TP .B e 前回の .BR k ill または .BR r enice コマンドで生じたシステムエラーがあれば、そのリストを表示します。 .TP .B i (または .BR I ) -アイドルプロセスの表示有無を切替えます。 +アイドルプロセスの表示有無を切り替えます。 +.B t +.I top +の表示有無を切り替えます。 .SH 表示 実際の表示画面は、そのマシンで動作している Unix の種類によって異なります。 ここでの説明は、この特定マシンで動作する top コマンドの出力と 厳密には合っていないかもしれません。 相違点はこのマニュアルの終りに示してあります。 .PP 表示画面の先頭数行にはシステム状態に関する情報として、 プロセスに割り当てられた最終プロセス ID (ほとんどのシステム)、 3 種のロードアベレージ、現在時刻、存在するプロセス数、 各状態 (sleep 中、実行中、実行開始中、ゾンビ、停止中) のプロセス数、 各プロセッサ状態 (ユーザ, nice, システム, アイドル) で消費した時間の割合 等が表示されます。 物理メモリおよび仮想メモリの割り当てに関する情報も表示されます。 .PP 画面の残りの部分には各プロセスに関する情報が表示されます。 表示項目は、内容的には .IR ps (1) に似ていますが、正確には同じではありません。 PID はプロセス id、USERNAME はプロセス所有者名 ( .B \-u 指定時は UID カラムが USERNAME に取って替わる)、 PRI は現在のプロセス優先度、 NICE は nice 値 (\-20 から 20 までの範囲)、 SIZE はプロセスサイズの合計 (text, data, stack)、 RES は現在のメモリ常駐量 (SIZE と RES はいずれもキロバイト単位)、 STATE は現在の状態 (\*(lqsleep\*(rq, \*(lqWAIT\*(rq, \*(lqrun\*(rq, \*(lqidl\*(rq, \*(lqzomb\*(rq, \*(lqstop\*(rq のいずれか)、 TIME はプロセスが消費したシステム時間およびユーザ時間の秒数、 WCPU は (もしあれば) 重み付き CPU パーセンテージ (これは .IR ps (1) が CPU として表示するものと同じ)、 CPU は生のパーセンテージで、プロセス順序を決めるソート処理に用いられるもの、 そして COMMAND はプロセスが現在実行しているコマンド名です (もしプロセスが スワップアウト中なら、このカラムには \*(lq\*(rq という印がつく)。 .SH 注意 \*(lqABANDONED\*(rq 状態 (カーネル中では \*(lqSWAIT\*(rq 状態として 知られています) は捨て去られたものゆえ、この名称がついています。 プロセスはこの状態で終るべきではありません。 .SH 作者 William LeFebvre, EECS Department, Northwestern University .SH 環境変数 .DT TOP ユーザが設定できるオプションのデフォルト値 .SH 関連ファイル .DT /dev/kmem カーネルメモリ .br /dev/mem 物理メモリ .br /etc/passwd uid 値をユーザ名に変換するのに使用 .br /kernel システムイメージ .SH バグ .B \-I のデフォルト値が もう一度変更されましたが、私を責めないで下さい。 .I top が全プロセスを表示するわけではないことで大変多くの人が混乱したため、 バージョン 2 の頃と同様、デフォルトでアイドルプロセスも表示することに 決めました。 しかしこの動作に耐えられない人々のために、環境変数 .B TOP に \*(lqデフォルト\*(rq オプションを設定しておく機能を 追加しました (オプションのセクションを参照)。 バージョン 3.0 が持っている振る舞いが必要な人は、環境変数 .B TOP に値 \*(lq\-I\*(rq を設定するだけで OK です。 .PP スワップされたプロセスに対するコマンド名は追跡すべきですが、 それを行うとプログラムの動作が遅くなるでしょう。 .PP .IR ps (1) と同様、 .I top が更新情報を収集している間に事態が変化する可能性があります。 表示内容は現実に近い近似値に過ぎません。 .SH 関連項目 kill(1), ps(1), stty(1), mem(4), renice(8) .SH FreeBSD 2.x 版 .SH メモリに関する説明 Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out .B K: キロバイト。 .TP .B M: メガバイト。 .TP .B %: 1/100。 .TP .B Active: アクティブなページ数。 .TP .B Inact: アクティブでないページ数。 .TP .B Wired: 固定されているページ数。キャッシュされたファイルデータページを含む。 .TP .B Cache: VM レベルのディスクキャッシュに使用しているページ数。 .TP .B Buf: BIO レベルのディスクキャッシュに使用しているページ数。 .TP .B Free: 未使用ページ数。 .TP .B Total: 使用可能なスワップ合計。 .TP .B Free: 未使用スワップ合計。 .TP .B Inuse: 使用中スワップ。 .TP .B In: (直前の表示間隔において) スワップデバイスからページインしたページ数 .TP .B Out: (直前の表示間隔において) スワップデバイスにページアウトしたページ数 diff --git a/ja/man/man5/cvs.5 b/ja/man/man5/cvs.5 index 9cf0c1a3d9..83c2613596 100644 --- a/ja/man/man5/cvs.5 +++ b/ja/man/man5/cvs.5 @@ -1,365 +1,365 @@ .\" jpman %Id: cvs.5,v 1.2 1998/06/13 12:32:50 horikawa Chk % .\" WORD: concurrent version system: コンカレントバージョンシステム [cvs.1,cvs.5] .\" WORD: repository: (CVS の)リポジトリ [cvs.1,cvs.5] .\" WORD: commit: (通常の文中では)コミット [cvs.1,cvs.5] .\" WORD: check out: (通常の文中では)チェックアウト [cvs.1,cvs.5] .\" WORD: wrapper: ラッパ .\" WORD: newsgroup: ニュースグループ [limits.1,patch.1,init.8 のニュース] .\" WORD: history: (CVS の) ヒストリ [cvs.1,cvs.5] .\" WORD: template: テンプレート .TH cvs 5 "12 February 1992" .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. -.SH NAME +.SH 名称 cvs \- コンカレントバージョンシステムのサポートファイル .SH 書式 .hy 0 .na .TP .B $CVSROOT/CVSROOT/commitinfo,v .TP .B $CVSROOT/CVSROOT/cvsignore,v .TP .B $CVSROOT/CVSROOT/cvswrappers,v .TP .B $CVSROOT/CVSROOT/editinfo,v .TP .B $CVSROOT/CVSROOT/history .TP .B $CVSROOT/CVSROOT/loginfo,v .TP .B $CVSROOT/CVSROOT/modules,v .TP .B $CVSROOT/CVSROOT/rcsinfo,v .TP .B $CVSROOT/CVSROOT/taginfo,v .ad b .hy 1 .SH 解説 .B cvs は、ソースディレクトリの階層的な集合を 管理するシステムです。 \fBcvs\fP を使う際のコマンドと手続きは .BR cvs ( 1 ) に記述されています。 .SP .B cvs は、リビジョン管理されたファイルのマスタコピーを含むディレクトリである \fIソースリポジトリ\fP を管理し、 ここから開発者の個人的な \fI作業ディレクトリ\fP へ特定のリビジョンの ファイルをコピーしたり、作業ディレクトリから修正を採り入れたりします。 -ファイルの構造という点から見ると、各ソースリポジトリは +ファイルの構成という点から見ると、各ソースリポジトリは \fB$CVSROOT\fP の直下のサブディレクトリになります。 .SP ここで示すファイルは補助的なファイルであり、 -\fBcvs\fP を利用するにあたってなくてはならないものではありませんが、 -\fBcvs\fP をより柔軟に操作することができるようになります。 +\fBcvs\fP を利用するにあたって必須ではありませんが、 +\fBcvs\fP をより柔軟に操作できるようになります。 .SP \fBcvs\fP により管理されているソースの集合に分かり易い 名前をつけるために、`\|modules\|' を利用できます。 `\|modules\|' が存在しなければ、開発者は \fBcvs\fP コマンドで ファイルを操作する際に完全なパス名 (絶対パスもしくは \fB$CVSROOT\fP からの相対パス) を指定しなければなりません。 .SP `\|\fBcvs commit\fP\|' が実行される際に常に実行されるプログラムを 定義するために、`\|commitinfo\|' ファイルを利用できます。 これらのプログラムは、修正、追加、削除されたファイルが本当に コミットされる準備ができているかどうかをチェックする「コミット前の」 チェックとして用いられます。 このチェックを、ソースリポジトリの一部 (もしくは全体) から 特定の人やグループを除外するために利用している人もいます。 また、変更されたファイルがそのサイトのコーディング規約に 沿っているかどうかを確かめるためにも利用されるでしょう。 .SP ファイルがリポジトリにチェックインされる時や、リポジトリから チェックアウトされる時に使われるラッパコマンドを .B cvs に登録するために、 `\|cvswrappers\|' ファイルを利用できます。 ラッパは CVS に入ってくる、もしくは CVS から出ていくファイルや ディレクトリを加工することができます。 使い方はいろいろありますが、一例としては、 ファイルがチェックインされる前に C ファイルを整形し、 リポジトリ内の全てのコードの見栄えを揃えるという用法があります。 .SP .BR commit 後に常に実行される、 リポジトリ内の変更に関するログエントリを書き込むプログラムを定義するために、 `\|loginfo\|' ファイルを利用できます。 これらのプログラムは、ファイルにログメッセージを追加したり、 電子メールを通じて開発者のグループにログメッセージを送ったり、 特定のニュースグループにログメッセージを投稿したりするために使われます。 .SP .BR tag 操作や .BR rtag 操作の後で実行されるプログラムを定義するために、 `\|taginfo\|' ファイルを利用できます。 これらのプログラムは、 新しいタグ名とそのタグを作成したプログラマ名の一覧ファイルに メッセージを追加したり、 開発者のグループにメールを送ったり、 特定のニュースグループにメッセージを投稿したりするために使われます。 .SP ログメッセージの書式を定義するために、 `\|rcsinfo\|' ファイルを利用できます。 .SP `\|\fBcvs commit\fP\|' のログエントリを編集・確認する際に実行する プログラムを定義するために、 `\|editinfo\|' ファイルを利用できます。 これは `\|rcsinfo\|' の書式指定と共に用いると非常に便利であり、 変更をコミットするユーザが、書式の適切な欄を埋めていることを チェックすることができます。 .SP -\fBupdate\fP の時に無視するファイルのデフォルトの一覧を指定するために、 +\fBupdate\fP の時に無視するデフォルトのファイル一覧を指定するために、 `\|cvsignore\|' ファイルを利用できます。 .SP リポジトリに影響を及ぼす \fBcvs\fP コマンドを記録するために、 - `\|history\|' ファイルを利用できます。 +`\|history\|' ファイルを利用できます。 このファイルを作成するとヒストリが記録されるようになります。 .SH 関連ファイル .TP .B modules `\|modules\|' ファイルは、あなたがソースコードの集合に付けた名前を記録します。 \fBcvs\fP を使って、正しい書式でファイルを `\|\fB$CVSROOT/CVSROOT/modules,v\fP\|' にチェックインすると、 \fBcvs\fP はこれらの定義を利用するようになります。 .SP `\|modules\|' ファイルは、モジュール定義以外にも、空行やコメント (`\|\fB#\fP\|' から始まる行) を含むことができます。 長い行は、行の最後の文字にバックスラッシュ (``\e'') を置くことで 次の行に続けることができます。 .SP \fIモジュール定義\fP は `\|modules\|' ファイルの単一行で、 2 つの書式があります。どちらにおいても \fImname\fP はモジュール名を 表し、行の残りはその定義になります。 .SP \fImname\fP \fB\-a\fP \fIaliases\fP\|.\|.\|. .br これはモジュール \fImname\fP を定義する最も簡単な方法です。 `\|\fB\-a\fP\|' はこの定義が単なる別名 (alias) であることを示します。 \fBcvs\fP は (コマンドの引数として) \fImname\fP が使われると、 代わりに \fIaliases\fP の名前のリストが指定されたものとして扱います。 \fIaliases\fP には、他のモジュール名もしくはパスを指定します。 \fIaliases\fP にパスを指定すると、 \fBcvs\fP の引数に明示的にパスが指定した場合と同様、 `\|\fBcvs checkout\fP\|' は 作業ディレクトリへの全ての中間ディレクトリを作成します。 .SP .nf \fImname\fP [ \fIoptions\fP ] \fIdir\fP [ \fIfiles\fP\|.\|.\|. ] [ \fB&\fP\fImodule\fP\|.\|.\|. ] .fi .SP もっとも単純な場合、この形式のモジュール定義は `\|\fImname dir\fP\|' となります。 これはディレクトリ \fIdir\fP 内のすべてのファイルをモジュール \fImname\fP として定義します。 \fIdir\fP は (\fB$CVSROOT\fP から、ソースリポジトリ内にある) ソースファイルのディレクトリへの相対パスです。 この場合、\fBcheckout\fP 時には作業ディレクトリとして \fImname\fP という単一のディレクトリのみが作成され、 \fIdir\fP が複数ディレクトリ階層を含むパスであろうと、 中間のディレクトリはデフォルトでは作成されません。 .SP モジュール定義の \fIdir\fP の後で \fIfiles\fP を明示的に指定することで、 \fIdir\fP 内の特定のファイルを選択することができます。 \fBmodules\fP にあるサンプル定義は、あるディレクトリの 単一のファイルから定義されるモジュールの例となっています。 ここでは別の例を示します: .SP .nf .ft B m4test unsupported/gnu/m4 foreach.m4 forloop.m4 .ft P .fi .SP この定義では、`\|\fBcvs checkout m4test\fP\|' を実行すると、 単一階層の作業ディレクトリ `\|m4test\|' が作成され、 \fBcvs\fP ソースリポジトリ内の深い階層のディレクトリにある、 指定された 2 つのファイルが置かれます。 .SP モジュール定義中に `\|\fB&\fP\fImodule\fP\|' と書くことによって、 他のモジュールを参照することができます。 \fBcheckout\fP 時には、作業ディレクトリ内に各 \fImodule\fP 毎の ディレクトリが作成されます。 .br .I \fBcvs\fP 1.3 の新機能; モジュール定義ファイルを古いバージョンの \fBcvs\fP と共有する場合は、 この機能は使わないでください。 .SP そして、モジュール定義に以下の \fIoptions\fP を加えることができます: .SP \&`\|\fB\-d\fP \fIname\fP\|', モジュール名ではなく、他の名前を 作業ディレクトリの名前として用います。 .br .I \fBcvs\fP 1.3 の新機能; モジュール定義ファイルを古いバージョンの \fBcvs\fP と共有する場合は、 この機能は使わないでください。 .SP \&`\|\fB\-i\fP \fIprog\fP\|' を用いると、モジュール内のファイルが コミットされたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、ソースリポジトリ内の影響を受けるディレクトリへの フルパスを単一引数として受け取ります。 \fBコミット\fP 時にプログラムを実行するためには、 `\|commitinfo\|', `\|loginfo\|', `\|editinfo\|' ファイルを使う方法もあります。 .SP `\|\fB\-o\fP \fIprog\fP\|' を用いると、モジュール内のファイルが チェックアウトされたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、モジュール名を単一引数として受け取ります。 .SP `\|\fB\-e\fP \fIprog\fP\|' を用いると、モジュール内のファイルが エクスポート (export) されたときに実行される プログラム \fIprog\fP を指定できます。 \fIprog\fP は、モジュール名を単一引数として受け取ります。 .SP `\|\fB\-t\fP \fIprog\fP\|' を用いると、モジュール内のファイルに タグが付けられたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、 モジュール名と \fBrtag\fP で指定されたシンボリックタグの 2 つを 引数として受け取ります。 .SP `\|\fB\-u\fP \fIprog\fP\|' を用いると、チェックアウトされたモジュールの トップディレクトリにて `\|\fBcvs update\fP\|' が用いられたときに 実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、このモジュールのソースリポジトリへのフルパスを 単一引数として受け取ります。 .TP \&\fBcommitinfo\fP, \fBloginfo\fP, \fBrcsinfo\fP, \fBeditinfo\fP これらのファイルは全て、`\|\fBcvs commit\fP\|' 処理の間の 様々な場面で呼び出されるプログラムを指定します。 これらのファイルは共通の構造を持ちます。 各行は、次の 2 つのフィールドを持ちます: すなわち、 正規表現と、 空白の後にファイル名かコマンド行のテンプレートです。 正規表現の 1 つがリポジトリ内のディレクトリ名にマッチすると、 行の残りが使われます。 行が文字 \fB#\fP で始まっている場合、コメントとして無視されます。 フィールド間の空白も無視されます。 .SP `\|loginfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 引数リストのどこかに `\|\fB%s\fP\|' を指定すると、 \fBcvs\fP はその場所に \fBコミット\fP により影響を受ける ファイルリストを列挙します。 リストの最初のエントリは、 ソースリポジトリ内の変更が行われる位置への相対パスです。 リストの残りは、この \fBコミット\fP により修正・追加・削除される ファイルとなります。 .SP `\|taginfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 コマンドに渡される引数は、順番に .I タグ名 、 .I 操作 (すなわち、 .B add は `tag' を、 .B mov は `tag -F' を、 .B del は `tag -d` をそれぞれ意味します)、 .I リポジトリ となり、残りは全て .B ファイル名 と .B リビジョン の組となります。 フィルタプログラムが 0 以外を返して終了すると、タグ処理は中断されます。 .SP `\|commitinfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 テンプレートには現在のソースリポジトリへのフルパスが付け加えられ、 コミットにより (追加・削除・修正など) 影響をおよぼされる ファイルのファイル名が続きます。 .SP `\|rcsinfo\|' では、行の残りはログメッセージ用のテンプレートへ 読み込まれるファイルへのフルパスです。 .SP `\|editinfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 -現在のログメッセージ用のテンプレートファイルへのフルパスが +現在のログメッセージ用テンプレートファイルへのフルパスが 最後に追加されます。 .SP 正規表現の代わりに、以下の 2 つのうちどちらかの特殊文字列 を使うことができます: -`\|\fBALL\fP\|' では常に実行されるべきコマンド行テンプレート +`\|\fBALL\fP\|' では常に実行されるコマンド行テンプレート を指定し、 `\|\fBDEFAULT\fP\|' ではどの正規表現にもマッチしなかったときに 用いられるコマンド行テンプレートを指定します。 .SP `\|commitinfo\|' ファイルには、 他の \fBコミット\fP 操作が行われる \fI前に\fP 実行されるコマンドを指定し、 \fBコミット\fP が行われる前に満たすべき状況をチェックするために 利用できます。 \fBコミット\fP 操作の残りは、このファイルで指定されたコマンド全てが 終了ステータス \fB0\fP で終了したときにのみ続行されます。 .SP `\|rcsinfo\|' ファイルにより、\fBコミット\fP のログ作成の際の \fIログ用テンプレート\fP を指定できます。 このテンプレートの書式を埋めていくだけで、\fBコミット\fP ログを 作成できるようになります。 このファイルでは、正規表現より後のフィールドはコマンドテンプレートではなく、 ログ用テンプレート書式ファイル (複数可) のファイル名となります。 .SP `\|editinfo\|' ファイルにより、\fIコミットが開始する前\fP で ログ情報が記録された後の段階で実行されるスクリプトを指定できます。 これらの「編集」スクリプトは、 ログファイルに記録された情報を確認することができます。 編集スクリプトが 0 以外の終了ステータスを返した場合、コミットは中断されます。 .SP `\|loginfo\|' ファイルにより、コミットの \fI最終段階\fP で実行される コマンドを指定できます。 コミットログメッセージとして指定されたテキストはコマンドにパイプされます: よくある用法としては、メールを送る、ニュースグループの記事とする、 中央ファイルに追加書き込みするというものがあります。 .TP \&\fBcvsignore\fP, \fB.cvsignore\fP `\|\fBcvs update\fP\|' 中に無視されるデフォルトのファイル (もしくは .BR sh ( 1 ) のファイル名パターン) のリストです。 まず最初に、\fBcvs\fP はコンパイル時に組み込まれたデフォルトの ファイル名パターンのリストを読み込みます ( .BR cvs ( 1 ) を参照)。 その後、\fB$CVSROOT/CVSROOT/cvsignore\fP ファイルが存在すれば、 その中のリポジトリ毎のリストを読み込みます。 そして、`\|$HOME/.cvsignore\|' にあるユーザ毎のリストを読み込みます。 最後に、\fBcvs\fP はディレクトリを辿る時に ディレクトリ中に `\|.cvsignore\|' ファイルがあれば、それを読み込みます。 これらのディレクトリ毎のファイルは、それを含むディレクトリにのみ 有効で、サブディレクトリには作用しません。 .TP .B history ヒストリを記録するには \fB$CVSROOT/CVSROOT\fP にこのファイルを作成します (詳細は `\|\fBcvs history\fP\|' の記述を参照)。 .SH 関連項目 .BR cvs ( 1 ), .SH 著作権 Copyright \(co 1992 Cygnus Support, Brian Berliner, and Jeff Polk .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja/man/man5/exports.5 b/ja/man/man5/exports.5 index 87fb725151..4734f49a94 100644 --- a/ja/man/man5/exports.5 +++ b/ja/man/man5/exports.5 @@ -1,256 +1,257 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)exports.5 8.3 (Berkeley) 3/29/95 -.\" %Id: exports.5,v 1.3.2.1 1997/03/12 15:07:13 mpp Exp % +.\" %Id: exports.5,v 1.3.2.2 1998/08/12 06:44:25 charnier Exp % +.\" .\" jpman %Id: exports.5,v 1.3 1998/07/02 14:10:07 horikawa Stab % .\" .Dd March 29, 1995 .Dt EXPORTS 5 .Os .Sh 名称 .Nm exports .Nd .Tn NFS マウント要求に対するリモートマウント点を定義する .Sh 書式 .Nm exports .Sh 解説 .Nm exports ファイルは .Tn NFS サーバの指定 1 つについて .Tn NFS マウントプロトコルに対するリモートマウント点を指定します。 .%T "Network File System Protocol Specification \\*(tNRFC\\*(sP 1094, Appendix A" および .%T "NFS: Network File System Version 3 Specification, Appendix I" を参照してください。 .Pp .Nm exports ファイルの各行 (# で始まる注釈行以外) は、1 つ以上のホスト向けに、 1 つのローカルサーバファイルシステム内の マウント点 (複数) とエクスポートフラグを指定します。 あるホストは、 サーバの各ローカルファイルシステムに関して唯 1 度だけ指定可能です。 また他の全てのホストに適用されるデフォルトエントリは、 各サーバファイルシステムに関して唯 1 つだけ指定できます。 後者は ``世界'' に対しそのファイルシステムを公開することになるので、 そのファイルシステムが公の情報を含むときにのみ用いるべきです。 .Pp マウントエントリ内の最初の欄 (複数) には、 対応するクライアント (複数) がマウント可能である サーバファイルシステム内ディレクトリパス (複数) を指定します。 この指定には 2 つの形式があります。 最初の指定形式は、 全マウント点のリストであり、絶対ディレクトリパスを空白で区切ったものです。 次の指定形式は、そのファイルシステムのルートパス名に続いて .Fl alldirs フラグを指定するものです。この形式は、そのファイルシステム内の任意の点を ホスト (複数) がマウントすることを可能にします。mountd で .Fl r オプションを用いれば、任意の点には通常ファイルを含むことができます。 パス名中には、シンボリックリンクを含んではなりませんし、また "." または ".." を含んではなりません。 1 つのファイルシステムに対するマウント点を複数指定することが可能であり、 それぞれ異ったホストとエクスポートオプションの組を指定することができます。 .Pp 行の 2 番目の部分には、そのファイルシステムがホストの組にどのように エクスポートされているかを指定します。 オプションフラグは、 そのファイルシステムを読み取り専用でエクスポートしているのか それとも読み書き可でエクスポートしているのかを指定したり、 クライアントの UID がサーバ上のユーザ資格にどのように マップされているのかを指定します。 .Pp エクスポートオプションは以下のとおりです。 .Pp .Sm off .Fl maproot No = Sy user .Sm on 指定されたユーザの資格を、root によるリモートアクセスに対して使用します。 その資格には、ローカルマシン上でユーザが属する全てのグループを含みます ( .Xr id 1 参照)。ユーザは名前または数字です。 .Pp .Sm off .Fl maproot No = Sy user:group1:group2:... .Sm on コロンによって区切られたリストは、 root によるリモートアクセスに対して使用する正確な資格を指定するために 使用します。 リストの要素は名前または数字です。 グループを含まない資格をユーザに関する完全な資格と区別するためには、 user: を使用すべきであることに注意してください。 .Pp .Sm off .Fl mapall No = Sy user .Sm on または .Sm off .Fl mapall No = Sy user:group1:group2:... .Sm on .Fl maproot と同じ指定方法で、 (root を含む) 全てのクライアントの UID に対するマッピングを指定します。 .Pp .Fl r オプションは .Fl maproot と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。 .Pp .Fl maproot および .Fl mapall オプションのない場合には、 root によるリモートアクセスは -2:-2 という資格を用いることになります。 その他の全てのユーザはそれぞれのリモート資格にマップされます。 .Fl maproot オプションを指定すると、root によるリモートアクセスは -2:-2 の代りに 指定した資格にマップされます。 .Fl mapall オプションを指定すると、root を含む全てのユーザはそれら自身の資格の代りに 指定した資格にマップされます。 .Pp .Fl kerb オプションを指定すると、Kerberos 認証サーバを使用して 認証とクライアント資格のマップを行います。 このオプションを利用するには、カーネルを NFSKERB オプション付きで 構築してある必要があります。 .Pp .Fl ro オプションは、ファイルシステムが読み取り専用としてエクスポートされることを 指定します (デフォルトは読み書き可)。 .Fl o オプションは .Fl ro と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。 .Pp 行の 3 番目の部分には、その行が適用されるホストの組を指定します。 この組は 3 つの方法で指定できます。 最初の方法はホスト名 (複数) を空白で区切って並べる方法です。 (名前の代りに、標準的なインターネット ``ドット'' アドレスを用いることも できます)。2 番目の方法はネットグループファイル ( .Xr netgroup 5 参照) の中で定義した ``netgroup'' を指定する方法です。 3 番目の方法は、 1 つのネットワークとネットワークマスクを用いることにより、 1 つのインターネットサブネットワークを指定する方法です。 これは、 そのサブネットワーク内のアドレスを持つ全てのホストの組として定義されます。 この最後の方法はカーネルのオーバヘッドを低く押えられるため、 1 つの管理サブネット内の多くのクライアントを エクスポートの行が参照する場合に推奨されます。 .Pp 最初の 2 つの指定方法では、単に空白で区切られた名前 (複数) を並べて指定します。 全ての名前は、まずそれらが ``netgroup'' 名であるかチェックされ、 そうでなければホスト名であると仮定されます。 ホスト名に完全ドメイン指定をすれば、 ネットグループと同じ名前を持つホストの問題を通常避けることができます。 3 番目の指定方法は、 .Sm off .Fl network No = Sy netname .Sm on フラグとオプションの .Sm off .Fl mask No = Sy netmask .Sm on フラグによって指定します。マスクが指定されないと、そのネットワーククラス (A, B, C のどれかです。 .Xr inet 4 を参照してください) に対するマスクとなります。 .Pp 例: .Bd -literal -offset indent /usr /usr/local -maproot=0:10 friends /usr -maproot=daemon grumpy.cis.uoguelph.ca 131.104.48.16 /usr -ro -mapall=nobody /u -maproot=bin: -network 131.104.48 -mask 255.255.255.0 /u2 -maproot=root friends /u2 -alldirs -kerb -network cis-net -mask cis-mask .Ed .Pp .Sy /usr , .Sy /u , .Sy /u2 がローカルファイルシステムマウント点とすると、上の例は以下を指定します: .Sy /usr はネットクグープファイルで指定されるホスト群 .Em friends にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は UID 0 およびグループ 10 にマップされます。 このファイルシステムは読み書き可でエクスポートされ、 ``friends'' 内のホストは /usr と /usr/local のどちらもマウントできます。 このファイルシステムは .Em 131.104.48.16 および .Em grumpy.cis.uoguelph.ca にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は ``daemon'' に結び付けられたユーザおよびグループにマップされます。 このファイルシステムは残りの世界へ読み出しのみでエクスポートされ、 この際全てのユーザは ``nobody'' に結び付けられたユーザおよびグループに マップされます。 .Pp .Sy /u はサブネットワーク .Em 131.104.48 上の全てのホストにエクスポートされ、 この際 root は ``bin'' の UID にマップされてグループアクセスを持ちません。 .Pp .Sy /u2 は ``friends'' 中のホストにエクスポートされ、 その際 root は ``root'' に結び付けられた UID とグループにマップされます。 このファイルシステムは ``cis-net'' ネットワーク上の全てのホストへ エクスポートされ、 この際 /u2 内のどんなディレクトリへもマウントを許し、 Kerberos 許可書によって認証される principal についての資格に 全 UID をマップします。 .Sh 関連ファイル .Bl -tag -width /etc/exports -compact .It Pa /etc/exports デフォルトリモートマウント点ファイル .El .Sh 関連項目 .Xr netgroup 5 , .Xr mountd 8 , .Xr nfsd 8 , .Xr showmount 8 .Sh バグ エクスポートオプションはカーネル内ではローカルマウント点に結び付けられます。 ローカルサーバマウント点のサブディレクトリでエクスポートされたものに、 エクスポートオプションの矛盾があってはいけません。 同じファイルシステム内の全てのエクスポートされたディレクトリは、 木を下る順に隣り合った行で指定されることが推奨されます。 ネットグループ名と同じ名前のホスト名は指定できません。 完全ドメイン指定でホスト名を指定すれば通常は問題ありません。 diff --git a/ja/man/man5/passwd.5 b/ja/man/man5/passwd.5 index f3867f3da7..39620cd015 100644 --- a/ja/man/man5/passwd.5 +++ b/ja/man/man5/passwd.5 @@ -1,678 +1,678 @@ .\" Copyright (c) 1988, 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. .\" .\" From: @(#)passwd.5 8.1 (Berkeley) 6/5/93 .\" %Id: passwd.5,v 1.6.2.8 1998/07/19 06:52:11 jkh Exp % .\" .\" jpman %Id: passwd.5,v 1.3 1998/07/30 15:26:15 horikawa Stab % .\" .\" WORD: NIS/YP INTERACTION NIS/YP との相互作用 [yppasswd.1] .\" WORD: accounting アカウンティング (パスワード期限等の意味) .\" WORD: epoch 基準時点 .Dd September 29, 1994 .Dt PASSWD 5 .Os .Sh 名称 .Nm passwd .Nd パスワードファイルのフォーマット .Sh 解説 .Nm passwd ファイルは改行で区切られたレコードから成ります。 ユーザごとに 1 レコードが対応し、 コロン(``:'')で区切られた 10 個の欄が含まれます。 これらの欄は以下の通りです: .Pp .Bl -tag -width password -offset indent .It name ユーザのログイン名。 .It password ユーザの .Em 暗号化された パスワード。 .It uid ユーザのid。 .It gid ユーザのログイングループid。 .It class ユーザのログインクラス。 .It change パスワードの変更時間。 .It expire アカウントの有効期限。 .It gecos ユーザについての一般的な情報。 .It home_dir ユーザのホームディレクトリ。 .It shell ユーザのログインシェル。 .El .Pp 最初の空白文字でない文字がポンド記号(#)であるような行は注釈であり、無視 されます。スペース、タブ、改行だけからなる空行もまた無視されます。 .Pp .Ar name 欄はコンピュータアカウントにアクセスするのに用いられるログインであり、 .Ar uid 欄はそれに結び付けられた数字です。これらはファイルアクセスを制御するので、 両方共そのシステム(またしばしば複数のシステムにわたる1つのグループ)の中 で一意であるべきです。 .Pp 同じログイン名や同じユーザidのエントリを複数持つことは可能で すが、普通それは誤りです。これらのファイルを取り扱うルーチンはしばしばそ の複数エントリの 1 つだけを返しますし、 そしてそれはランダムな選択によるものです。 .Pp ログイン名は決してハイフン(``-'')で始めてはいけません。また、メーラを 混乱させる傾向にあるので、大文字やドット(``.'')も絶対に名前の一部にしな いことを強く推奨します。コロン(``:'')は歴史的にユーザデータベース中の欄 を分けるために用いられてきたので、いかなる欄にも含まれません。 .Pp password欄はパスワードの .Em 暗号化された 形です。 .Ar password 欄が空ならば、そのマシンへアクセスするのに何のパスワードも必要としないで しょう。これはほとんど恒常的に誤りです。これらのファイルは暗号化された ユーザパスワードを含んでいるので、 適当な権利無しにはいかなる人によっても可読であっ てはいけません。管理上のアカウントは1個のアスタリスク .Ql \&* を含むパスワード欄を有しており、これは通常のログインを許しません。 .Pp group欄はユーザがログインした上で位置付けられるグループです。このシステムは マルチグループ( .Xr groups 1 参照) をサポートしますが、この欄はユーザの1次グループを指名します。2次グループの メンバは .Pa /etc/group の中で選ばれます。 .Pp .Ar class 欄はユーザのログインクラスに対するキーです。ログインクラスは .Xr login.conf 5 の中で定義されます。 .Xr login.conf 5 は、ユーザの属性、アカウンティング、リソース、環境設定に関する .Xr termcap 5 形式のデータベースです。 .Pp .Ar change 欄は .Dv GMT における基準時点からの秒数を表したものであり、 この時までにアカウントに対するパスワードを変更する必要があります。 パスワードエージング機能をなくすには、 この欄を空欄にしておくか0をセットしておけば良いです。 .Pp .Ar expire 欄は .Dv GMT における基準時点からの秒数を表したものであり、 その時にアカウントが消滅します。 アカウント再設定機能をなくすには、 この欄を空にセットしておくか0をセットしておけば良いです。 .Pp .Ar gecos 欄はコンマ(``,'')で区切られた以下のような副欄を通常含んでいます: .Pp .Bd -unfilled -offset indent fullname ユーザのフルネーム office ユーザの職場の位置 wphone ユーザの職場の電話番号 hphone ユーザの自宅の電話番号 .Ed .Pp この情報は フィンガープログラム .Xr finger 1 によって利用され、最初の欄はシステムのメーラ によって使われます。fullname 欄内にアンパサンド文字 .Ql \&& が現われると、この欄を使うプログラムはそれをそのアカウントのログイン名の 大文字版に置き換えます。 .Pp ユーザのホームディレクトリは、ユーザがログインして位置付けられる完全な .Tn UNIX パス名です。 .Pp shell欄はユーザの好むインタプリタです。 .Ar shell 欄になにも無ければ Bourne シェル .Pq Pa /bin/sh が仮定されます。セキュリティ上の理由により、シェルがシステムへのアクセス を許さないスクリプト(例えば .Xr nologin 8 スクリプト)に設定されている場合、いかなる環境変数も渡されないように配慮さ れるべきです。 .Xr sh 1 については、これは .Fl p フラグを指定することで可能です。これが他のシェルでどのように行なわれるか は、特定のシェルの文書を調べてください。 .Sh YP/NIS との相互作用 .Ss NISパスワードデータへのアクセスを可能にする システム管理者は .Pa /etc/master.passwd ファイルに特別なレコードを付け加えることによって、パスワード情報について NIS/YPを用いるように .Tn FreeBSD を設定できます。ハッシュされたパスワードデータベースおよび .Pa /etc/passwd ファイル( .Pa /etc/passwd は絶対に手動で編集してはいけません)に変更が適切にマージされるように、 エントリは .Xr vipw 8 で付加するべきです。別の方法としては、なんらかの方法で .Pa /etc/master.passwd を修正した後、 .Xr pwd_mkdb 8 を用いてパスワードデータベースを手動で更新することができます。 .Pp NISを活性化するための最も簡単な方法は、名前欄にプラス符号(`+')だけを持つ、 以下のような空のレコードを付け加えることです。 .Bd -literal -offset indent +::::::::: .Ed `+' は、 .Tn FreeBSD の標準Cライブラリの .Xr getpwent 3 ルーチンに対し、 検索において NIS パスワードマップを使用開始するよう指示します。 .Pp 上記のエントリは .Em ワイルドカード エントリとして知られていることに注意してください。なぜなら、それは全ての ユーザと一致し (他に情報を持たない `+' は、全員に一致します)、 全 NIS パスワードデータを無変更にて引き出すことを許します。 一方、 NIS エントリで `+' の次にユーザ名やネットグループ名を指定することによって、 どのようなデータが NIS パスワードマップから展開されるのか、 およびそれがどのように解釈されるのかについて、 管理者が影響を与えることができます。 この特徴を示す、少数のレコード例を挙げます(1 つの .Pa master.passwd ファイル中には複数の NIS エントリを持つことが可能であることに注意): .Bd -literal -offset indent -mitnick::::::::: +@staff::::::::: +@permitted-users::::::::: +dennis::::::::: +ken:::::::::/bin/csh +@rejected-users::32767:32767::::::/bin/false .Ed 特定のユーザ名は明示的にリストされますが、ネットグループは `@' を前に付け て表されます。 上の例では、``staff'' および ``permitted-users'' ネットグループ のユーザは、NIS から読まれ無変更で使用されるパスワード情報を持ちます。 言い換えれば、それらのユーザはそのマシンに通常のアクセスを許される ということです。ユーザ ``ken'' および ``dennis'' は、 ネットグループを通じてではなく明示的に名前が指定されており、 NIS から読まれるパスワード情報を持ちます。 例外は、ユーザ ``ken'' のシェルが .Pa /bin/csh に再マップされることです。 これは、NISパスワードマップで指定されたシェルの値が、ローカル .Pa master.passwd ファイルの特別なNISエントリで指定された値によって上書きされることを意味します。 ユーザ ``ken'' は csh シェルを割り当てておいても良いかも知れません。 なぜなら、 政治的あるいは技術的な理由でクライアントマシンにインストールされていない 別のシェルを、彼の NIS パスワードエントリに指定されているかもしれないためです。 他方、``rejected-users''ネットグループのユーザは、そのUID、 GID、シェルが不正な値で上書きされているのでログインできなくなります。 .Pp ユーザ ``mitnick'' は、そのエントリが `+' ではなく `-' で指定されているので、 完全に無視されることになります。 マイナスエントリは、 ある NIS エントリを完全に遮断するために用いることができます。 このような方法でパスワードデータが除外されたユーザは、 システムから全く認識されません。(マイナスエントリで指定された 上書き情報は無視されます。 なぜなら、システムが最初に認識しないことにしたユーザの上書き情報を処理 することは無駄だからです。) 一般にマイナスエントリは、 ある権限のあるネットグループのメンバとなってアクセスを許されるかもしれない ユーザを特別に除外するために使用します。 例えば ``mitnick'' が ``permitted-users'' ネットグループのメンバであり、 いかなる理由があってもそのネットグループ内に留まることを許す必要がある場合 (おそらくそのドメイン内の他のマシンにアクセスすることを保証するため)、 管理者はマイナスエントリを使用することにより、 特定のシステムへのアクセスを拒否し続けるこ とができます。また、アクセスを許されたユーザおよびその残りを削除したよう なよくありそうな混み入ったユーザのリストを生成するよりは、むしろアクセスを 許されないユーザを明示的にリストする方が容易なことが多いです。 .Pp プラスおよびマイナスエントリは、先行一致優先で最初から最後の順で評価されま す。これはシステムが特定のユーザに一致する最初のエントリだけを使用するこ とを意味します。例えば、``staff'' ネットグループと ``rejected-users'' ネットグループの両方のメンバとなっているようなユーザ ``foo'' は、 上の例では ``rejected-users'' のエントリの前に ``staff'' のエントリがありますので、 システムに許可されます。もし順序が逆なら、今度はユーザ ``foo'' は ``rejected-users'' として認識され、アクセスは拒否されます。 .Pp 最後に、 .Pa /etc/master.passwd ファイルの NIS アクセスエントリで指定されたユーザまたはネットグループ のどれとも一致しないNISパスワードデータベースレコードは、(マイナスエントリ を使って指定した全てのユーザと共に)全て無視されます。先に示した例 ではリストの最後にワイルドカードエントリが無いので、 ``ken'' と ``dennis'' と ``staff'' ネットグループと ``permitted-users'' ネットグループとを除く全てのユーザを システムは権限があるユーザとして認識しないでしょう。 ``rejected-users'' ネットグループは認識されますが、 全メンバのシェルは再マップされますので、 アクセスは拒否されるでしょう。他の全てのNISパスワードレコードは無視され るでしょう。 管理者は以下のようなワイルドカードエントリをリストの最後に 付けても良いでしょう。 .Bd -literal -offset indent +:::::::::/usr/local/bin/go_away .Ed このエントリは他の全てのエントリと一致しない全てのユーザを一挙にとらえる 働きをします。 .Pa /usr/local/bin/go_away は、システムにアクセスを許可されないユーザに伝えるメッセージを出力する短か いスクリプトまたはプログラムでしょう。 必ずしもログインアクセスを許可せずに、 特定のNISドメイン内の全ユーザをシステムが認識可能であることが望ましいときには、 このテクニックが有効なことがあります。 ログインシェルとシェルスクリプトを使用するときのセキュリティに関する事柄 について、上記のシェル欄の記述を参照してください。 .Pp この .Pa 上書き 機能の主な用途は、 管理者がNISクライアント上でアクセス制限を強化可能とすることです。 単に特定のネットグループに対してユーザを追加したり削除したりするだけで、 そのユーザにあるマシン群へのアクセスを許可し、 かつ他のマシン群へのアクセスを拒否することができます。 ネットグループデータベースもまた NIS 経由でアクセスできるので、 1 個所すなわち NIS マスタサーバからアクセス制限を管理できます。 一旦ホストのアクセスリストが .Pa /etc/master.passwd に設定されると、新にネットグループが作られない限りそれは再度変更する必要 はありません。 .Sh 注釈 .Ss NIS経由のシャドウパスワード .Tn FreeBSD はシャドウパスワード法を採用しており、 ユーザの暗号化されたパスワードはスーパユーザだけが読み書き可能な .Pa /etc/master.passwd および .Pa /etc/spwd.db にのみに記憶されます。 暗号化されたパスワードをパスワード推測プログラムに通すことにより、 ユーザが他のユーザアカウントに対して不正アクセスすることを防ぐためです。 NIS にはパスワード隠蔽のための標準的な方法がありません。 これは、 パスワードデータを全てNISパスワードマップに置き換えることは、 .Tn FreeBSD のパスワード隠蔽システムのセキュリティを無効にしてしまうことを意味します。 .Pp .Tn FreeBSD にはこの問題を回避するのに役立つ少数の特別な特徴が備わっています。 .Tn FreeBSD NIS クライアントと .Tn FreeBSD NIS サーバとの間でパスワード隠蔽を実装することは可能です。 .Xr getpwent 3 ルーチンは .Pa /etc/master.passwd と同じデータを含む .Pa master.passwd.byname と .Pa master.passwd.byuid マップを検索します。マップが存在すれば .Tn FreeBSD は標準の .Pa passwd.byname および .Pa passwd.byuid マップの代りにそれらをユーザ認証に利用しようとします。 .Tn FreeBSD の .Xr ypserv 8 はまたクライアントの要求をチェックして、 クライアントの要求が特権ポートから来たことを確認します。 スーパユーザのみが特権ポートにアクセスすることが許されるので、 要求しているユーザがスーパユーザであるか否か判断可能です。 .Pa master.passwd マップにアクセスする権限の無いユーザからの全ての要求は拒否されるでしょう。 全てのユーザ認証プログラムはスーパユーザの権限で実行されるので、 ユーザの暗号化されたパスワードデータへの必要なアクセスを持ちますが、 通常ユーザはパスワード情報を含まない標準 .Pa passwd マップへのアクセスのみ許されます。 .Pp この特徴は .Tn FreeBSD 以外のシステムがある環境では利用できないことに注意してください。 また、ネットワーク に無制限にアクセスできる真に限定されたユーザは依然 .Pa master.passwd マップを危うくすることにも注意してください。 .Ss NISの上書きに伴なうUIDおよびGIDの再マップ .Tn SunOS や Sun の NIS コードを利用しているオペレーティングシステムとは異なり、 .Tn FreeBSD ではユーザがNIS .Pa passwd エントリ中の .Pa 全て の欄を上書きすることを許しています。例えば以下のような .Pa /etc/master.passwd エントリを考えてみましょう。 .Bd -literal -offset indent +@foo-users:???:666:666:0:0:0:Bogus user:/home/bogus:/bin/bogus .Ed このエントリにより、`foo-users' ネットグループ中の全てのユーザは、 UID、GID、パスワードを含めて .Pa 全て のパスワード情報を上書きされます。この結果、彼等のパスワードは不正な 値に再マップされるので、全ての `foo-users' はシステムから締め出さ れることになるでしょう。 .Pp 以下のようにNISワイルドカードエントリを使う習慣のある人が多いので、 このことは覚えておくべき重要なことです。 .Bd -literal -offset indent +:*:0:0::: .Ed これはしばしば新米の .Tn FreeBSD 管理者が以下のように .Pa master.passwd ファイルのNISエントリを選んでしまうことにつながります。 .Bd -literal -offset indent +:*:0:0:::::: .Ed 更に悪く、以下のようにしてしまうこともあります。 .Bd -literal -offset indent +::0:0:::::: .Ed .Sy Pa master.passwd .Sy ファイルには「絶対に」このようなエントリは入れないでください!! 最初のものは、 全てのパスワードを `*' に再マップし (これは誰もログインできなくします)、 全ての UID および GID を 0 に再マップする (これは皆をスーパユーザにします) ことを .Tn FreeBSD に指示します。 2 番目のものは全 UID および GID をちょうど 0 にマップします が、これは .Pa 全てのユーザがrootになってしまう ことを意味します! .Pp .Ss NIS上書き評価の互換性 Sunが最初に .Xr getpwent 3 ルーチンにNISサポートを追加したとき、 .Tn SunOS のパスワードファイル .Pa /etc/passwd はプレーン .Tn ASCII フォーマットであるということが考慮されていました。 .Tn SunOS のドキュメントによれば、パスワードファイルに '+' エントリを付け加えると、 パスワードファイル中の '+' エントリがある位置に NIS パスワードデータベースの内容が「挿入」されます。例えば 管理者が .Pa /etc/passwd の中央に +:::::: エントリを置いた場合、 NIS パスワードマップの全体の内容が パスワードファイルの中央にコピーされたかのように現われるでしょう。 管理者が +:::::: エントリを .Pa /etc/passwd の中央と最後の両方に置けばNISパスワードマップは2度現われることになるでしょ う。すなわち 1 度目はそのファイルの中央に現れ、もう 1 度は最後に現れます (単純なワイルドカードの代りに上書きエントリを用いることで、 他の組合せが可能です)。 .Pp これに対し .Tn FreeBSD では単一の .Tn ASCII パスワードファイルを持つというわけではありません。 .Tn FreeBSD ではハッシュ化されたパスワードデータベースを持ちます。このデータベースで は最初や中央や最後を容易に定義できませんので、 .Tn SunOS に 100% 互換の手法を設計することは非常に困難です。例えば .Tn FreeBSD の .Fn getpwnam 関数と .Fn getpwuid 関数は、線形検索ではなくハッシュデータベースに直接問い合わせするように設計さ れています。パスワードデータベースが大きいシステムでは、 このアプローチの方が高速です。 しかしデータベースへ直接問い合わせを利用するとき、 システムは元のパスワードファイルの順序を知り得ませんし気にしませんので、 .Tn SunOS が使用するものと同じ上書き論理は容易に適用できません。 .Pp 代りに .Tn FreeBSD では全ての NIS 上書きエントリを一緒のグループにまとめ、それらから 1 つ のフィルタを作ります。各 NIS パスワードエントリはちょうど 1 回上書きフィルタ に対して比較され、それに応じて取り扱われます。フィルタがエントリを変更せ ずに通すことを許すならエントリは変更されないものとして取り扱われ、フィルタ が欄の再マップを要求するなら欄は再マップされ、フィルタが明白な除外を要求 するなら(すなわちエントリが '-' 上書きと一致するなら)エントリは無視され、 エントリがフィルタ指定のどれとも一致しないならエントリは捨てられます。 .Pp また、NIS の '+' および '-' エントリ自身は、 .Pa /etc/master.passwd の中で指定された順序で取り扱われることに再度注意してください。 それ以外の方法で取り扱うと、予測不可能な振舞いとなってしまうからです。 .Pp 結局のところ、データベースのパラダイムを保ちつつ .Tn FreeBSD では .Tn SunOS と非常によく似た動作を行いますが、 .Xr getpwent 3 関数は .Tn SunOS のものとはいくぶん異なった振舞いをします。主な違いは以下の通りです。 .Bl -bullet -offset indent .It NIS パスワードマップの各々のレコードは、ローカルパスワード空間のパスワードに 1 度だけマップすることができます。 .It NIS の '+' および '-' のエントリの位置は、 NIS パスワードレコードがパスワード空間にマップされる場所に 必ずしも影響を与えません。 .El .Pp あらゆる .Tn FreeBSD の構成のうち99%においてはNISクライアントの振舞いは .Tn SunOS や他の同種のシステムのそれと区別できないものとなるでしょう。それでもこれ らのアーキテクチャ的な違いを知っておくことは必要です。 .Pp .Ss NIS上書きに関しネットグループの代りにグループを用いる .Tn FreeBSD はネットグループではなくユーザグループに基づいた上書き照合を行なう能力 を提供します。例えば NIS エントリが以下のように指定されたとき、 .Bd -literal -offset indent +@operator::::::::: .Ed システムはまず `operator' と呼ばれるネットグループに対してユーザを 照合しようとします。 `operator' ネットグループが存在しないとき、 システムは代りに通常の `operator' グループに対して照合しようとします。 .Ss FreeBSDの古いバージョンからの動作の変遷 .Tn FreeBSD のNIS/YPの取り扱いについてはいくつかのバグフィックスと改善がありました。 そのいくつかは動作上の変化をもたらしました。動作上の変化は一般に良い方向 にありますが、ユーザおよびシステム管理者がそれらについて知っておくことは 重要です。 .Bl -enum -offset indent .It 2.0.5 以前のバージョンでは、逆方向検索 (つまり .Fn getpwuid を用いる) には上書きは適用されませんでした。つまり、 .Fn getpwuid は .Fn getpwnam が認識しないログイン名を返すことがありました。 これは現在では .Pa /etc/master.passwd で指定された上書きを全ての .Xr getpwent 3 関数に適用することで解決されました。 .It .Fx 2.0.5 以前では、ネットグループの上書きは全く動作しませんでした。 これは主に .Tn FreeBSD が NIS を通してネットグループを読むことをサポートしなかったことが原因です。 これもまた修正され、 .Tn SunOS や同種の NIS を使用可能なシステムと全く同様に、 ネットグループを指定可能となりました。 .It .Tn FreeBSD は現在NISサーバの能力を持っており、標準第6版形式の .Pa passwd マップに加え .Pa master.passwd NIS マップの使用もサポートしています。このことは、NIS サーバとして .Tn FreeBSD システムを利用するなら、変更情報、有効期限の情報、クラス情報を指定可能であ るということを意味しています。 .El .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/passwd パスワードを除いた .Tn ASCII パスワードファイル .It Pa /etc/pwd.db パスワードを除いた .Xr db 3 形式のパスワードデータベース .It Pa /etc/master.passwd パスワードの入った .Tn ASCII パスワードファイル .It Pa /etc/spwd.db パスワードの入った .Xr db 3 形式のパスワードデータベース .El .Sh 関連項目 .Xr chpass 1 , .Xr login 1 , .Xr passwd 1 , .Xr getpwent 3 , .Xr login.conf 5 , .Xr login_getclass 3 , .Xr yp 4 , .Xr login.conf 5 , .Xr adduser 8 , .Xr pwd_mkdb 8 , .Xr vipw 8 , .Xr pw 8 .Sh バグ ユーザ情報は他のどこか に入れるべき(そして結局は入れることになる)でしょう。 .Pp YP/NISパスワードデータベースでは、 普通のユーザには暗号化されたパスワードが見えてしまいます。したがって .Pa master.passwd マップのシャドウパスワードおよび .Tn FreeBSD の .Xr ypserv 8 サーバを利用しないと、 簡単にパスワードクラッキングを許してしまうことになります。 .Pp .Pa master.passwd タイプのマップの使用をサポートする .Tn FreeBSD の .Xr ypserv 8 を使用しないと、 YP/NIS パスワードデータベースは 古いスタイル (第 6 版) のフォーマットになります。これは、 .Tn FreeBSD システムを標準 NIS サーバのクライアントとして利用するとき、 ユーザのログインクラスやパスワード期限等の 現在のフォーマットにある欄の値については サイトワイドな値が利用できなくなることを意味します。 .Sh 互換性 パスワードファイル形式は .Bx 4.3 以降で変更されました。以下の awk スクリプトは、古いスタイルの パスワードファイルを新しいスタイルのパスワードファイルに 変換するのに利用できます。 .Dq class , .Dq change , .Dq expire 欄が追加されましたが、デフォルトでは無効になっています。 これらの欄を設定するには .Xr vipw 8 もしくは .Xr pw 8 を使用してください。 .Bd -literal -offset indent BEGIN { FS = ":"} { print $1 ":" $2 ":" $3 ":" $4 "::0:0:" $5 ":" $6 ":" $7 } .Ed .Sh 歴史 .Nm ファイルは .At v6 で現われました。YP/NISの機能は .Tn SunOS を雛型として .Fx 1.1 で初めて現われました。上書き機能は .Fx 2.0 -において新しく組込まれました。上書き機能はネットグループを適切に +において新しく組み込まれました。上書き機能はネットグループを適切に サポートするために .Fx 2.0.5 で更新されました。注釈のサポートは .Fx 3.0 で初めてサポートされました。 diff --git a/ja/man/man5/syslog.conf.5 b/ja/man/man5/syslog.conf.5 index d3ada4ba97..a4ef1a8edf 100644 --- a/ja/man/man5/syslog.conf.5 +++ b/ja/man/man5/syslog.conf.5 @@ -1,340 +1,358 @@ .\" Copyright (c) 1990, 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. .\" .\" From: @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93 -.\" %Id: syslog.conf.5,v 1.3.2.6 1998/07/18 11:37:22 jkh Exp % +.\" %Id: syslog.conf.5,v 1.3.2.7 1998/08/06 01:43:46 jkoshy Exp % .\" .\" jpman %Id: syslog.conf.5,v 1.3 1998/07/16 01:34:25 yohta Stab % .\" .Dd June 9, 1993 .Dt SYSLOG.CONF 5 .Os .Sh 名称 .Nm syslog.conf .Nd .Xr syslogd 8 設定ファイル .Sh 解説 .Nm ファイルは .Xr syslogd 8 プログラムの設定ファイルです。 このファイルは .Em program 指定によって分けられた行ブロックから構成されています。 それぞれの行は 2つのフィールドを含みます。 その行が適用されるメッセージのタイプと優先度を指定する .Em selector フィールドと、 .Xr syslogd が選んだ基準とマッチしたマッチしたメッセージを受けとった場合の動作を指定する .Em action フィールドです。 .Em selector フィールドと .Em action フィールドは 1 つ以上のタブ文字で区切られています。 .Pp -.Em selectors -機能は +.Em selector +機能は、 .Em facility とピリオド -.Pq Dq \&. +.Pq Dq \&. +とオプションの比較フラグ +.Pq Bq <=> そして .Em level で符合化され、間に空白は含みません。 .Em facility と .Em level の双方とも、大文字小文字の違いはありません。 .Pp .Em facility はシステムが発するメッセージの一部を表し、次にあげるキーワード群の 1 つで表されます : auth, authpriv, cron, daemon, ftp, kern, lpr, mail, -mark, news, ntp, syslog, user, uucp と local0 から local7. +mark, news, ntp, syslog, user, uucp と local0 から local7。 これらのキーワード(markを除く)は .Xr openlog 3 と .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 +.Em 比較フラグ +を使用して、何を記録するのかを正確に指定できます。 +比較フラグのデフォルト組は +.Dq => +(またはあなたが好むのなら +.Do >= +.Dc ) であり、 +指定した +.Em facility +リストからの +.Em level +以上のレベルのメッセージを記録することを意味します。 +.Pp .Pp .Em level はメッセージの重要度を表し、以下のキーワードの順に高から低になります: emerg, alert, crit, err, warning, notice, info, debug。 これらのキーワードは .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 .Pp それぞれの行ブロックはタグによって前のブロックと区別されます。 タグは行の先頭が .Em #!prog または .Em !prog (前者は以前の syslogd との互換性のためのものです。 例えば syslog.conf ファイルを共有したい時などに便利です) で始まり、それぞれのブロックは syslog を呼び出す特定のプログラムと 関連付けられています。 また、タグ ``foo'' は、 ``foo: '' というプレフィックスを持つ カーネルログメッセージにもマッチします。 .Pp .Em facility と .Em level の両方のキーワードとその意味のより詳細な説明を知りたい場合は .Xr syslog 3 を見てください。 選択は .Em facility で行なう方が .Em program で行なうよりも好まれています。 なぜなら、後者はネットワーク環境の中では 簡単に変化してしまう場合があるからです。しかし、適切な .Em facility が本当に存在しない場合もあります。 .Pp もし .Em facility 指定に一致したメッセージを受けとり、なおかつそれが 指定した .Em level .Em (もしくはそれ以上の level) だった場合、またはメッセージ中の日付の後ろの最初の単語が .Em program と一致した場合、 .Em action フィールドで指定された動作が選択されます。 .Pp 複数の .Em selector を、セミコロン .Pq Dq \&; によって区切ることにより、1 つの .Em action に対して指定することができます。 しかしそれぞれの .Em selector はその前にある指定を上書き修正できてしまいますので注意してください。 .Pp 複数の .Em facility は、コンマ .Pq Dq \&, によって区切ることにより 1 つの .Em level を指定することができます。 .Pp アスタリスク .Pq Dq * は、全ての .Em facility 、全ての .Em levels 、または全ての .Em programs を指定するのに使用できます。 .Pp 特別な .Em facility である .Dq mark は、20分毎に .Dq info の優先度を持つメッセージを受け取ります ( .Xr syslogd 8 を参照 )。これは アスタリスクを含む .Em facility フィールドには適用されません。 .Pp 特別な .Em level である .Dq none は、特定の .Em facility を無効にします。 .Pp それぞれの行の .Em action フィールドは、 .Em selector フィールドに指定されたメッセージを受け取った際の動作を指定します。 動作指定には次の 5つの形式があります: .Bl -bullet .It パス名 (先頭がスラッシュで始まります)。 該当するメッセージは、そのファイルに追加されます。 .It ホスト名 ( .Pq Dq @ 文字から始まる必要があります)。 該当するメッセージは、指定されたホストの .Xr syslogd プログラムに転送されます。 .It コンマで区切られたユーザのリスト。 該当するメッセージは、指定されたユーザがログインしていれば、 そのユーザの画面に出力されます。 .It 1 つのアスタリスク。 該当するメッセージは、ログイン中の全てのユーザの画面に出力されます。 .It 垂直バー .Pq Dq \&| とそれに続くコマンド。該当したメッセージをパイプを使って コマンドに渡すことができます。 このコマンドは、 .Pa /bin/sh によって評価されるので、通常のシェルメタキャラクタや入力/出力 リダイレクトを利用できます。 (しかし実行されたコマンドからの .Xr stdio 3 バッファされた出力のリダイレクトは余計な遅延を引き起こしたり、 あるいはシグナルによってロギング中のサブプロセスが終了した場合など 出力データを失うことがあるかもしれないことに注意してください) コマンドそれ自身は .Em stdout と .Em stderr を .Pa /dev/null にリダイレクトして動作します。 .Dv SIGHUP を受け取ると、 .Nm はそのプロセスとのパイプを閉じます。もしそのプロセスが自発的に終了しない 場合は、60秒の猶予期間の後 .Dv SIGTERM を送ります。 .Pp コマンドはパイプでつながれるデータが到着した際に 1 度だけ起動されます。 その後、コマンドが終了した場合には必要に応じて再起動されます。 そのため、1行の入力だけをサブプロセスが手に入れるよう望んでいるなら、 (もし多くのメッセージが速く流れる場合には、 資源を大量に消費する可能性がありますが) 1行の入力があった後に終了する事によって達成する事ができます。 必要ならば、この効果のためにラッパスクリプトを書くこともできます。 .Pp そのコマンドが完全なパイプラインでない場合、コマンドを .Em exec で起動すると、起動したシェルプロセスがコマンドの完了を待たなくなるので 便利かもしれません。 警告: このプロセスは .Xr syslogd 8 の UID のもとで動きます。通常はスーパユーザです。 .El .Pp 空行と最初の空白でない文字がハッシュ .Pq Dq # 文字である行は無視されます。 .Sh 使用例 .Pp 設定ファイルは次のようになります: .Bd -literal # err レベル以上の全てのメッセージ、全てのレベルの kernel メッセージ、 # notice レベルの auth メッセージをコンソールに出力します。 # プライベートな認証メッセージは記録をとりません! *.err;kern.*;auth.notice;authpriv.none /dev/console # info 以上のレベルを持つ(mail を除く)全てのメッセージを記録します。 # プライベートな認証メッセージは記録をとりません! *.info;mail.none;authpriv.none /var/log/messages +# debug レベルのみの daemon メッセージを記録します +daemon.=debug /var/log/daemon.debug + # authpriv ファイルはアクセス制限を持ちます。 .\" /var/log/secure の read permission を限定するということ? .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 8 1998) authpriv.* /var/log/secure # 全てのレベルの mail メッセージを一箇所にまとめて記録します。 mail.* /var/log/maillog # emerg(非常事態)レベルの全てのメッセージは全員が受け取ります。 *.emerg * *.emerg @arpa.berkeley.edu # alert レベル以上のメッセージを root と eric の画面に表示されます。 .\" 原文は Root and Eric get alert and higher messages を意訳 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) *.alert root,eric # err レベル以上の mail と news の エラーを特別なファイルに保存します。 mail;news.err /var/log/spoolerr .\" 原文は uucp,news.crit / send-pr 予定 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) # 全てのレベルの認証メッセージをフィルタにパイプします。 auth.* |exec /usr/local/sbin/authfilter # ftpd のトランザクションを mail と news にあわせて保存します。 !ftpd *.* /var/log/spoolerr # カーネルのファイヤウォールレポートを別のファイルに保存します。 !ipfw *.* /var/log/ipfw .Ed .Sh 関連ファイル .Bl -tag -width /etc/syslog.conf -compact .It Pa /etc/syslog.conf .Xr syslogd 8 設定ファイル .El .Sh バグ 複数のセレクタ指定は、時々思ったように効果を発揮しない事があります。 例えば、 .Dq mail.crit,*.err と設定すると、 .Dq mail ファシリティのメッセージのレベルは .Dq err かそれ以上となり、 .Dq crit かそれ以上のレベルにはなりません。 .Pp ネットワーク環境においては、全てのオペレーティングシステムが 同じ facility 名のセットを実装しているわけではない点に注意してください。 authpriv, cron, ftp, ntp といったこの実装において知られた facility が、 目的のシステムには存在しないかもしれません。更に悪い事に、 DEC UNIX は AdvFS ファイルシステムのログイベントに facility 番号 10 (この実装では authpriv です) を使っています。 .Sh 関連項目 .Xr syslog 3 , .Xr syslogd 8 diff --git a/ja/man/man8/amd.8 b/ja/man/man8/amd.8 index 47f6159ce6..65e9c66d4f 100644 --- a/ja/man/man8/amd.8 +++ b/ja/man/man8/amd.8 @@ -1,287 +1,287 @@ .\" .\" Copyright (c) 1989 Jan-Simon Pendry .\" Copyright (c) 1989 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Jan-Simon Pendry at Imperial College, London. .\" .\" 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. .\" .\" @(#)amd.8 5.10 (Berkeley) 4/19/94 .\" .\" %Id: amd.8,v 1.2.2.3 1998/07/18 11:08:35 jkh Exp % .\" .\" jpman %Id: amd.8,v 1.2 1997/04/15 00:24:08 mutoh Stab % .\" .Dd April 19, 1994 .Dt AMD 8 .Os .Sh 名称 .Nm amd .Nd 自動マウントファイルシステム .Sh 書式 .Nm amd .Op Fl nprv .Op Fl a Ar mount_point .Op Fl c Ar duration .Op Fl d Ar domain .Bk -words .Op Fl k Ar kernel-arch .Ek .Op Fl l Ar logfile .Op Fl t Ar interval.interval .Bk -words .Op Fl w Ar interval .Ek .Op Fl x Ar log-option .Op Fl y Ar YP-domain .Bk -words .Op Fl C Ar cluster-name .Ek .Op Fl D Ar option .Oo .Ar directory mapname .Op Fl map-options .Oc .Ar ... .Sh 解説 .Nm amd は、ファイルシステムがアクセスされたときに自動的にそのファイルシステムを マウントするデーモンです。マウントされたファイルシステムは、アクセスがな ければ自動的にアンマウントされます。 .Pp .Nm amd は、自分自身をNFSサーバとして、指定された .Ar directory に結び付けます。 その指定ディレクトリ内でのファイルアクセスは .Nm amd によって処理されます。 .Nm amd は、 .Ar mapname で定義されたマップを使って、あるディレクトリ にどのファイルシステムを割り当てるかを決定します。 一般に .Ar mapname は、ホスト名やファイルシステムの情報、 マウントオプションから構成されます。 .Sh オプション .Bl -tag -width Ds .It Fl a Ar temporary-directory 実際にファイルシステムをマウントする位置を指定します。 デフォルトは .Pa /a です。 .It Fl c Ar duration ディレクトリが使われないときに、探索に使われた名前をキャッシュ して保持する秒数を指定します。デフォルトは5分です。 .It Fl d Ar domain ローカルドメイン名を指定します。もしこのオプションが与 えられなければ、ドメイン名はホスト名から決定されます。 .It Fl k Ar kernel-arch カーネルアーキテクチャを指定します。これは単に ${karch} セレクタ を指定するだけです。 .It Fl l Ar logfile マウントおよびアンマウントのイベントを記録するログファイル を指定します。 もし、 .Ar logfile が ``syslog'' という文字列なら、ログメッセージは .Xr syslog 3 によってシステムログデーモンに送られます。 .It Fl n ホスト名を正規化します。${rhost}で参照される名前は、使わ れる前にホストデータベースに関連づけて正規化されます。 これは、エイリアスを `` 公式 (official)'' ホスト名に変換する効果があります。 .It Fl p プロセスIDを表示します。 .Nm amd のプロセス ID を標準出力に出力して、ファイルに保存することができます。 .It Fl r 存在するマウントをリスタートします。 .Nm amd はマウントファイルテーブルをスキャンして、 現在マウントされているファイルシステムを判断します。 ファイルシステムが自動マウントされたものであれば、 .Nm amd は、その情報を継承します。 .It Fl t Ar interval.interval NFS/RPC/UDPのリトライの間隔を、10分の1秒単位で指定します。 デフォルト値は0.8秒です。2番目の値は再送カウンタを変更します。 どちらか一方か、両方の値が設定されていなければ、 適当なデフォルト値が設定されます。 .It Fl v バージョンを表示します。標準エラー出力に設定情報を表示します。 .It Fl w Ar interval キャッシュする時間を超えたファイルシステムのマウントを解除する時間を 秒単位で指定します。デフォルト値は2分です。 .It Fl y Ar domain NISマップをとってくる際に用いるNISドメインを指定します。 デフォルトはシステムのドメイン名です。このオプションは、NIS を動かしていないときには無視されます。 .It Fl x Ar options 実行時に何をログに記録するかを指定します。 .Ar options -には以下のものをカンマで区切って使用できます: +には以下のものをコンマで区切って使用できます: fatal, error, user, warn, info, map, stats, all .\" 次の文は原文に表記無し (Feb 1997 jpman J.Sakai) .\" .Ar options .\" の最初に``no''をつけたもの(たとえば``noinfo'')は、記録されません。 .It Fl D Ar option デバッグオプションの種類を選択することができます。 .Ar option の頭に .Ar no をつけると、そのオプションの逆の影響を与えます。 オプションは並べて指定することができます。もっとも役に立つのは .Ar all です。 .El .Pp .Fl D はデバッグのときにだけ使うものであるため、ここでは他のオプションに ついては説明しません。サポートされているオプションは .Fl v オプションで表示されますが、詳細はソースコードに記述されています。 .\" 以下の使用例は FreeBSD の英語マニュアルには載ってない。 .\" 内容の正しさを完全には吟味できないので、ここではコメントアウトした。 .\" (Feb 1997 jpman J.Sakai) .\" .Pp .\" .Ss 使用例 .\" .Pp .\" .Pa /etc/netstart .\" で以下の部分を記述します。 .\" テンプレートがすでに用意されています。 .\" .Pp .\" .Bd -literal -offset indent .\" amd=YES .\" amd_dir=/am # AMD's mount directory .\" amd_master=/etc/amd/master # AMD 'master' map .\" .Ed .\" .Pp .\" .Pa /etc/amd .\" というディレクトリを作成します。 .\" .Pp .\" .Pa /etc/amd/master .\" ファイルを作成します。 .\" .Pa /etc/amd/master .\" の内容: .\" .Pp .\" .Bd -literal -offset indent .\" /home /etc/amd/am-home -cache:=inc .\" .Ed .\" .Pp .\" amdマップとして、am-homeを指定しています。 .\" .Pp .\" .Pa /etc/amd/am-home .\" を作成します。 .\" .Pa /etc/amd/am-home .\" の内容: .\" .Pp .\" .Bd -literal -offset indent .\" /default opts:=rw,intr,soft,bg,grpid,timeo=30;\\ .\" type:=nfs;fs:=${autodir}/home/${key};rfs:=/home .\" .Ed .\" .Pp .\" .Bd -literal -offset indent .\" mizuno host==mercury;type:=ufs;dev:=/dev/sd0a .\" * type:=error .\" .Ed .\" .Pp .\" このような設定を行い、リブートしてください。 .\" .Pa /home/mizuno .\" をアクセスすると、 .\" .Pa /dev/sd0a .\" が .\" .Pa /am/mercury/home/mizuno .\" としてマウントされ、 .\" .Pa /home/mizuno .\" が .\" .Pa /am/mercury/home/mizuno .\" へのシンボリックリンクとなります。 .\" .Pa /home/mizuno .\" 以外がアクセスされるとエラーとなります。 .\" .Pp .\" .Pp .Sh 関連ファイル .Bl -tag -width /axx .It Pa /a 動的にファイルシステムがマウントされるディレクトリ .El .Pp .Sh 注意 マウントマップを作成する場合には注意が必要です。 .Pp .Tn NFS ファイルシステム上のシンボリックリンクは、信じられないほど 非効率的です。 .Tn NFS を実装した多くのシステムでは、 シンボリックリンクの展開結果はカーネルがキャッシュせずに、 .Em lookuppn (パス名変換)時にシンボリックリンクに出会うたびに NFSサーバに対してRPCコールを行うようになっています。 キャッシュをどこかに加えることによって、かなり大きな性能の向上が 得られるはずです。 上手に実現したオートマウントシステムで .Xr symlink 2 を置き換えれば大きくスピードアップすることができますが、 同時に多くのコンテキストスイッチも起こします。 .Pp .Nm amd のすべての機能を駆使できれば非常に便利ですが、 それにはかなりの想像力が必要になります。 .Pp .Sh 関連項目 .Xr hostname 1 , .Xr amq 8 , .Xr mount 8 , .Xr umount 8 .Rs .%T Amd \- The 4.4 BSD Automounter. .\" 以下の参考文献の節も原文にはない。 .\" しかし参考にはなるだろうから この節は残すことにした。(Feb 1997 jpman Sakai) .Sh 参考文献 .Bl -bullet -offset indent -compact .It アスキー UNIX MAGAZINE 1991 4, 5月号: UNIX Communication Notes --- amd .It アスキー NUTSHELL HANDBOOKS: Managing NFS \& NIS --- 自動マウンタ .El .Pp .Re .Sh 作者 .An Jan-Simon Pendry Aq jsp@doc.ic.ac.uk , Department of Computing, Imperial College, London, UK. .Sh 歴史 .Nm amd は 4.4BSD にはじめて導入されました。 diff --git a/ja/man/man8/dump.8 b/ja/man/man8/dump.8 index 4e07d3aa8e..a04a63485b 100644 --- a/ja/man/man8/dump.8 +++ b/ja/man/man8/dump.8 @@ -1,376 +1,376 @@ .\" Copyright (c) 1980, 1991, 1993 .\" 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 acknowledgment: .\" 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. .\" .\" @(#)dump.8 8.1 (Berkeley) 6/16/93 .\" %Id: dump.8,v 1.5.2.9 1998/07/17 20:13:04 jkh Exp % .\" jpman %Id: dump.8,v 1.2 1997/06/12 05:57:09 yugawa Stab % .\" .Dd June 16, 1993 .Dt DUMP 8 .Os BSD 4 .Sh 名称 .Nm dump .Nd ファイルシステムのバックアップ .Sh 書式 .Nm dump .Op Fl 0123456789acknu .Op Fl B Ar records .Op Fl b Ar blocksize .Op Fl d Ar density .Op Fl f Ar file .Op Fl h Ar level .Op Fl s Ar feet .Op Fl T Ar date .Ar filesystem .Nm dump .Op Fl W Li \&| Fl w .Pp .in -\\n(iSu ( .Bx 4.3 形式のオプションは後方互換性のために実装されていますが、 ここでは説明していません。) .Sh 解説 .Nm は、ファイルシステムを調べて バックアップする必要のあるファイルを決定します。 これらのファイルは、指定されたディスク、テープや、 その他の記憶メディアへ保存のためコピーされます (リモートバックアップについては、 .Fl f オプションを参照)。 ダンプの大きさが記録メディアの容量より大きい場合は、 複数ボリュームに分割します。 たいていのメディアの容量は、メディアの終りを通知されるまで 書き込んでみることで決定します。 この方法は、 .Fl a オプションにより強制的に使用することもできます。 .Pp メディアの終りを正しく通知できないメディア (一部の カートリッジ・テープドライブ等) の容量は、 テープ長と記録密度やブロック数のオプションから求め、 各ボリュームはすべて同じ容量を持つものとします。 デフォルトでは、 オペレータにメディア交換を要求した後の各ボリュームにも 同じ出力ファイル名を使用します。 .Pp .Nm は、次のオプションをサポートしています。 .Bl -tag -width Ds .It Fl 0\-9 ダンプレベル。 レベル 0 はフルバックアップを意味し、ファイルシステム全体をコピー することを保証します (ただし以下の .Fl h オプションにも注意して下さい)。 0 より大きなレベル番号はインクリメンタルバックアップを意味し、 前回のダンプ (今回指定したものより低いレベルのダンプ) 以降に作られたか修正されたすべてのファイルをコピーします。 デフォルトのレベルは 0 です。 .It Fl B Ar records ボリュームあたりの 1 KB ブロック数です。 このオプションは、テープ長と記録密度を基にしたテープ容量より 優先されます。 .It Fl a .Dq オートサイズ 全てのテープ長の考慮をせず、メディアの終了を通知されるまで、強制的に 書き込みを続けます。現在のほとんどのテープドライブでは、この方法により もっとも良い結果が得られます。特に、使いかけのテープに追加したり、 ハードウェア圧縮機能のあるテープドライブ(圧縮率がどの程度になるか不確かな もの)を使用したりする場合にこのオプションを使用することをお薦めします。 .It Fl b Ar blocksize ダンプレコードあたりのブロックサイズを K バイト単位で指定します。 .It Fl c カートリッジテープドライブ用に、記録密度とテープ長のデフォルトをそれぞれ 8000 bpi、1700 feet に変更します。 .It Fl h Ar level ダンプレベルが .Ar level 以上の時に、ユーザが指定した .Dq nodump フラグ .Dp Dv UF_NODUMP に従います (h: honor the flag)。 デフォルトの honor レベルは 1 ですから、 そのようなファイルは、インクリメンタルダンプからは省かれますが、 フルバックアップには含まれます。 .It Fl d Ar density テープの記録密度を .Ar density に設定します。デフォルトは 1600BPI です。 .It Fl f Ar file バックアップの出力先ファイルを指定します。 出力先ファイルとしては、 .Pa /dev/rst0 (テープドライブ)や .Pa /dev/rfd1 (フロッピーディスクドライブ)のようなデバイスファイル、 通常ファイル、 .Ql Fl (標準出力)を指定することができます。 -複数のファイル名を、カンマで区切って一つの引数として指定する +複数のファイル名を、コンマで区切って一つの引数として指定する ことができます。 各ファイルは、リストされた順に一つのダンプボリュームに使用されます。 指定した名前の数より多くのボリュームが必要な場合、 メディアの交換を要求した後、最後のファイル名を残りのすべての ボリュームに使用します。 ファイル名が、 .Dq host:file または、 .Dq user@host:file の形式である場合、 .Nm は、 .Xr rmt 8 を使用してリモートホスト上の指定されたファイルに書き込みます。 リモートの .Xr rmt 8 のデフォルトのパス名は .Pa /etc/rmt ですが、環境変数 .Ev RMT の値が優先されます。 .It Fl k リモートのテープサーバとの通信でケルベロス認証を使います。 (このオプションが有効な状態で .Nm がコンパイルされた場合にのみ利用できます。) .It Fl n .Nm がオペレータに注意を促す時に、 .Xr wall 1 に似た方法で .Dq operator グループに属するすべてのユーザにメッセージを送ります。 .It Fl s Ar feet テープの容量を計算する時に記録密度とともに使います。 この容量を超えた場合に、 .Nm は新しいテープを要求します。 このオプションはやや控え目に指定することをお勧めします。 デフォルトのテープの長さは、2300 フィートです。 .ne 1i .It Fl T Ar date .Pa /etc/dumpdates から得られた日時の代わりに、指定された date をダンプの起点として 使います。date の形式は .Xr ctime 3 のそれと同じです。このオプションは期間を指定してバックアップを 取るダンプスクリプトで有用です。 .Fl T オプションは .Fl u オプションと同時には指定できません。 .It Fl u ダンプが成功した後で、 .Pa /etc/dumpdates ファイルを更新します。 .Pa /etc/dumpdates は人が読めるファイルであり、各行に以下のレコードが フリーフォーマットで記録されています : ファイルシステム名、インクリメントレベル、 .Xr ctime 3 形式のダンプ日付。 各レベルとファイルシステムごとにエントリが一つだけ存在します。 必要なら、 .Pa /etc/dumpdates の各フィールドを編集しても構いません。 .It Fl W .Nm は、ダンプの必要があるファイルシステムをオペレータに表示します。 この情報は .Pa /etc/dumpdates と .Pa /etc/fstab ファイルから集められます。 .Nm は、 .Pa /etc/dumpdates の中の各ファイルシステム毎に最新のダンプ日付とレベルを示し、 ダンプするべきファイルシステムを明らかにします。 .Fl W オプションが指定された場合、その他のすべてのオプションは無視され、 .Nm は直ちに終了します。 .It Fl w W と同様ですが、ダンプの必要のあるファイルシステムのみを表示します。 .El .Pp .Nm は、以下に示す場合にオペレータの介入を要求します : テープの終了、 ダンプの終了、 テープ書き込みエラー、 テープオープンエラー、 ディスク読み込みエラー (32 回を越えた場合)。 処理を続けられない時や何か大変まずい事態になった場合には、 .Nm は、 .Fl n オプションがあればすべてのオペレータへ警告したうえで、 .Em dump の制御端末上でオペレータとやりとりします。 .Nm コマンドからのすべての質問には、 .Dq yes または .Dq no で適切に答えなければなりません。 .Pp フルダンプの実施には多くの時間と労力がかかるので、 .Nm は各テープボリュームの先頭にチェックポイントを設定します。 何らかの理由により、あるボリュームの書き込みを失敗した場合には、 テープの巻き戻し、排出、新しいテープのマウントの後で、 .Nm はオペレータの許可の下でチェックポイントから実行を再開します。 .Pp .Nm は処理の進行を定期的にオペレータに報告します。 報告には、少なめに推定される書き込みブロック数、 必要なテープ数、完了までの時間、テープ交換までの時間、 を含みます。 .Nm に使っている端末が使用中であることが他人にも分かるように、 このメッセージは冗長になっています。 .Pp ディスクに壊滅的なトラブルが起きた時に、 バックアップテープやファイルからディスクを復元するために 必要な時間は、 インクリメンタルダンプを適当なシーケンスで実行する事によって 最小にする事ができます。 最小のテープ数でこれを行なう効果的な方法を示します。 .\" staggering .Bl -bullet -offset indent .It 常にレベル 0 のバックアップから開始します。例えば以下の通りです。 .Bd -literal -offset indent /sbin/dump -0u -f /dev/nrst0 /usr/src .Ed .Pp これを一ヵ月か二ヵ月毎に新しいテープに対して実施し、 ずっと保存します。 .It 0 レベルのダンプの後は、アクティブなファイルシステムのダンプを、 修正ハノイの塔アルゴリズムによる 次の様なダンプレベルシーケンスによって、毎日行います。 .Bd -literal -offset indent 3 2 5 4 7 6 9 8 9 9 ... .Ed .Pp 毎日のダンプには、一週間毎に繰り返し使われる事になる 一定の数のテープを使う事ができます。 週毎にレベル 1 ダンプを行ない、毎日のハノイ・シーケンスは レベル 3 から開始します。 週毎のダンプには、ダンプするファイルシステム毎に、これも繰り返し 使われる事になる一定数のテープを使います。 .El .Pp 何ヵ月かの後、毎日と毎週のテープはダンプサイクルから順に外し、 新品のテープを導入すべきです。 .Sh 環境変数 環境変数 .Ev RMT は、リモートの .Xr rmt 8 プログラムのパス名を決定するのに用いられます。 .Sh 関連ファイル .Bl -tag -width /etc/dumpdates -compact .It Pa /dev/rst0 デフォルトのダンプテープユニット .It Pa /etc/dumpdates ダンプの日付を記録するファイル .It Pa /etc/fstab ダンプテーブル : ファイルシステムと頻度を決めるファイル .It Pa /etc/group .Em operator グループを検索する .El .Sh 関連項目 .Xr fstab 5 , .Xr ft 8 , .Xr restore 8 , .Xr rmt 8 .Sh 診断 詳しいメッセージがたくさん出ます。 .Pp 正常時は終了コード 0 で終了します。 開始時のエラーは終了コード 1 で、 異常終了は終了コード 3 で表されます。 .Sh バグ 32 個未満のファイルシステムからの読み取りエラーは無視されます。 .Pp 各リール (ボリューム) ごとに新たなプロセスが作られ、 リールを書き終った親プロセスは テープ全体の書き込みが終るまで待っています。 .Pp 現状では、 .Xr physio 9 スライスのリクエストは 64 KB の塊になります。したがって、それより大きな テープのブロックサイズを使用することはできず、 .Nm はこれが発生するのを防ぎます。 .Pp .Nm の .Fl W や .Fl w オプションは、 .Pa /etc/fstab にリストされていても、 .Pa /etc/dumpdates に記録のないファイルシステムについては報告しません。 .Pp .Nm コマンドが、 ダンプシーケンスについて知っていて、 使い散らかしたテープの使用履歴を管理でき、 どのテープをマウントすれば良いかオペレータに教えてくれ、 .Xr restore を実行するオペレータをもっと助けてくれたら、 もっと使いやすいでしょうね。 .Pp セキュリティ的な歴史により、 .Nm は、root 以外のユーザでリモートバックアップを行うことはできません。 これは、 .Bx Free の今後のバージョンでは修正されるでしょう。 現状では、(従来通り) setuid されていれば正常に動作しますが、 セキュリティ的なリスクを伴います。 .Sh 歴史 .Nm コマンドは、 .At v6 から登場しました。 diff --git a/ja/man/man8/fsdb.8 b/ja/man/man8/fsdb.8 index a3c283274c..ac0d71858d 100644 --- a/ja/man/man8/fsdb.8 +++ b/ja/man/man8/fsdb.8 @@ -1,248 +1,255 @@ .\" %NetBSD: fsdb.8,v 1.2 1995/10/08 23:18:08 thorpej Exp % .\" .\" Copyright (c) 1995 John T. Kohl .\" 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. 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. .\" -.\" %Id: fsdb.8,v 1.3.2.1 1997/03/03 07:01:25 mpp Exp % +.\" %Id: fsdb.8,v 1.3.2.2 1998/08/12 06:15:16 charnier Exp % .\" jpman %Id: fsdb.8,v 1.3 1997/06/23 15:01:41 horikawa Stab % .\" .Dd September 14, 1995 .Dt FSDB 8 .Os FreeBSD .Sh 名称 .Nm fsdb .Nd FFS デバッグ/編集ツール .Sh 書式 .Nm .Op Fl d .Op Fl f .Ar fsname .Sh 解説 .Nm は .Ar fsname (通常は raw ディスクパーティション) を open し、そのファイルシステムの inode データを操作するためのコマンドを受け付けます。コマンドは .Ic "fsdb (inum X)>" のプロンプトに対して入力します。ここでの .Va X は現在選択されている i-number となります。最初に選択されている inode はファイルシステムのルート (i-number 2) となります。 コマンドプロセッサには .Xr libedit 3 ライブラリを使用しており、コマンド行を編集することによってタイピングの 量を減らすことができます。 コマンドループから抜けて終了する時には、ファイルシステムのスーパブロック が dirty とマークされ、バッファリングされているブロックがあれば ファイルシステムに書き込まれます。 .Pp .Fl d オプションを指定すると、デバッグ情報 (元は .Xr fsck 8 のコードに由来するもの) を出力します。 .Pp .Fl f オプションは歴史的な理由により残されているもので、特に意味は持ちません。 .Sh コマンド 組み込みの .Xr libedit 3 のコマンドの他に .Nm は以下のコマンドをサポートしています: .Pp .Bl -tag -width indent -compact .It Cm help 入力できるコマンドのリストを表示します。 .Pp .It Cm inode Ar i-number 新しい現在の inode として inode .Ar i-number を選択します。 .Pp .It Cm back 以前の inode に戻ります。 .Pp .It Cm clri 現在の inode をクリアします。 .Pp .It Cm lookup Ar name .It Cm cd Ar name .Ar name を現在のディレクトリの中で探し、その inode を現在の inode に設定します。 .Ar name はマルチコンポーネントの名前か、スラッシュで始めて検索をルートの inode から始めることを指定できます。パス名の中のコンポーネントが見 つからない場合、最後に有効であったディレクトリがアクティブな inode と して使われます。 .br このコマンドは開始する inode がディレクトリの場合のみ有効です。 .Pp .It Cm active .It Cm print アクティブな inode を表示します。 .Pp .It Cm uplink アクティブな inode のリンク数をインクリメントします。 .Pp .It Cm downlink アクティブな inode のリンク数をデクリメントします。 .Pp .It Cm linkcount Ar number アクティブな inode のリンク数を .Ar number に設定します。 .Pp .It Cm ls 現在の inode のディレクトリエントリをリストします。このコマンドは現在 の inode がディレクトリである場合のみ有効です。 .Pp .It Cm rm Ar name .It Cm del Ar name 現在のディレクトリ inode からエントリ .Ar name を取り除きます。このコマンドは現在の inode がディレクトリで ある場合のみ有効です。 .Pp .It Cm ln Ar ino Ar name 現在のディレクトリ inode に inode .Ar ino へのリンクを .Ar name の名前で作成します。このコマンドは現在の inode がディレクトリである場 合のみ有効です。 .Pp .It Cm chinum Ar dirslot Ar inum ディレクトリエントリ .Ar dirslot 中の i-number を .Ar inum に変更します。 .Pp .It Cm chname Ar dirslot Ar name ディレクトリエントリ .Ar dirslot 中の名前を .Ar name に変更します。 このコマンドではディレクトリエントリを拡張することはできません。名前が 現在存在するディレクトリスロットに収まる場合にのみ、エントリの名前の変 更が可能です。 .Pp .It Cm chtype Ar type 現在の inode のタイプを .Ar type に変更します。 .Ar type には .Em file , .Em dir , .Em socket , .Em fifo のいずれかが指定できます。 .Pp .It Cm chmod Ar mode 現在の inode のモードビットを .Ar mode に変更します。 このサブコマンドではファイルのタイプを変更することはできません。その場 合は .Ic chtype を使ってください。 .Pp .It Cm chflags Ar flags 現在の inode のファイルフラグを .Ar flags に変更します。 .Pp .It Cm chown Ar uid 現在の inode の所有者を .Ar uid に変更します。 .Pp .It Cm chgrp Ar gid 現在の inode のグループを .Ar gid に変更します。 .Pp .It Cm chgen Ar gen 現在の inode の世代番号 (generation number) を .Ar gen に変更します。 .Pp .It Cm mtime Ar time .It Cm ctime Ar time .It Cm atime Ar time それぞれ、現在の inode の修正時間、変更時間、アクセス時間を .Ar time に変更します。 .Ar time は .Em YYYYMMDDHHMMSS[.nsec] の形式でなければなりません。ここで、 .Em nsec はオプションで指定できるナノ秒の値となります。もし、ナノ秒が指定されて いないと、 .Va mtimensec , .Va ctimensec , .Va atimensec のそれぞれのフィールドにはゼロがセットされます。 .Pp .It Cm quit, Cm q, Cm exit, Em プログラムを終了します。 .El .Sh 関連項目 .Xr libedit 3 , .Xr fs 5 , .Xr clri 8 , .Xr fsck 8 .Sh バグ ``short'' のシンボリックリンクの操作は動作しません。(特に、 シンボリックリンクのタイプは変更しないでください。) .br モードはシンボル名ではなく数字で指定してください。 .br 多分 .Nm に実装されていないことで、もっとやりたいことが沢山あるでしょう。 .br .Xr libedit 3 のリファレンスページはまだ書かれていません。 .Sh 歴史 .Nm は .Xr fsck 8 のソースコードを使ってファイルシステムの操作のコードのほとんどを実装し ています。 .Nm -の残りの部分は NetBSD において John T. Kohl によって最初に書かれました。 +の残りの部分は、最初 +.Bx Net +において +.An John T. Kohl +によって書かれました。 .br -FreeBSD へは Peter Wemm によって移植されました。 +.Bx Free +への移植は +.An Peter Wemm +によって行われました。 .Sh 警告 このツールは最大限に注意を払って使って下さい。 .Xr fsck 8 を使っても修復できないほど FFS ファイルシステムを壊す恐れがあります。 diff --git a/ja/man/man8/ipfw.8 b/ja/man/man8/ipfw.8 index 8f898d52d9..fcb4c37871 100644 --- a/ja/man/man8/ipfw.8 +++ b/ja/man/man8/ipfw.8 @@ -1,510 +1,516 @@ .Dd July 20, 1996 .\" jpman %Id: ipfw.8,v 1.4 1997/05/19 17:19:51 horikawa Stab % .Dt IPFW 8 SMM .Os FreeBSD .Sh 名称 .Nm ipfw .Nd IPファイアウォール制御ユーティリィティ .Sh 書式 -.Nm +.Nm ipfw +.Oo +.Fl q +.Oc .Ar file .Nm ipfw .Oo .Fl f | .Fl q .Oc flush .Nm ipfw .Oo .Fl q .Oc zero .Op Ar number ... .Nm ipfw delete .Ar number ... .Nm ipfw .Op Fl aftN list .Op Ar number ... .Nm ipfw .Oo .Fl ftN .Oc show .Op Ar number ... .Nm ipfw .Oo .Fl q .Oc add .Op Ar number .Ar action .Op log .Ar proto from .Ar src to .Ar dst .Op via Ar name | ipno .Op Ar options .Sh 解説 書式の 1 行目のようにファイル名を指定した場合は、 .Ar file を 1 行ずつ、引数として読み込みます。 .Pp .Nm はパケットごとに、マッチするルールが見つかるまでルールリストを調べます。 各ルールにはパケット数とパケットサイズの 2 つのカウンタが用意されていて、 パケットがマッチするとカウンタ値は更新されます。 .Pp 全ルールは 1 から 65534 の範囲の行番号で順序付けられます。この番号によって ルールの並べ変えと削除を行ないます。 ルールのマッチングは昇順で行なわれ、最初にマッチしたものが適用されます。 複数のルールが同じ番号を共有することも可能です。この場合はルールが追加された 順序でマッチングが行なわれます。 .Pp 番号を指定せずにルールを追加した場合は、直前のルールの番号に 100 を加えたものと なります。 ルールの番号が 65434 より大きい場合は、新しいルールは最後のルールに追加されます 。 .Pp delete 操作は .Ar number で指定された番号を持つ最初のルールを、もし有れば、削除します。 .Pp list 操作は現在のルール一覧を出力します。 .Pp show 操作は `ipfw -a list' と同じ結果を出力します。 .Pp zero 操作は .Ar number で指定された番号を持つルールのカウンタをクリアします。 .Pp flush 操作は全ルールを削除します。 .Pp 記号 `#' で始まる行および空行は無視されます。 .Pp どんな場合でも次のルールは存在します: .Bd -literal -offset center 65535 deny all from any to any .Ed .Pp 全パケットを拒否するのがデフォルトのポリシーです。 これを修正し、必要なルールを設定して下さい。 .Pp オプションは以下のものが利用可能です。 .Bl -tag -width flag .It Fl a list 操作の時、カウンタの値を表示します。 show の項を参照のこと。 .It Fl f 操作を実行する際に確認メッセージを表示しません。 flush 操作も無条件に実行されます。 .Ar (注意) プロセスに tty が関連付けられていない場合には、 このオプションが指定されているものとして実行されます。 .It Fl q -ルールを add, zero, flush する際に、メッセージの出力を抑制します -('-f' も含まれます)。 +ルールを add, zero, flush する際に、メッセージの出力を抑制します ( +.Fl -f +も含まれます)。 このオプションは、リモートログインセッションでルールを調整する際に、 (例えば sh /etc/rc.firewall のようにして)スクリプトの中から複数の ipfw コマンド を 実行する場合や、 多数の ipfw ルールを記述したファイルを用いる場合に 便利です。 flush 操作が通常の(冗舌な)状態で実行されると、メッセージが出力されます。 ここで、すべてのルールは削除されるので、メッセージをログインセッションに 送ることができず、ログインセッションがクローズされてしまうので、 残りのルールセットは実行されません。 この状態を修復するにはコンソールへのアクセスが必要となります。 .It Fl t list 操作の時に、最後にマッチしたパケットのタイムスタンプを表示します。 .It Fl N IPアドレスとサービス名をリゾルブしてホスト名で表示します。 .El .Pp .Ar action : .Bl -hang -offset flag -width 1234567890123456 .It Ar allow マッチするパケットを通過させ、マッチングを終了します。 .Ar pass , .Ar permit , .Ar accept と同じです。 .It Ar deny マッチするパケットを破棄し、マッチングを終了します。 .Ar drop は .Ar deny と同じです。 .It Ar reject (パケットを送らないよう嘆願) マッチするパケットを破棄し、 ICMP の host unreachable を送信して、終了します。 .It Ar unreach code パケットを破棄し、ICMP の unreachable に .Ar code を付けて送信します。 .Ar code は、 0 から 256 までの数字、もしくは、以下に列挙する別名のいずれかです: .Ar net, .Ar host , .Ar protocol , .Ar port , .Ar needfrag , .Ar srcfail , .Ar net-unknown , .Ar host-unknown , .Ar isolated , .Ar net-prohib , .Ar host-prohib , .Ar tosnet , .Ar toshost , .Ar filter-prohib , .Ar host-precedence , .Ar precedence-cutoff 。送信後、終了します。 .It Ar reset TCP パケットのみに対応。 パケットを破棄し、TCP の (RST) を送信し、終了します。 .It Ar count マッチするパケットのカウンタを更新し、引続きマッチングを行ないます。 .It Ar divert port マッチするパケットを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、マッチングを終了します。 .It Ar tee port マッチするパケットのコピーを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、引続きマッチングを行ないます。 .It Ar skipto number .Ar number より小さな番号のルールを飛び越して、 .Ar number 以上の番号のルールで最初に存在するものから、マッチングを継続します。 .El .Pp パケットが .Ar divert や .Ar tee のどちらかひとつ以上、もしくは両方の組合せの、複数のルールにマッチした場合、 最後のものを除き、無視します。 .Pp カーネルが .Dv IPFIREWALL_VERBOSE オプション付きでコンパイルされている場合に、``log'' が指定されているルールと マッチした時は、メッセージをコンソールに表示します。 もし、 .Dv IPFIREWALL_VERBOSE_LIMIT オプション付きでコンパイルされている場合、一連のルールに対し指定されたパケット 数を受信した後、メッセージの表示を中止します。 パケットのカウンタをクリアすれば再びメッセージを出力します。 .Pp コンソールへの表示とその制限数は、 .Xr sysctl 8 を通し、直接設定できます。 .Pp .Ar proto : .Bl -hang -offset flag -width 1234567890123456 .It Ar ip 全パケットがマッチします。別名 .Ar all も使えます。 .It Ar tcp TCP パケットのみマッチします。 .It Ar udp UDP パケットのみマッチします。 .It Ar icmp ICMP パケットのみマッチします。 .It Ar 指定されたプロトコルのパケットのみマッチします ( .Pa /etc/protocols のリストを参照の事) .El .Pp .Ar src と .Ar dst : .Pp .Bl -hang -offset flag .It Ar
.Op Ar ports .El .Pp .Em
は以下のように指定できます。 .Bl -hang -offset flag -width 1234567890123456 .It Ar ipno IP番号を 1.2.3.4 の形式で指定します。指定されたアドレスのみがマッチします。 .It Ar ipno/bits IP番号とネットマスクの幅を 1.2.3.4/24 の形式で指定します。 この場合は 1.2.3.0 から 1.2.3.255 のアドレスがマッチします。 .It Ar ipno:mask IP番号とネットマスクの幅を 1.2.3.4:255.255.240.0 の形式で指定します。 この場合は 1.2.0.0 から 1.2.15.255 のアドレスがマッチします。 .El .Pp アドレスの前に ``not'' を付けることによって、マッチの意味を反転させる ことができます(指定されたアドレス以外の総てのアドレスがマッチします)。 これはポート番号には影響しません。 .Pp TCP と UDP ではさらに、 .Em ports を以下のように指定できます。 .Pp .Bl -hang -offset flag .It Ns {port|port-port} Ns Op ,port Ns Op ,... .El .Pp ポート番号の代わりに(ファイル .Pa /etc/services から取った)サービス名を使用できます。 port-port の書式で、最初の値に限り範囲指定できます。 列挙出来るポート数は .Pa /usr/src/sys/netinet/ip_fw.h で .Dv IP_FW_MAX_PORTS として定義されています。 .Pp 断片化されたパケットでオフセットが非 0 のもの (すなわち、最初の断片ではないもの) は、 一つ以上のポート仕様を持つルールにはマッチしません。? 断片化されたパケットへのマッチングに関する詳細は .Ar frag オプションを参照してください。 .Pp マッチングのルールは、入ってくるパケットか、出ていくパケット、もしくはその両方 に対し適応されます。 .Ar in を指定すれば、入ってくるパケットのみにルールを適応します。 .Ar out を指定すれば、出ていくパケットのみに適応します。 .Pp 特定のインタフェースを通過するパケットには、 .Ar via を用いてインタフェースを指定します: .Bl -hang -offset flag -width 1234567890123456 .It Ar via ifX .Ar ifX を通過するパケットを指定します。 .It Ar via if* .Ar ifX を通過するパケットを指定します。X はいずれかのユニットの番号です。 .It Ar via any .Em いずれか のインタフェースを通過するパケットを指定します。 .It Ar via ipno IP アドレスが .Ar ipno のインタフェースを通過するパケットを指定します。 .El .Pp .Ar via を用いると、常時指定されたインタフェースがチェックされます。 .Ar recv や .Ar xmit を、 .Ar via の代わりに指定すると、 受信、もしくは送信インタフェースのみが(各々に)チェックされます。 両方を指定すれば、 受信と送信の両方のインタフェースを通るパケットを指定できます。 例 : .Pp .Dl "ipfw add 100 deny ip from any to any out recv ed0 xmit ed1" .Pp .Ar recv で指定したインタフェースでは、受信と送信、両方のパケットをチェックできます。 それに対し、 .Ar xmit で指定したインタフェースでは、送信パケットのみとなります。 それゆえに、 .Ar xmit を指定すると .Ar out が、必須です( .Ar in は不可)。 .Ar via と共に .Ar xmit もしくは、 .Ar recv を指定する事はできません。 .Pp 個々のパケットは、受信用ないし送信用インタフェースを持たないかもしれません。 ローカルホストで発生したパケットには受信用のインタフェースはないし、 ローカルホスト内宛のパケットは、送信用インタフェースが有りません。 .Pp 追加用 .Ar options : .Bl -hang -offset flag -width 1234567890123456 .It frag パケットが断片(フラグメント)化されたデータグラムの一部で、かつデータグラムの 先頭の断片でない場合にマッチします。 .Ar frag を、 .Ar tcpflags や TCP/UDP ポート仕様と共に使用することはできません。 .It in ネットワークから受信したパケットのみマッチします。 .It out ネットワークへ送信するパケットのみマッチします。 .It ipoptions Ar spec IP ヘッダが、 .Ar spec に指定されたコンマで区切られたオプションのリストを含む場合にのみマッチします。 サポートされている IP オプションは .Ar ssrr (strict source route), .Ar lsrr (loose source route), .Ar rr (record packet route), .Ar ts (timestamp) です。 ``!'' によって、特定のオプションを含めないよう指定できます。 .It established RST または ACK ビットがセットされているパケットのみマッチします。 このビットがセットされることがあるのは TCP のパケットのみです。 .It setup SYN ビットがセットされ ACK がセットされていないパケットのみマッチします。 このビットがセットされることがあるのは TCP のパケットのみです。 .It tcpflags Ar spec TCP ヘッダが .Ar spec に指定されたコンマで区切られたフラグのリストを含む場合にのみマッチします。 サポートされているフラグは、 .Ar fin , .Ar syn , .Ar rst , .Ar psh , .Ar ack , .Ar urg です。 ``!'' によって、特定のフラグを含めないよう指定できます。 .Ar tcpflags 仕様を含むルールは非 0 のオフセットを持つ断片化されたパケットに マッチすることはありません。 断片化されたパケットに関するマッチについての詳細は .Ar frag オプションを参照してください。 .It icmptypes Ar types ICMP タイプが .Ar types で指定されたリスト中に存在する場合にのみ適用されるルールとなります。 リストはレンジの組み合わせでも、各タイプをコンマで区切ったものでもどちらでも かまいません。 .El .Sh チェックリスト ルールを構成する際に考慮すべき重要な点を述べます。 .Bl -bullet -hang -offset flag .It かならず送信パケットと受信パケットの両方のパケットをフィルタリングします。 ほとんどのネットワークコネクションではパケットが双方向に流れることが必要です。 .It テストは細心の注意を払って行ないます。テストの際にはコンソールの近くにいる のがよいでしょう。 .It ループバックインタフェースのことを忘れてはなりません。 .El .Sh 長所 ファイアウォールが常に破棄するパケットが 1 種類あります。 フラグメントオフセットが 1 のフラグメントパケットです。 これはパケットとしては有効なものですが、利用目的はファイアウォールを かいくぐることしかありません。 .Pp ネットワーク越しにログインしている場合、LKM 版の .Nm をロードすることはそれほど単純なことではありません。 以下のコマンドを奨めます。 .Bd -literal -offset center modload /lkm/ipfw_mod.o && \e ipfw add 32000 allow all from any to any .Ed .Pp これに引続き、同じような状況で .Bd -literal -offset center ipfw flush .Ed .Pp とするのは良くありません。 .Sh パケットの行き先変更 指定されたポートを見ているソケットは、そのポートへ行き先変更されたパケットを、 全部受けとります。 .Xr divert 4 を参照して下さい。ポートを見ているソケットがない場合やカーネルがパケットの行き 先変更をサポートするようにはコンパイルされていない場合、パケットは破棄されます 。 .Sh 使用例 次のコマンドは .Em hacker.evil.org から .Em wolf.tambov.su の telnet ポートへ送られる全ての TCP パケットを拒否するルールを追加します。 .Pp .Dl ipfw add deny tcp from hacker.evil.org to wolf.tambov.su 23 .Pp 次のコマンドはネットワーク hackers からホスト my への全てのコネクションを 拒否します。 .Pp .Dl ipfw add deny all from 123.45.67.0/24 to my.host.org .Pp 次はカウントされている情報とタイムスタンプを見る例です .Pp .Dl ipfw -at l .Pp これはタイムスタンプを省略して次のように指定できます。 .Pp .Dl ipfw -a l .Pp 次のルールは 192.168.2.0/24 からの全ての受信パケットを、5000番のポートに 行き先変更するものです。 .Pp .Dl ipfw divert 5000 all from 192.168.2.0/24 to any in .Sh 関連項目 .Xr ip 4 , .Xr ipfirewall 4 , .Xr divert 4 , .Xr protocols 5 , .Xr services 5 , .Xr reboot 8 , .Xr syslogd 8 , .Xr sysctl 8 .Sh バグ .Pp .Em WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!! .Pp このプログラムはコンピュータをかなり使いにくい状態にしてしまう可能性があります 。 はじめて使用する時はコンソール上で実行し、理解していない操作は .Em 絶対に実行しない ようにして下さい。 .Pp 連続したエントリの操作もしくは追加に際し、サービス名やプロトコル名は使用できま せん。 .Pp 入ってきたパケットの断片(フラグメント)が .Ar divert によって行き先を変更されると、ソケットに配送される前に、組み立て直しをします。 それに対し、 .Ar tee を経由した断片(フラグメント)は、組み立て直しされません。 .Pp ポートの別名でダッシュ (-) を含むものは、リストの最初には書けません。 .Sh 作者 -Ugen J. S. Antsilevich, -Poul-Henning Kamp, -Alex Nash, -Archie Cobbs. -API based upon code written by Daniel Boulet for BSDI. +.An Ugen J. S. Antsilevich , +.An Poul-Henning Kamp , +.An Alex Nash , +.An Archie Cobbs . +API は +.An Daniel Boulet +が BSDI 向けに記述したコードに基づいています。 .Sh 歴史 .Nm は、FreeBSD 2.0 で最初に現れました。 diff --git a/ja/man/man8/ldconfig.8 b/ja/man/man8/ldconfig.8 index 574fe37113..92d4c443f9 100644 --- a/ja/man/man8/ldconfig.8 +++ b/ja/man/man8/ldconfig.8 @@ -1,161 +1,161 @@ .\" .\" Copyright (c) 1993 Paul Kranenburg .\" 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 Paul Kranenburg. .\" 3. 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. .\" .\" %Id: ldconfig.8,v 1.9.2.4 1998/03/03 07:00:19 jkh Exp % .\" jpman %Id: ldconfig.8,v 1.3 1997/07/22 16:49:42 horikawa Stab % .\" .Dd October 3, 1993 .Dt LDCONFIG 8 .Os FreeBSD .Sh 名称 .Nm ldconfig .Nd 共有ライブラリのキャッシュを設定する .Sh 書式 .Nm ldconfig .Op Fl Rmrsv .Op Fl f Ar hints_file .Op Ar directory | file Ar ... .Sh 解説 .Nm は、実効時リンカ .Xr ld.so 1 が、複数のディレクトリから利用可能な共有ライブラリを速く捜し出せるよう につかわれる .Dq ヒント の集合を準備するために使われます。 コマンドは、組み込みのシステムディレクトリと コマンドラインで指定された任意の .Ar ディレクトリ (を指定された順番) で共有ライブラリを探し、 その結果を .Pa /var/run/ld.so.hints に保存します。 これは、 .Xr ld.so 1 が要求された共有ライブラリを読み込む際のディレクトリ検索操作 オーバヘッドをあらかじめ払っていることになります。 .Pp コマンドラインにて指定するファイル名は共有ライブラリを検査するディクトリ を含むことが期待されます。 各ディレクトリのパス名は改行文字から始まる必要があります。 空行およびコメント文字 .Ql \&# から始まる行は無視されます。 このファイルの標準の名前は、 .Xr /etc/ld.so.conf. です。 .Pp 共有ライブラリは、実行されようとするプログラムによって必要とされる ならば、利用可能なものが自動的に読み込まれることになります。 これは、実行形式に検索パスを保存する必要性を無くします。 .Pp .Ev LD_LIBRARY_PATH 環境変数は、キャッシュから使用するディレクトリ (や、その順序関係) を 上書きしたり、共有ライブラリを探す追加のディレクトリを 指定するために使われます。 .Ev LD_LIBRARY_PATH は、共有ライブラリを読み込む必要がある時、 .Xr ld.so 1 によって検索されるディレクトリパスのリストを コロン .Sq \: で区切って指定します。 これは、 .Xr ld 1 における .Fl L オプションと、実行時点では等価です。 .Pp .Nm ldconfig は典型的にはブート時の手続きのひとつとして実行されます。 .Pp 以下のオプションが .Nm ldconfig で認識されます。 .Bl -tag -width indent .It Fl R 以前に設定したディレクトリを再度検索します。 以前作成したヒントファイルをオープンし、 ヘッダからディレクトリリストを取り出します。 コマンドラインに指定したパス名も処理します。 .It Fl f Ar hints_file .Pa /var/run/ld.so.hints の変わりに、 特定のヒントファイルを読み込んだり、更新したり、その両方を 行ったりします。 このオプションは、テストのために提供されています。 .It Fl m ヒントファイルの内容を指定されたディレクトリで見付かったものに 置き換える代わりに、新しいディレクトリの内容を .Dq 併合 (merge) します。 以前の .Nm の実行によってヒントファイル内に記録されているディレクトリも、 新しい共有ライブラリのために再び検索されます。 .It Fl r 現在のヒントファイルの中身について、標準出力に表示します。 ヒントファイルは変更されません。 -ヒントファイル中のディレクトリリストが組込まれます。 +ヒントファイル中のディレクトリリストが組み込まれます。 .It Fl s 共有ライブラリのために、システムの組み込みディレクトリ .Pq Dq /usr/lib を検索しません。 .It Fl v 冗長モードに切替えます。 .Sh セキュリティ .Ev セット uid (set-user-Id) プログラムのアドレス空間に共有ライブラリを読み込む時には、 特別の注意をしなければなりません。 そのようなプログラムが実行される時はいつでも、 .Nm ld.so はヒントファイルからだけ共有ライブラリを読み込みます。 特に、 .Ev LD_LIBRARY_PATH は、ライブラリを探すためには使われません。 したがって、 ldconfig の役割には二つあります。 素早い検索のためにヒント集合を作成することに加えて、 共有オブジェクトが共有ライブラリを安全に読み込むことができる ディレクトリの集まりを特定することも、その役割です。 .Nm ldconfig によって特定されたディレクトリ集合は、システム管理者の制御下にあること が仮定されています。 .Sh 関連ファイル .Bl -tag -width /var/run/ld.so.hintsxxx -compact .It Pa /var/run/ld.so.hints デフォルトの .Dq ヒント ファイル。 .Sh 関連項目 .Xr ld 1 , .Xr link 5 .Sh 歴史 .Nm ユーティリティーは SunOS 4.0 ではじめに現れました。 現在の形は、 FreeBSD 1.1 からです。 diff --git a/ja/man/man8/mixer.8 b/ja/man/man8/mixer.8 index 4701cd7c15..5ccef81d7c 100644 --- a/ja/man/man8/mixer.8 +++ b/ja/man/man8/mixer.8 @@ -1,138 +1,137 @@ .\" Copyright (c) 1997 .\" Mike Pritchard . 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. Neither the name of the author 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 MIKE PRITCHARD 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 AUTHOR 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. .\" .\" jpman %Id: mixer.8,v 1.3 1997/08/16 13:24:56 horikawa Stab % .Dd January 9, 1997 .Dt MIXER 8 .Os .Sh 名称 .Nm mixer .Nd サウンドカードのミキサ値の設定/表示 .Sh 書式 .Nm .Op Fl f Ar device .Oo .Oo Ns .Ar dev Op Ar lvol Ns Op Ar :rvol .Li | recsrc | .Ar {^|+|-|=}rec rdev .Oc .Ar ... \& .Oc .Sh 解説 .Nm コマンドはサウンドカードのミキサデバイスのレベルを変更あるいは表示するのに 用いられます。 サウンドカードからの録音の開始および停止の制御にも用いられます。 変更可能なミキサデバイスは以下の通りです: .Pp .Bd -ragged -offset indent vol, bass, treble, synth, pcm, speaker, mic, cd, mix, pcm2, rec, igain, ogain, line1, line2, line3 .Ed .Pp 必ずしも上記全てのミキサデバイスが設定可能なわけではありません。 .Pp .Nm が引数なしで起動されると、 サポートされている全デバイスが現在の値と共に表示されます。 引数 .Ar dev が指定されると、その .Ar dev の設定値だけが表示されます。 .Pp ミキサの値 .Ar dev を変更する場合、オプションにより .Ar lvol Ns Op Ar :rvol の形式で左右のチャネル設定を指定できます。 .Ar lvol および .Ar rvol 引数の値は 0 から 100 までです。 .Pp 録音デバイスを変更するには以下のいずれかを行ないます: .Bl -tag -width =rec -offset indent .It ^rec .Ar rdev が録音可能デバイスであるかどうかを切り替える .It +rec .Ar rdev を可能な録音デバイスに加える .It -rec .Ar rdev を可能な録音デバイスから取り除く .It =rec 録音デバイスを .Ar rdev と設定する .El .Pp 上記コマンドは内部マスク上で動作します。 全オプションが解析されると、 設定がなされてからサウンドカードのマスクが読まれます。 これにより、サウンドカードが録音デバイスに何を使用しているのかを 「正確」に知ることができます。 .Pp オプション recsrc は現在の録音デバイスを表示します。 .Pp オプション .Fl f .Pa /dev/mixer は .Ar device をミキサデバイスとしてオープンします。 これが動作するのは、 .Fl f オプションが .Nm コマンドの直後の場合「のみ」です。 .Sh 関連ファイル .Bl -tag -width /dev/mixer -compact .It Pa /dev/mixer デフォルトのミキサデバイス .Sh 関連項目 .Xr cdcontrol 1 , .Xr cdplay 1 .Sh 歴史 .Nm コマンドは .Fx 2.0.5 で初めて登場しました。 .Sh 作者 -がオリジナルのソースを .An Craig Metz Aq cmetz@thor.tjhsst.edu と .An Hannu Savolainenl -が作成しました。 +がオリジナルのソースを作成しました。 ほとんどを .An John-Mark Gurney Aq jmg@FreeBSD.org が書き直しました。 このマニュアルページは .An Mike Pritchard Aq mpp@FreeBSD.org -によって記述されました。 +が記述しました。 diff --git a/ja/man/man8/mount.8 b/ja/man/man8/mount.8 index c90c927426..16800429b4 100644 --- a/ja/man/man8/mount.8 +++ b/ja/man/man8/mount.8 @@ -1,346 +1,347 @@ .\" Copyright (c) 1980, 1989, 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. .\" .\" @(#)mount.8 8.7 (Berkeley) 3/27/94 -.\" %Id: mount.8,v 1.11.2.4 1998/07/20 02:33:46 jkoshy Exp % +.\" %Id: mount.8,v 1.11.2.5 1998/08/12 06:19:35 charnier Exp % +.\" .\" jpman %Id: mount.8,v 1.2 1997/05/03 11:26:50 horikawa Stab % .\" .Dd March 27, 1994 .Dt MOUNT 8 .Os BSD 4 .Sh 名称 .Nm mount .Nd ファイルシステムをマウントする .Sh 書式 .Nm mount .Op Fl adfpruvw .Op Fl t Ar ufs | lfs | external_type .Nm mount .Op Fl dfpruvw .Ar special | node .Nm mount .Op Fl dfpruvw .Op Fl o Ar options .Op Fl t Ar ufs | lfs | external_type .Ar special node .Sh 解説 -.Nm mount +.Nm コマンドは .Xr mount 2 システムコールを使用して、 .Ar "スペシャルデバイス" かリモートノード (rhost:path) を ファイルシステムツリーの .Ar node へ接合します。 もし .Ar special または .Ar node が指定されなかった場合には、 .Xr fstab 5 ファイルから適切な情報を取得します。 .Pp システムは、現在マウントしているファイルシステムのリストを管理しています。 -.Nm mount +.Nm コマンドを引数を与えずに実行すると、このリストが表示されます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width indent .It Fl a .Pa /etc/fstab に記述されているファイルシステムを (``noauto'' が指定されているものは除いて) すべてマウントします。 通常、これはシステムの起動時に実行されます。 .It Fl d システムコールの実行以外のすべてのことを行ないます。 このオプションを .Fl v とともに指定することで、 -.Nm mount +.Nm コマンドが何をしようとしているのかを確認することができます。 .It Fl f ファイルシステムのマウント状態を読み書き可能から読み込み専用へ 変更しようとするときに、 すでにオープンされているファイルへの書き込み許可を強制的に取り消します。 また、正常かどうか不明なファイルシステムも強制的に読み書き可能に マウントします (危険なため注意して使って下さい)。 .It Fl o オプションは .Fl o -の後にカンマで区切って指定します。 +の後にコンマで区切って指定します。 以下のオプションが指定できます: .Bl -tag -width indent .It async 指定したファイルシステムのすべての .Tn I/O を非同期に行います。 このフラグを指定することは非常に .Em 危険 ですので、 システムクラッシュ時にファイルシステムを 作り直す用意ができていないかぎりは使うべきではありません。 .It force .Fl f オプションと同じです。 ファイルシステムのマウント状態を読み書き可能から読み込み専用へ 変更しようとするときに、 すでにオープンされているファイルへの書き込み許可を強制的に取り消します。 また、正常かどうか不明なファイルシステムも強制的に読み書き可能に マウントします (危険なため注意して使って下さい)。 .It noatime ファイル読み取り時に、ファイルアクセス時刻を更新しません。 このオプションが便利なのは、 多くのファイルを持ち、(ほとんどの場合重要ではない)ファイルアクセス時刻 を更新するよりも性能が重要であるファイルシステムです。 このオプションは現在ローカルファイルシステムでのみサポートされています。 .It nodev ファイルシステム上のキャラクタスペシャルデバイスや ブロックスペシャルデバイスを解釈しません。 このオプションは、サーバが自分自身以外のアーキテクチャ用の スペシャルデバイスを含むファイルシステムを持っている場合に有用です。 .It noexec マウントしているファイルシステム上のバイナリの 実行を許可しません。 このオプションは、サーバが自分自身以外のアーキテクチャ用の バイナリを含むファイルシステムを持っている場合に有用です。 .It nosuid 実効ユーザ ID (set-user-ID) セット、 実効グループ ID (set-group-ID) セットビットの 効果をなくします。 注意: .Xr suidperl 1 のような suid/sgid ラッパが 誰でも使えるようにシステムにインストールされている場合には、価値がありません。 .It rdonly .Fl r と同じく、マウントするファイルシステムを読み込み専用とします (スーパユーザでも書き込みできなくなります)。 .It sync ファイルシステムのすべての .Tn I/O を同期的に行います。 .It update .Fl u と同じく、すでにマウントされているファイルシステムの状態を変化させることを 指示します。 .It union マウントポイント以下の名前空間に、マウントされたファイルシステムのルートと マウントポイントに元から存在するディレクトリの両方が見えるようにします。 名前を検索するときは、マウントしたファイルシステムが先に検索されます。 ファイルが存在しない ために検索が失敗した場合は、既存のディレクトリがアクセスされます。 ファイル等の作成は、すべて マウントしたファイルシステム上に対して行われます。 .El .Pp -.Nm mount +.Nm が内部で知っているファイルシステムタイプ .Pf ( Fl t オプションを参照) 以外の、ファイルシステムタイプに固有のオプションは、 コンマで区切って指定します。このオプションは、オプションの前に .Dq \&- (ダッシュ記号)をつけて区別します。値を持つオプションは、 -option=valueの形で指定します。 たとえば、 .Bd -literal -offset indent mount -t mfs -o nosuid,-N,-s=4000 /dev/dk0b /tmp .Ed .Pp では、 -.Nm mount +.Nm コマンドは以下と同じものを実行します: .Bd -literal -offset indent /sbin/mount_mfs -o nosuid -N -s 4000 /dev/dk0b /tmp .Ed .It Fl p マウント情報を fstab の形式で表示します。暗黙的に .Fl v オプションを指定します。 .It Fl r ファイルシステムをリードオンリーで マウントします(スーパユーザでも書き込みは行えません)。 これは、 .Fl o オプションで .Dq rdonly を指定するのと同じです。 .It Fl t Ar "ufs \\*(Ba lfs \\*(Ba external type" .Fl t のあとの引数にはファイルシステムタイプを指定します。 デフォルトは、 .Ar ufs です。 .Fl t オプションによって、 -.Nm mount +.Nm コマンドの操作が、指定した特定のタイプのファイルシステムに対してのみ 行われるように指示することができます。 2つ以上のタイプを指定するにはコンマで区切ります。 ファイルシステムリスト の先頭に .Dq no という文字をつけることに よって、 -.Nm mount +.Nm コマンドの操作の対象と .Em しない ファイルシステムタイプを指定することができます。 以下に例を示します: .Bd -literal -offset indent mount -a -t nonfs,mfs .Ed .Pp は、 .Tn NFS と .Tn MFS を除いた、すべてのファイルシステムをマウントします。 .Pp type を内部で解釈できない場合、 -.Nm mount +.Nm は .Pa /sbin/mount_ Ns Em XXX というプログラムを実行しようとします。 .Em XXX の部分が type になります。たとえば nfs ファイルシステムは、 .Pa /sbin/mount_nfs というプログラムによってマウント されます。 .Pp ほとんどのファイルシステム用モジュールは カーネル中にない場合、ファイルシステム別のマウントプログラム によって動的に読み込まれます。 そこでは .Xr vfsload 3 サブルーチンが使われます。 この機構には書き込み可能な作業領域が必要なため、 .Pa /tmp があるファイルシステムタイプのモジュールはカーネルに 組み込まれている必要があります。さらに .Pa /etc/fstab において、 .Pa /tmp や .Pa /usr/bin/ld があるファイルシステムは 動的に読み込まれるファイルシステムよりも前に 記述されていなければいけません。 .It Fl u .Fl u フラグは、すでにマウントしているファイルシステム の状態の変更を指示します。 ファイルシステムを読み込み専用から読み書き可能へ、またその逆へも変更することを 含めて、すでに説明したすべてのオプション .Pf ( Fl o オプション) の内容を変更することができます。 読み書き可能なファイルシステムを読み出し専用に変更する場合、 書き込みのためにオープンしているファイルがあるときには、 .Fl f オプションを指定しなければ変更に失敗します。 どのオプションを適用するかを決定する際、最初に .Xr fstab 5 のテーブル を参照し、適用します。その次に .Fl o オプションの引数を適用し、最後に .Fl r 、 .Fl w オプションが適用されます。 .It Fl v 詳細なメッセージを表示します。 .It Fl w ファイルシステムを読み書き可能とします。 .Pp .Tn NFS ファイルシステムに対して指定できるオプションは、 .Xr mount_nfs 8 のマニュアルに記述されています。 .Sh 関連ファイル .Bl -tag -width /etc/fstab -compact .It Pa /etc/fstab ファイルシステムテーブル .El .Sh 診断 多岐に渡りますが、ほぼ全てが自明です。 .Pp .Dl XXXXX filesystem is not available .Pp カーネルはそのファイルシステムタイプをサポートしていません。 ファイルシステムのサポートは、 静的(カーネルコンパイル時)もしくは動的( .Xr modload 8 によってカーネルモジュールとしてロードされる)です。 通常、 .Nm もしくはそのサブプロセスは、 -ファイルシステムモジュールが静的に組込まれていない場合は、 +ファイルシステムモジュールが静的に組み込まれていない場合は、 .Xr vfsload 3 を使用して動的にそのファイルシステムモジュールをロードしようとします。 この場合上記エラーメッセージは、 モジュールをロードするパーミッションを持たないことも意味する場合があります。 .Sh 関連項目 .Xr mount 2 , .Xr vfsload 3 , .Xr fstab 5 , .Xr mount_cd9660 8 , .Xr mount_devfs 8 , .Xr mount_fdesc 8 , .Xr mount_kernfs 8 , .Xr mount_lfs 8 , .Xr mount_mfs 8 , .Xr mount_msdos 8 , .Xr mount_nfs 8 , .Xr mount_null 8 , .Xr mount_portal 8 , .Xr mount_procfs 8 , .Xr mount_umap 8 , .Xr mount_union 8 , .Xr umount 8 .Sh バグ 異常なファイルシステムをマウントすると、 システムクラッシュを引き起こすことがあります。 .Sh 警告 マウントに成功した後にマウントされたファイルシステムから .Pa ".." がアクセス可能かどうかは、 元のマウントポイントのパーミッションが決定します。 全ユーザが双方向にマウントポイントを行き来可能とするために最低限必要な パーミッションは 0111 (全員が実行可能) です。 .Sh 歴史 -.Nm mount +.Nm コマンドは .At v1 から登場しています。 diff --git a/ja/man/man8/mount_null.8 b/ja/man/man8/mount_null.8 index 24d059c920..214f7b0e4a 100644 --- a/ja/man/man8/mount_null.8 +++ b/ja/man/man8/mount_null.8 @@ -1,208 +1,210 @@ .\" .\" Copyright (c) 1992, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" John Heidemann of the UCLA Ficus project. .\" .\" .\" 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: @(#)mount_null.8 8.4 (Berkeley) 4/19/94 -.\" %Id: mount_null.8,v 1.5.2.1 1997/10/19 17:23:25 joerg Exp % +.\" %Id: mount_null.8,v 1.5.2.2 1998/08/12 06:28:38 charnier Exp % .\" jpman %Id: mount_null.8,v 1.2 1997/03/31 13:38:01 horikawa Stab % .\" .Dd April 19, 1994 .Dt MOUNT_NULL 8 .Os BSD 4.4 .Sh 名称 .Nm mount_null .Nd 何もしない(null)ファイルシステム層の利用のデモ .Sh 書式 .Nm mount_null .Op Fl o Ar options .Ar target .Ar mount_point .Pp .Sh 解説 .Nm mount_null は、null 層を作ります。これは、 ファイルシステムの名前空間の部分木を、グローバルなファイルシステムの名前空間 の別の場所にエイリアスします。 歴史的な ループバックファイルシステムと異なるのは、次の2つの点です: 1つは、ファイル システムのスタック化可能層(stackable layers)という技術を使って 実装されている点、もう1つはディレクトリの vnode だけでなく、 すべての下位層の vnode の上に ``null-node''が積み重なっているという点です。 .Pp オプションは以下のものがあります: .Bl -tag -width indent .It Fl o .Fl o のあとに、オプション文字列をコンマで区切って指定すること ができます。指定可能なオプションとその意味は .Xr mount 8 を参照してください。 .El .Pp この null 層は2つの目的を持っています。1つは、何もしない層 を提供することでファイルシステムの層の構築のデモを示すことです(実際には 何も行わないというわけではなく、 ループバックファイルシステムが提供することはすべて行います)。 もう1つはプロトタイプ層を提供することで す。層のフレームワークとして必要なことはすべて提供しているので、 ここから新しいファイルシステム層を簡単に作り出すことができます。 .Pp このマニュアルの以下の部分では、新しいファイルシステム層を構築するための 基礎として null 層を調べます。 .\" .\" .Sh 新しい null 層の例示 新しい null 層は .Xr mount_null 8 で作られます。 .Xr mount_null 8 は 2つの引数をとります。 1つは下位層の vfs のパス名(target-pn)で、 もう1つは null 層が現れる名前空間内のパス名(mount-point-pn)です。 null 層が適切な場所に置かれた後、 目的のディレクトリ階層(target-pn)の中身が マウント先(mount-point-pn)にエイリアスされます。 .\" .\" .Sh null 層の操作 null 層は最小のファイルシステム層であり、 すべての操作を下位層に処理させるためにバイパスするだけです。 ほとんどすべてのvnodeに対する操作はパスすることですが、 その動作のほとんどはバイパスルーチンに集中します。 .Pp バイパスルーチンは下位層における任意の vnode に対する操作を受け付けます。 まず、vnodeに対する操作の引数を検査し、 null-node を下位層において等価となるものに置き換えることから始めます。 次に、下位層の操作を起動します。 最後に、引数中の null-node を置き換えます。 もしその操作によってvnodeが返ってきたら、 その返ってきたvnodeの上に null-node を積みます。 .Pp ほとんどの操作をバイパスしますが、 .Em vop_getattr , .Em vop_inactive , .Em vop_reclaim , や .Em vop_print はバイパスしません。 .Em vop_getattr は戻り値の fsid を替えなければなりません。 .Em vop_inactive と vop_reclaim は、null 層特有のデータを解放するためにバイパスしません。 .Em vop_print は過度のデバッグ情報を避けるためにバイパスしません。 .\" .\" .Sh vnodeスタックの概説 マウントは null 層を下位層に関連づけます。 その結果 2 つの VFS が積み重なります。 vnode スタックはファイルがアクセスされるたびに必要に応じて作成されます。 .Pp 最初のマウントでは新しい null 層の根として単一の vnode スタックを作ります。 他のすべての vnode スタックは根の vnode スタックや他の null vnode スタックの 操作の結果として作られます。 .Pp vnode を返す操作の結果として新しい vnode スタックが生まれます。 バイパスルーチンは、呼出し側に vnode を返す前に新しい vnode の上に null-node を積みます。 .Pp 例えば、null 層を以下のようにマウントする例を想像します。 .Bd -literal -offset indent mount_null /usr/include /dev/layer/null .Ed .Pa /dev/layer/null にチェンジディレクトリすると、根の null-node (null 層をマウントした時 に作られたもの) が割り当てられます。 ここで .Pa sys をオープンすることを考えてみます。 vop_lookup は根の null-node で行なわれます。 この操作は下位層にバイパスされ、下位層が UFS の .Pa sys を表す vnode を返します。 それから null_bypass は UFS .Pa sys にエイリアスする null-node を構築し、呼出元にこれを返します。 null-node .Pa sys に対する以降の操作で他のvnodeスタックを構築する時には この処理が繰り返されます。 .\" .\" .Sh 他のファイルシステム層の作成 新しいファイルシステム層を構築する一番簡単な方法は、 null 層のコピーを作り、すべてのファイル、変数の名前を付け直し、 そしてそのコピーを変更することです。 -すべての変数の名前を替えるのにはsedが良く使われます。 +すべての変数の名前を変えるのには +.Xr sed 1 +が良く使われます。 .Pp umap 層は null 層の子孫の 1 例です。 .\" .\" .Sh 下位層の操作の起動 操作が完全にはバイパスできない時に 下位層にある操作を起動するための方法が 2 つあります。 それぞれの方法は違った状況に対して適切に使われます。 両方の場合とも、 その操作の引数を下位層のために正しく作るのはエイリアスする層の責任であり、 vnode 引数を下位層にマッピングします。 .Pp 最初の方法はエイリアスする層のバイパスルーチンを呼ぶことです。 この方法は、下位層で現在扱われている操作を起動したい時に最も適しています。 これはバイパスルーチンがすでにマッピングされているという利点があります。 この例として、 .Em null_getattrs が null 層にあります。 .Pp 2 つ目の方法は、 .Em VOP_OPERATIONNAME インタフェースを用いて下位層のvnodeの操作を直接起動することです。 この方法の利点は、下位層の任意の操作を起動するのが簡単ということにあります。 欠点は、vnode 引数は手動でマッピングされなければならないことです。 .\" .\" .Sh 関連項目 .Xr mount 8 .sp UCLA Technical Report CSD-910056, .Em "Stackable Layers: an Architecture for File System Development" . .Sh 歴史 .Nm mount_null は、 .Bx 4.4 から登場しました。 diff --git a/ja/man/man8/mountd.8 b/ja/man/man8/mountd.8 index 8c0b0e7262..acd10cb1df 100644 --- a/ja/man/man8/mountd.8 +++ b/ja/man/man8/mountd.8 @@ -1,156 +1,153 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)mountd.8 8.4 (Berkeley) 4/28/95 -.\" %Id: mountd.8,v 1.5.2.4 1998/07/17 20:13:36 jkh Exp % +.\" %Id: mountd.8,v 1.5.2.5 1998/07/30 02:11:58 alex Exp % +.\" .\" jpman %Id: mountd.8,v 1.3 1997/05/19 17:06:05 horikawa Stab % .\" .Dd April 28, 1995 .Dt MOUNTD 8 .Os .Sh 名称 .Nm mountd .Nd リモートの .Tn NFS マウント要求に対するサービスを行うデーモン .Sh 書式 .Nm mountd -.Op Fl 2dlnr +.Op Fl 2dnr .Op Ar exportsfile .Sh 解説 .Nm は、他のクライアントマシンからの .Tn NFS マウント要求のためのサーバです。 .Nm は、 .Tn NFS サーバの仕様で示されているポート 番号でサービス要求を待ちます。詳細は RFC1094 .%T "Network File System Protocol Specification" の Appendix A と .%T "NFS: Network File System Version 3 Protocol Specification" の Appendix I を参照してください。 .Pp .Nm では、以下のオプションや引数を指定できます: .Bl -tag -width indent このサーバからファイルシステムをマウントするクライアントに対し、 管理者はバージョン 2 .Tn NFS プロトコルのみの使用を強制できます。 .It Fl d デバッグ情報を出力します。 -.It Fl l -成功した -.Nm -要求を全てログします。 .It Fl n 非ルートからのマウント要求を許可します。 このオプションは、 クライアントが PC であるなど、それがどうしても必要な 場合にのみ使うようにしてください。 その場合、自動的に vfs.nfs.nfs_privport sysctl フラグがクリアされます。 このフラグはカーネルが NFS 要求を受け付けるのが、 予約されたポートからのみか否かを制御します。 .It Fl r 通常ファイルに対するマウント RPC 要求を許可します。 これは、マウントプロトコルの仕様によると危険なようですが、 いくつかのディスクレスワークステーションは、スワップファイルをマウント しようとしますし、それが通常ファイルであることを期待しています。 通常ファイルは .Pa /etc/exports で指定できないので、スワップが置かれようとしているファイルシステム全体 が、 .Fl alldirs フラグとともに公開されていなければなりません。 .It Ar exportsfile exports ファイルの置き場所を指定します。 .El .Pp 起動されると、 .Nm は .Xr mount 2 システムコールによって、公開するホストアドレスとオプションを カーネル内にロードします。 公開設定ファイルを変更した場合は、 .Nm に対して回線切断シグナルを送って 公開設定情報を再ロードする必要があります。 .Dv SIGHUP を送ったあと(例: kill \-s HUP `cat /var/run/mountd.pid` )、exports ファイルにエラーがあるかどうか、 .Nm の出力をチェックしてください。 .Pp 動作中のカーネルは .Tn NFS を組み込んでいないものであると判明した場合、 .Nm は、 .Xr vfsload 3 を用いる .Xr modload 8 コマンドを使って、 .Tn NFS を含むローダブルカーネルモジュールのロードを試みます。 これが失敗するか、 .Tn NFS LKM が使用できない場合は、 .Nm はエラー終了します。 .Sh 関連ファイル .Bl -tag -width /var/run/mountd.pid -compact .It Pa /etc/exports 公開設定ファイル(エキスポートファイル) .It Pa /var/run/mountd.pid 現在実行中の .Nm のプロセス id .Tn ID .It Pa /var/db/mountdtab 現在マウントされているリモートファイルシステムのリスト .El .Sh 関連項目 .Xr nfsstat 1 , .Xr exports 5 , .Xr modload 8 , .Xr nfsd 8 , .Xr portmap 8 , .Xr showmount 8 .Sh 歴史 .Nm ユーティリティは .Bx 4.4 から登場しています。 diff --git a/ja/man/man8/ntpq.8 b/ja/man/man8/ntpq.8 index 11c5fc2578..c18eec4bce 100644 --- a/ja/man/man8/ntpq.8 +++ b/ja/man/man8/ntpq.8 @@ -1,609 +1,609 @@ ''' $Header ''' .\" jpman %Id: ntpq.8,v 1.3 1997/09/21 12:35:15 seki Stab % .\" .\" 対訳覚え書き (seki@sysrap.cs.fujitsu.co.jp 作成) .\" association アソシエーション .\" association identifier アソシエーション番号 (訳しすぎか?) .\" authentication 認証 .\" clock 時計 .\" dispersion ばらつき .\" fuzzball fuzzball (固有名詞; xntpd ベースでない NTP サーバ) .\" offset ずれ .\" peer peer のまま .\" poll ポーリングする .\" query 問い合わせ .\" reference clock 参照時計 .\" request 要求 .\" status word 状態ワード .\" time out (名詞) 制限時間 .de Sh .br .ne 5 .PP \fB\\$1\fR .PP .. .de Sp .if t .sp .5v .if n .sp .. .de Ip .br .ie \\n.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. ''' ''' Set up \*(-- to give an unbreakable dash; ''' string Tr holds user defined translation string. ''' Greek uppercase omega is used as a dummy character. ''' .tr \(*W-|\(bv\*(Tr .ie n \{\ .ds -- \(*W- .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch .ds L" "" .ds R" "" .ds L' ' .ds R' ' 'br\} .el\{\ .ds -- \(em\| .tr \*(Tr .ds L" `` .ds R" '' .ds L' ` .ds R' ' 'br\} .TH NTPQ 8 LOCAL .SH 名称 ntpq - ネットワークタイムプロトコルの標準問い合わせプログラム .SH 書式 .B ntpq [ .B -inp ] [ .B -c .I command ] [ .I host ] [ .I ... ] .SH 解説 .I ntpq は、 推奨されている NTP モード 6 制御メッセージフォーマットを実装する NTP サーバに、 現在の状態について問い合わせを行なったり、 状態の変更を要求するために使われます。 このプログラムは対話的モードでも、 コマンドラインの引数を使っても走らせることができます。 任意の変数を読み書きする要求を組み立てることができ、 生のまま、または綺麗に整形する出力オプションがあります。 .I ntpq は、サーバに複数の問い合わせを送ることで、共通フォーマットにした peer のリストを得て、出力することができます。 .PP .I ntpq を実行するときに一つ以上の要求オプションがコマンドラインに含まれていれば、 それぞれの要求は、 コマンドラインで指定された各ホストで走っている NTP サーバ、 またはデフォルトでは .I localhost で走っている NTP サーバに送られます。 要求オプションが与えられなかった場合、 .I ntpq は、コマンドを標準入力から読み込み、 コマンドラインで指定された最初のホストで走っている NTP サーバに対して実行しようとします。 このときも、 ホストが指定されていないときは、デフォルトで .I localhost になります。 標準入力が端末装置である場合は、 .I ntpq はコマンドを求めるプロンプトを出します。 .PP .I ntpq は NTP サーバと通信するために、 NTP モード 6 パケットを使います。 それゆえ、許可されていれば、 互換のあるどんなネットワーク上のサーバにでも問い合わせることができます。 NTP は UDP のプロトコルなので、特にネットワークトポロジ的に 遠くにある場合は、この伝達はやや信頼性に欠けるということを覚えておいて 下さい。 .I ntpq は、要求を再送する試みを一度行ない、 適当な制限時間の範囲内でリモートホストから返事がなかったときは、 その要求は時間切れとなります。 .PP コマンドラインオプションは以下の通りです。 .B -i または .B -n 以外のコマンドラインオプションを指定すると、指定したホスト (群) に、 指定した問い合わせ (または複数の問い合わせ) を直ちに送ることになります。 そうでなければ .I ntpq は、標準入力から対話形式のコマンドを読み込もうとします。 .Ip -c 8 後に続く引数は、対話形式のコマンドとして解釈され、 指定されたホスト (群) に対して実行すべきコマンドのリストに 付け加えられます。 複数の .B -c オプションも与えることができます。 .Ip -i 8 .I ntpq の操作を強制的に対話モードにします。標準出力にプロンプトが書き出され、 標準入力からコマンドが読み込まれます。 .Ip -n 8 すべてのホストアドレスを数字四つを点で区切った形式で出力し、 正規のホスト名に変換しません。 .Ip -p 8 そのサーバに知られている peer の一覧を、その状態の概要と共に出力します。 これは、対話コマンド \*(L"peers\*(R" と同等です。 .SH 内部コマンド .PP 対話形式コマンドは、キーワードとそれに続く 0 個から 4 個の 引数からなります。 キーワードの単語のうち、他に同じものがないとわかる数の文字がタイプされ ていれば大丈夫です。コマンドの出力は、通常標準出力に出力されますが、 コマンドラインの後に \*(L">\*(R" とファイル名をつけると、 個々のコマンドの出力をファイルに出力することもできます。 .PP 多くの対話形式コマンドは、 .I ntpq プログラム自身の中で実行されてしまい、 サーバへ送られる NTP モード 6 リクエストとはなりません。 この種のコマンドを以下に挙げます。 .PP .B ? [ .I command_keyword ] .PP 単独の \*(L"?\*(R" は、 現在の .I ntpq のすべてのコマンドキーワードの一覧を出力します。 \*(L"?\*(R" の後にコマンドキーワードが続くときは、関数とコマンドの使いかた を出力します。このコマンドは、 .I ntpq について、多分このマニュアルよりも良い情報源になります。 .PP .B timeout .I millseconds .PP サーバへの問い合わせに対する応答の、制限時間の長さを指定します。 デフォルトは、約 5000 ミリ秒です。 .I ntpq は制限時間が過ぎるとそれぞれの問い合わせを一回リトライするので、 合計の待ち時間は設定された制限時間の値の 2 倍になることを覚えておいて下さい。 .PP .B delay .I milliseconds .PP 認証を必要とする要求に含めるタイムスタンプに追加すべき時間間隔を指定します。 これは、長い遅延のあるネットワーク経路や時計が同期していない マシン間での (信頼性の低い) サーバの再設定を可能にするために 使われます。 実際には、サーバは、今では認証される要求のタイムスタンプを必要としません。 そのため、このコマンドは、すたれているかもしれません。 .PP .B host .I hostname .PP 問い合わせを送るホストをセットします。 .I hostname はホスト名でも数値アドレスでもかまいません。 .PP .B poll [ .I # ] [ .B verbose ] .PP クライアントモードで現在のサーバをポーリングします。最初の引数はポーリングする 回数 (デフォルトは 1) であり、 2 番目の引数は結果の出力をより詳しく 得るために与えることができます。 このコマンドは、今のところ希望的観測でしかありません。 .PP .B keyid .I # .PP このコマンドは、設定要求を認証するために用いるキー番号を指定します。 これは、この目的で使うためにサーバに設定されているキー番号に 対応していなければなりません。 .PP .B passwd .PP このコマンドは、設定要求を認証するために使われるパスワード (画面に表示されません) の入力を求めるプロンプトを出します。 その要求を成功させるためには、 このパスワードが、 NTP サーバがこの目的で使うように設定されたキーに 対応していなければなりません。 .PP .B "hostnames yes|no" .PP \*(L"yes\*(R" が指定されると、情報を表示するときにホスト名が出力されます。 \*(L"no\*(R" が与えられると、代わりに数値アドレスが表示されます。 コマンドラインの .B -n スイッチが使われなければ、 デフォルトは \*(L"yes\*(R" になります。 .PP .B raw .PP 問い合わせコマンドに対するすべての出力を、リモートサーバから受け取った 通りに出力します。 データに対して行なわれる唯一の整形/解釈は、印字できる (しかしめったに理解できない) 形になるように、アスキー文字でないデータを 変換することです。 .PP .B cooked .PP 問い合わせコマンドからの出力を、 \*(L"加工済み (cooked)\*(R" 形にします。 サーバに認識された変数は、人間に使える形に再整形された値に なります。 .I ntpq が、その変数は本来デコードできる値を持っていると判断したのに、 デコードされていないものには、後に \*(L"?\*(R" が付けられます。 .PP .B ntpversion .B 1|2|3 .PP .I ntpq がパケットの中で自称する NTP のバージョン番号をセットします。 デフォルトでは 3 です。 モード 6 制御メッセージ (詳しく言うとモードも) は、 NTP バージョン 1 には存在しなかったことに注意して下さい。 バージョン 1 を必要とするサーバは残っていないようですが。 .PP .B authenticate .B yes|no .PP 通常、 .I ntpq は、 書き込み要求でない限り要求を認証しません。 コマンド .B authenticate yes は、 .I ntpq が生成するすべての要求に認証をつけて送るようにします。 認証された要求は、サーバによっては少し異なって扱われます。 もしも peer 表示を行う前に認証をオンにすると、 時々 fuzzball の CPU を溶かしてしまうかもしれません。 .PP .B addvars .IR [=] [,...] .B rmvars .IR [,...] .B clearvars .PP NTP モード 6 メッセージが運ぶデータは、次の形の 項目のリストから成ります。 .IP "" 8 = .PP ここで、サーバの変数を読み取る要求では、この \*(L"=\*(R" は 無視されるので、省略することができます。 .I ntpq は、制御メッセージに含まれるデータを組み立てるための内部リストを保持しており、 以下に述べる .B readlist や .B writelist コマンドを使って送ります。 .B addvars コマンドで、このリストに、変数と省略可能な値を追加することができます。 -一つ以上の変数を追加するときには、リストはカンマで区切り、 +一つ以上の変数を追加するときには、リストはコンマで区切り、 空白を含んではいけません。 .B rmvars コマンドは、個々の変数をリストから削除するために用い、 .B clearlist コマンドは、リストからすべての変数を削除します。 .PP .B debug .I more|less|off .PP 問い合わせプログラムの内部のデバッグをオンまたはオフにします。 .PP .B quit .PP .I ntpq を終了します。 .SH 制御メッセージコマンド .PP ある NTP サーバが知っている各 peer には、 .I アソシエーション番号 .I (association identifier) という 16 ビット整数が割り当てられています。 peer 変数を使う NTP 制御メッセージは、 アソシエーション番号を含めることによって、 その値が対応する peer を識別しなければなりません。 0 というアソシエーション番号は特別で、 その変数がシステム変数であることを表します。 システム変数の名前は、独立した名前空間から取りだされます。 .PP 制御メッセージコマンドは、 サーバに一つ以上の NTP モード 6 メッセージを送り、 戻ってきたデータを何らかの書式で出力します。 現在実装されているほとんどのコマンドは、 一つのメッセージを送って、一つの応答を受け取ります。 今のところ例外は、必要なデータを得るためにあらかじめプログラムされた一連の メッセージを送る .B peers コマンドと、 アソシエーションをある範囲で変えながら繰り返す .B mreadlist と .B mreadvar コマンドです。 .PP .B associations .PP 問い合わせ対象のサーバの規格内 (in\-spec) の peer についての、 アソシエーション番号と peer の状態の一覧を得て出力します。 一覧は複数の欄から成っています。 最初の欄は、内部で使用のために 1 から振ったアソシエーションの索引番号 (index)、 2 番目はサーバから返って来た実際のアソシエーション番号、 3 番目は peer の状態ワードです。 その後に、状態ワードをデコードしたデータを含む欄がいくつか続きます。 \*(L"associations\*(R" コマンドによって返ったデータは .I ntpq の内部でキャッシュされるということを覚えておいて下さい。 このため、索引番号は、 人間にはほとんど打ち込むることができないアソシエーション番号を使う 愚かなサーバを相手にするときに役立ちます。 すなわち、 それ以降の任意のコマンドが引き数としてアソシエーション番号を必要とするときに、 代わりに .I &index という形を使うことができます。 .PP .B lassocations .PP サーバが状態を保持しているすべてのアソシエーションについて アソシエーション番号と peer の状態の一覧を得て、出力します。 このコマンドと \*(L"associations\*(R" コマンドは、 規格外 (out\-of\-spec) のクライアントのアソシエーション の状態を保持するサーバ (つまり fuzzball) の場合にだけ異なります。 \*(L"associations\*(R" コマンドが使われたとき、通常そういう関係は 表示から省略されますが、 \*(L"lassociations\*(R" の出力には含まれます。 .PP .B passociations .PP 内部でキャッシュされたアソシエーションの一覧から、 規格内 (in\-spec) の peer に関する アソシエーションのデータを出力します。 このコマンドは、新しい問い合わせをするのではなく 内部に蓄えられたデータを表示するということを除けば、 \*(L"associations\*(R" と同じに働きます。 .PP .B lpassociations .PP 規格外 (out\-of\-spec) のクライアントとのアソシエーションを含む 全てのアソシエーションに関するデータを、 内部にキャッシュされたアソシエーションの一覧から出力します。 このコマンドは、fuzzball を扱う場合だけ、 \*(L"passociations\*(R" と 異なります。 .PP .B pstatus .I assocID .PP 与えられたアソシエーションに対応するサーバに対し、 状態読み取り要求を送ります。 返された peer 変数の名前と値を出力します。 変数の前に、ヘッダから得た状態ワードが 16 進数と下手な英語で 表示されることに注意して下さい。 .PP .B readvar [ .I assocID ] [ .IR [=] [,...] ] .PP 変数読み取り要求を送ることで、指定した変数の値を返すようにサーバに要求します。 アソシエーション番号 (assocID) を省略するか 0 を指定したならば、 変数はシステム変数です。 そうでなければ peer 変数であり、 返される値は対応する peer のものとなります。 変数のリストを省略すると、データ無しの要求を送ります。 これは、サーバにデフォルトのディスプレイを返させます。 .PP .B rv [ .I assocID ] [ .IR [=] [,...] ] .PP .B readvar コマンドの打ちやすい短縮形です。 .PP .B writevar .I assocID .IR = [,...] .PP .B readvar リクエストと似ていますが、 指定した変数を読み取る代わりに書き込みます。 .PP .B readlist [ .I assocID ] .PP 内部の変数リストの中の変数の値を返すようにサーバに要求します。 アソシエーション番号が省略されるか 0 の場合、 変数はシステム変数であるとみなされます。 そうでなければ、 peer 変数として扱われます。 内部の変数リストが空の場合は、 要求はデータ無しで送られます。 これは、リモートサーバにデフォルトのディスプレイを返させます。 .PP .B rl [ .I assocID ] .PP .B readlist コマンドの打ちやすい短縮形です。 .PP .B writelist [ .I assocID ] .PP .B readlist リクエストと似ていますが、 内部のリストの変数を読み取る代わりに書き込みます。 .PP .B mreadvar .I assocID .I assocID [ .IR [=] [,...] ] .PP .B readvar コマンドと似ていますが、 問い合わせを (0でない) アソシエーション番号の範囲のそれぞれに 行ないます。 ここで言う範囲は、直前に実行された .B associations コマンドでキャッシュされたアソシエーションの一覧から決めます。 .PP .B mrv .I assocID .I assocID [ .IR [=] [,...] ] .PP .B mreadvar コマンドの打ちやすい短縮形です。 .PP .B mreadlist .I assocID .I assocID .PP .B readlist コマンドと似ていますが、 (0 でない) アソシエーション番号の範囲のそれぞれに問い合わせを行います。 ここで言う範囲は、直前に実行された .B associations コマンドでキャッシュされたアソシエーションの一覧から決めます。 .PP .B mrl .I assocID .I assocID .PP .B mreadlist コマンドの打ちやすい短縮形です。 .PP .B clockvar [ .I assocID ] [ .IR [=] [,...] ] .PP サーバの時計変数 (clock variable) の一覧を送るように要求します。 ラジオ時計や他の外部同期機構を持っているサーバは、 このコマンドに肯定的に応答します。 アソシエーション番号が省略されるか 0 だと、 要求は \*(L"システム時計\*(R" の変数に対するものとなり、 一般に、時計を持つすべてのサーバから肯定的な応答が得られるでしょう。 サーバが時計を擬似的な peer として扱い、 結果として一度に二つ以上の時計を接続することができるようになっていれば、 適切な peer のアソシエーション番号を参照すれば 特定の時計の変数が表示されます。 変数のリストを省略すると、サーバはデフォルトの変数のディスプレイを 返すことになります。 .PP .B cv [ .I assocID ] [ .IR [=] [,...] ] .PP .B clockvar コマンドの打ちやすい短縮形です。 .PP .B peers .PP サーバの規格内の peer の一覧を、各 peer の状態の概要と共に得ます。 概要の情報には、リモート peer のアドレス、 参照 ID (参照 IDが不明のときは 0.0.0.0)、 リモート peer の階層 (stratum)、 peer の種類 (ローカル、ユニキャスト、マルチキャスト、ブロードキャストのいずれか)、 最後のパケットを受信した時間、 秒単位のポーリング間隔、 8 進数表記の到達可能性レジスタ そして、その peer に関する (全て秒単位で) 現在の遅延の推定値、ずれ (offset)、ばらつき (dispersion) を含んでいます。 .PP 左端の文字は、時計選択処理におけるこの peer の運命を示します。 コードの意味は以下です: 階層が高いか、または妥当性のチェックにより捨てられたもの; \*(L"x\*(R" 交差アルゴリスムにより指示された誤りのチェッカ (falsticker); \*(L".\*(R" 候補リストの最後から間引かれたもの; \*(L"-\*(R" クラスタリングアルゴリスムにより捨てられたもの; \*(L"+\*(R" 最終の選択セットに含まれたもの; \*(L"#\*(R" 同期用に選択されたが隔たりが最大値を越えるもの; \*(L"*\*(R" 同期用に選択されたもの; \*(L"o\*(R" 同期用に選択され pps シグナル使用中のもの。 .PP .B peers コマンドは、得られた応答の中の値を解析できるかどうかに依るため、 データ形式の制御が貧弱なサーバでは、時々動作に失敗するかも しれません。 .PP ホストフィールドの内容は、次の四つの型のうちの一つになります。 ホスト名、 IP アドレス、 参照時計 (reference clock) の実装名とパラメタ、 \*(L"REFCLK(<実装番号>, <パラメータ>)\*(R" のいずれかです。 \*(L"hostnames no\*(R" が設定されているときには、 IP アドレスだけが表示されます。 .PP .B lpeers .PP .B peers と似ていますが、 サーバが状態を保持しているすべてのアソシエーションの概要を出力します。 これは fuzzball サーバの、より長い peer のリストを生成することがあります。 .PP .B opeers .PP 古い型の \*(L"peers\*(R" コマンドで、 参照 ID がローカルのインタフェースアドレスになります。 .SH 歴史 .PP Toronto 大学の Dennis Ferguson によって書かれました。 .SH バグ .PP .B peers コマンドは不可分 (atomic) ではないため、 不正なアソシエーションという誤ったエラーメッセージが発生し コマンドが終了することがあります。 .PP 時間切れまでの時間は固定された定数です。 これは、ある種の最悪の場合を考えてあるため、 時間切れになるまで長時間待たされることになります。 このプログラムは、 特定のホストへ何回も問い合わせを送る間に 制限時間の見積もりを改善すべきですが、 実際には行なっていません。 diff --git a/ja/man/man8/ppp.8 b/ja/man/man8/ppp.8 index 2e11cd4bdd..c62275f906 100644 --- a/ja/man/man8/ppp.8 +++ b/ja/man/man8/ppp.8 @@ -1,2700 +1,2700 @@ .\" %Id: ppp.8,v 1.19.2.38 1998/06/12 17:47:37 brian Exp % .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .Dd 20 September 1995 .Os FreeBSD .Dt PPP 8 .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 iijppp) .Sh 書式 .Nm .Oo .Fl auto | .Fl background | .Fl ddial | .Fl direct | .Fl dedicated .Oc .Op Fl alias .Op Ar system .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 しかしながら、この実装ではトンネルデバイス (tun) を利用して、ユーザプロセスで .Em PPP を実現しています。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の解放を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイアルをサポート 対話モードでは、直接モデムと通信できるように .Dq term コマンドが用意されています。 モデムがリモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイアル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイアルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイアルを行って接続を確立します。 .Fl ddial モード (直接ダイアルモード) でも ほぼ同様に、自動ダイアルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイアルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再交渉を強要し、 .Dv SIGTERM は終了を強要します。 .It パケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 .It 代理 arp (Proxy Arp) をサポート .Em PPP がサーバとして動作している時、その接続について代理 arp を行うよう 設定できます。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em ifilter は受信パケットに対するフィルタです。 .Em ofilter は送信パケットに対するフィルタです。 .Em dfilter はダイアルを行うきっかけとなるパケットを定義するフィルタで、 .Em afilter は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP をサポート .It IETF ドラフトの Predictor-1 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 圧縮はリンクを通る .Em すべての データをあらかじめ圧縮しておくことで、オーバヘッドを最小にします。 .It Microsoft の IPCP 拡張をサポート Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを 交渉することができます。 .El .Sh パーミッション .Nm ppp はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 4550 でインストールされます。 デフォルトでは .Nm ppp は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムのルーティングテーブルを変更するために、 システムロックファイルを作成し、 ppp の設定ファイルを読みます。 全ての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm ppp を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 まず、カーネルにトンネルデバイスが含まれていなければ なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。 もし含まれていない場合や複数の tun インタフェースが必要な場合、 以下の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 つぎに、 .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 最後に、ログファイルを作成します。 .Nm ppp は .Xr syslog 3 を使用して情報をログします。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、以下の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp TAB と書かれている場所には、実際にはタブを入力します。 スペースを使うと、なにも知らされぬままこの行は無視されます。 .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.* /var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .Sh 手動ダイアル 以下の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Em パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp ここで、モデムのデバイス名、スピードやパリティの設定、 CTS/RTS 信号を使うかどうか (デフォルトでは CTS/RTS が使用されます) を 指定して、開始可能です。もしハードウェアが CTS/RTS 信号を持っていない場合 (これは PPP 可能な端末サーバに直接つなぐ場合に起こり得ます)、 .Nm は そのポートを通してどんな出力も送らず、来るはずのない信号を待ち続けます。 したがって、直接接続で通信ができないような場合には、 CTS/RTS を off にしてみてください: .Bd -literal -offset indent ppp ON awfulhak> set line /dev/cuaa0 ppp ON awfulhak> set speed 38400 ppp ON awfulhak> set parity even ppp ON awfulhak> set ctsrts on ppp ON awfulhak> show modem * モデム関連のパラメータが、ここに示されます * ppp ON awfulhak> .Ed .Pp ここでは、直接モデムと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: ppp Password: Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> PPP ON awfulhak> .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。 show コマンドを使用すれば、どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show lcp * LCP 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP 関連の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位のルート (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルトルートのエントリ (他のルーティングエントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 以下のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 .Sq HISADDR の位置に .Sq INTERFACE キーワードを使用可能です。 これにより tun インタフェース上に直接経路を作成します。 ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを 別のウインドウで使用可能です。 使用可能コマンドの詳細は .Em PPP コマンドリスト の節を参照してください。 .Sh 自動ダイアル 自動ダイアルを行うためには、 Dial と Login のチャットスクリプトを 用意しなければなりません。定義の例は .Pa /etc/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet -compact .It .Pq Dq # で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 一つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、空白かタブで始まらなければなりません。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少くとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm ppp を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent PPP ON awfulhak> load MyISP .Ed .Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP ... ppp ON awfulhak> dial dial OK! login OK! PPP ON awfulhak> .Ed .Pp もし .Pa /etc/ppp/ppp.linkup が存在していれば、 .Em PPP 接続が確立された時に、その内容が実行されます。 デフォルトルート追加については。 提供されている .Pa /etc/ppp/ppp.conf.sample の .Dq pmdeman の例を参照してください。 .Dv HISADDR , .Dv MYADDR , .Dv INTERFACE という文字列はおのおのの IP アドレスとインタフェース名を表しています。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Sh バックグラウンドダイアル .Nm ppp を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 このラベルには .Dq set ifaddr コマンドが含まれ、 リモートの接続先の IP アドレスを定義する必要があります。( .Pa /etc/ppp/ppp.conf.sample 参照。) .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が一回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイアルオンデマンド デマンドダイアル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /etc/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand ... # .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、以下のように診断ポートを 通じて設定を確認したり変更したりすることができます (これは .Fl background や .Fl direct のモードでも可能です): .Bd -literal -offset indent # pppctl -v 3000 show ipcp Password: IPCP [Opened] his side: xxxx .... .Ed .Pp 現在 .Xr telnet 1 を使用して対話的に会話することもできます。 .Pp これを実現するために、後述のように .Dq set server コマンドを使用する必要があります。 .Pa /etc/ppp/ppp.secret を設定し .Dv USR1 シグナルを送ることにより、 過去を振り返って診断ポートにて listen するように .Nm プログラムを実行することが可能です。 .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイアルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイアルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ち、 別の送信パケットが検出された時に接続しようとします。 この動作は .Bd -literal -offset indent set redial seconds|random[.nseconds|random] [dial_attempts] .Ed .Pp によって変更することができます。 .Sq seconds は、再び接続しようとするまでの秒数です。 引数が .Sq random の場合には、待ち時間を 0 秒から 30 秒の間でランダムに選びます。 .Sq nseconds は電話番号リストの中の次の番号をダイアルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数が .Sq random の場合には、待ち時間を 0 秒から 30 秒の間でランダムに選びます。 .Sq dial_attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 このパラメータが省略された場合には、以前の値がそのまま使われます。 .Sq dial_attempts に 0 が指定された場合には、 .Nm は接続できるまでダイアルを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイアル回数は 4 回のままです。 (それぞれの番号を 4 回ダイアルするのではありません)。 リンクの両端が .Nm のデマンドダイアルモードを利用している場合は、 ダイアル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイアルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒待ってから .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値はゼロ (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大一回ダイアルされます。 .Dq set redial コマンドにて、リダイアル期間の後に、 再接続回数を指定します。 リダイアル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、以下のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、以下の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0) 、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、以下のように設定すれば良いでしょう: .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください。 .Dl # kill -HUP 1 .It 接続するユーザのためのアカウントを用意します。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp .It .Pa /usr/local/bin/ppplogin ファイルを以下のような内容で作成します: .Bd -literal -offset indent #!/bin/sh -p exec /usr/sbin/ppp -direct .Ed .Pp (さらに制御を行うためにラベル名を指定することもできます。) .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用するか設定済みの診断ポートに .Xr telnet 8 することで、コマンドモードでの制御が可能です。 .It オプションでサポートされている Microsoft の IPCP ネームサーバと NetBIOS ネームサーバの 交渉を有効にすることが可能です。 .Dq enable msext と .Dq set ns pri-addr [sec-addr] および .Dq set nbns pri-addr [sec-addr] を .Pa /etc/ppp/ppp.conf ファイルに追加します。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、モデムの接続を扱うのに .Em mgetty+sendfax を使用するようにすすめている点が異なります。 最近のバージョン (0.99 以降) では、 .Dq AUTO_PPP オプションをつけてコンパイルすることで、クライアントが ログインプロンプトに向かって .Em PPP を話すのを検出することができます。 手順は以下の通りです: .Bl -enum .It AUTO_PPP オプションが使えるように、バージョン 0.99 か それ以降の mgetty+sendfax を入手、設定、インストールします。 .It モデムが接続されているポートで mgetty が起動されるように .Pa /etc/ttys を編集します。 例えば、以下のように設定すれば良いでしょう: .Dl cuaa1 "/usr/local/sbin/mgetty -s 57600" dialup on .It 接続するユーザのためのアカウントを用意します。 .Bd -literal Pfred:xxxx:66:66:Fred's PPP:/home/ppp:/etc/ppp/ppp-dialup .Ed .Pp .It ファイル .Pa /etc/ppp/sample.ppp-dialup , .Pa /etc/ppp/sample.ppp-pap-dialup , .Pa /etc/ppp/ppp.conf.sample をよく読んで、要点を理解してください。以下のようにすると .Pa /etc/ppp/ppp-pap-dialup が .Pa /usr/local/etc/mgetty+sendfax/login.conf から呼び出されます。 .Dl /AutoPPP/ - - /etc/ppp/ppp-pap-dialup .El .Pp .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 4 つまでのフィールドからなります: .Bd -literal -offset indent name key [hisaddr [label]] .Ed .Pp .Ar name と .Ar key は期待されるクライアントを指定します。 .Pa ppp.secret の如何なる .Ar name No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号交渉時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Sh PPP オーバ TCP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 ホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Dl set device ui-gate:6669 シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバと交渉できないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは以下を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 add 10.0.1.0 255.255.255.0 10.0.4.2 .Ed .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには以下の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、以下のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは以下を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in set dial set timeout 30 15 5 set log Phase Chat Connect Carrier hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0 255.255.255.0 10.0.4.1 .Ed .Pp PAP を有効にしようとしている場合、以下の設定も必要です: .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、以下をタイプするだけで良いです。 .Dl awfulhak # ppp -background ui-gate 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「ルート」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「ルート」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下にある TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下の TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Sh パケットエイリアシング .Fl alias コマンドラインオプションにより、 パケットエイリアシングが有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのようにエイリアスされ、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるようにエイリアスが戻されます。 パケットエイリアシングにより、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にパケットエイリアシングを禁止して行います。 次に .Fl alias オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 ifilter, ofilter, dfilter, afilter の 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet -compact .It フィルタ定義は以下のような構文になっています。 set filter-name rule-no action [src_addr/src_width] [dst_addr/dst_width] [proto [src [lt|eq|gt] port ]] [dst [lt|eq|gt] port] [estab] .Bl -enum .It .Sq filter-name には、ifilter, ofilter, dfilter, afilter のうちのどれか一つを指定します。 .It .Sq permit と .Sq deny の二つの action があります。 もし、あるパケットが規則に一致した場合、 結びつけられた action が直ちに実行されます。 .It .Sq src_width と .Sq dst_width は、アドレスの範囲を表現するネットマスクのように働きます。 .It .Sq proto は icmp, udp, tcp のうちのいずれか一つです。 .It .Sq port number は数字で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .El .Pp .It 各フィルタは規則 0 から始まり、20 個までの規則をもつことができます。 規則の集合は、規則 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトでは全てが通されます。 .It パケットにマッチする規則が無い場合は、パケットは破棄 (ブロック) されます。 .It すべての規則を消去するには、 .Dq set filter-name -1 を使ってください。 .El .Pp .Pa /etc/ppp/ppp.conf.filter.example を参照してください。 .Sh アイドルタイマ、回線品質要求タイマ、リトライタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show timeout と .Dq set timeout idle [LQR [FSM-resend]] コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 (3 分)、lprtimer が 30 秒、 retrytimer が 3 秒です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 このバージョンでは、 現在の IETF ドラフトに基づき、CCP および Predictor type 1 圧縮 もしくは deflate 圧縮をサポートしています。 デフォルトの動作として、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Sh IP アドレスの制御 .Nm は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent set ifaddr [src_addr [dst_addr [netmask [trigger_addr]]]] .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr と .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask は小さくすることのみ可能です。便利な値は 255.255.255.255 でしょう。 誤った .Em PPP の実装には、接続交渉のために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、 ルーティングテーブルには影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、 アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It ルーティングテーブルのネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従わなくてはなりません。 より柔軟な動作をさせるために、`ifaddr' 変数の IP アドレス指定を もっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ (/) に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は以下のことを示しています。 .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、ルーティングテーブルエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Pp .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、以下のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイアルスクリプトにプロバイダの電話番号を記述します。 ダイアルやリダイアルに使用する電話番号は、 パイプ (|) またはコロン (:) で区切って 複数指定することができます。例えば、以下のようになります。 .Bd -literal -offset indent set phone "111[|222]...[:333[|444]...]... .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイアルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイアルしてみます。 ダイアルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイアルもしくはログインスクリプトに失敗したとき「のみ」です。 このダイアルの後、3456789 が使用されます。 4567890 は 345689 でダイアルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみの使用となるでしょう)。 次の番号へのリダイアルまでのタイムアウトは、全ての番号にて使用されます。 リストが終了すると、 通常のリダイアル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以下を参照してください)。 .It リダイアルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 以下のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイアルを行う前に 10 秒待って、 4 回までダイアルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、以下のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は以下の通りです。 .Bl -bullet .It "BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう一度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上の電話番号リストの中の、次にダイアルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイアルスクリプトと同じスタイルで書かれますが、 パスワードがログされないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は以下の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It "login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It "awfulhak" を送信します。 .It "word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It "ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It "PPP" を送信します。 .It "HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey ( .Ar command ログ使用時には) コマンドのログは特別な方法でとられ、( .Sq ******** とログされますので) 実際のパスワードが危険にさらされることはありません。 .Ar chat ログ使用時には、実際のパスワードの代りに '\\P' とログされます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 .It シリアル回線と通信速度を指定するためには .Dq set line と .Dq set speed を使います。例えば以下のようになります。 .Bd -literal -offset indent set line /dev/cuaa0 set speed 115200 .Ed .Pp FreeBSD では cuaa0 が一つめのシリアルポートになります。 OpenBSD で .Nm を実行している場合には cua00 が一つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以下を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It ISP があなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これにより ISP が番号を割当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、以下の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.10.10.10/0 10.10.11.11/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合で .Fl auto モード使用時には、以下の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent delete ALL add default HISADDR .Ed .Pp これは、 .Nm が使用している tun インタフェースに関連する直接ではない ルーティングエントリを削除して、 それから 10.10.11.11 をデフォルトルートとして追加するよう .Nm に指示します。 .Fl auto モードを使用していない時にはこれは必要ありません。 なぜなら、 .Nm がすぐにダイアルして新しい IP 番号を相手と交渉できるからです。 .Pp .Fl auto モードを使用していないとき、もしくは動的 IP 番号を使用するときには、 次の 2 行を .Pa /etc/ppp/ppp.linkup ファイルに追加しておかなければなりません: .Bd -literal -offset indent delete ALL add default HISADDR .Ed .Pp HISADDR は「相手」の IP 番号を意味するマクロです。 使用する IP 番号に関して (IPCP を使用して) 合意 もしくは ( .Dq set ifaddr を使用して) 設定してはじめて、使用可能です。 一旦接続が確立されると、 .Nm は直接ではないインタフェースのルートを全て削除し、 デフォルトルートが相手の IP 番号を指すように設定します。 .Pa /etc/ppp/ppp.conf で使ったのと同じラベルを使用してください。 .Pp もしコマンドを対話的に入力しているのであれば、接続に成功した後で .Bd -literal -offset indent add default HISADDR .Ed .Pp とタイプするだけで充分です。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに以下の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .El .Pp 現実の例を見たい場合には、 .Pa /etc/ppp/ppp.conf.sample と .Pa /etc/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は以下のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Bl -column SMMMMMM -offset indent .It Li Async 非同期レベルパケットの 16 進ダンプ .It Li Carrier 'CARRIER' まで含めたチャットログの生成 .It Li CCP CCP パケットトレースの生成 .It Li Chat チャットスクリプトのトレースログの生成 .It Li Command コマンド実行のログ .It Li Connect 完全なチャットログの生成 .It Li Debug (非常に長い)デバッグ情報のログ .It Li HDLC HDLC パケットの 16 進ダンプ .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録 .It Li IPCP IPCP パケットトレースの生成 .It Li LCP LCP パケットトレースの生成 .It Li Link アドレスの割当およびリンクの確立、解放イベントのログ .It Li LQM LQR レポートの生成 .It Li Phase フェイズ遷移ログの出力 .It Li TCP/IP 全 TCP/IP パケットのダンプ .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、LOG_WARNING を使用してファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Carrier Link Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、直接スクリーンにログ表示) です。 .Pp .Dq set log Op local への最初の引数が '+' か '-' の文字で始まる場合、 現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log carrier link phase PPP ON awfulhak> show log Log: Carrier Link Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log -link +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Carrier Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合にはログされません。 .Sh シグナルハンドリング .Nm は以下のシグナルを扱います: .Bl -tag -width 20 .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR1 対話モードではない場合、 .Nm にサーバソケットが存在する場合にはそれらをクローズさせ、 3000 + トンネルデバイス番号のインターネットソケットを オープンさせます。 これは、適切なローカルパスワードが .Pa /etc/ppp/ppp.secret に指定されている場合にのみ行われます。 .It USR2 .Nm に全サーバソケットをクローズさせます。 .El .Pp .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width 20 .It accept|deny|enable|disable option.... これらのディレクティブは 最初の接続においてどのように相手と交渉するかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NACK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は以下のいずれかです: .Bl -tag -width 20 .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は非常に良く似たフィールトを持ちますので、 簡単に圧縮可能です。 .It chap デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみ交渉可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 詳細については .Dq set encrypt コマンドの記述を参照してください。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についてのネゴシエーションには問題があります .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮の交渉を行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magnalink Variable Resource Compression と指定されています! .Nm は .Nm pppd と交渉する能力がありますが、 .Dq pppd-deflate が .Ar enable かつ .Ar accept されている場合のみです。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信するかどうかを 決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみ交渉可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるかまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pppd-deflate デフォルト: disable かつ deny。 .Ar deflate オプションのバリエーションで、 .Xr pppd 8 プログラムとの交渉を許可します。 詳細は、上述の .Ar deflate 部分を参照してください。デフォルトでは抑止されますので、 .Pa rfc1975 に従っていないことになります。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) の交渉を行うために使用されます。 この機構により、 プロトコルフィールドが 2 オクテッドから 1 オクテッドに減ります。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 以下のオプションは、実際には相手と交渉しません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It msext デフォルト: disable。 このオプションは Microsoft の .Em PPP 拡張の使用を許可します。 これにより、DNS と NetBIOS NS の交渉をサポートします。 このオプションを有効にすることにより、"set ns" と "set nbns" で 与えられる値を渡せるようになります。 .It passwdauth デフォルト: disable。 このオプションを指定することにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイルではなくパスワードファイル ( .Xr passwd 5 参照) を使用させます。 .It proxy デフォルト: disable。 このオプションを指定することにより、 .Nm に相手のためにプロクシ ARP をさせます。 .It throughput デフォルト: disable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq modem のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable すると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .El .It add[!] dest mask gateway .Ar dest は宛先 IP アドレスであり、 .Ar mask はそのマスクです。 .Ar 0 0 はデフォルトルートを意味します。 .Ar dest および .Ar mask の引数の場所で、シンボル名 .Sq default を使用可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR もしくは .Sq INTERFACE を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先アドレスに置き換えられ、 .Sq INTERFACE は現在のインタフェース名に置き換えられます。 インタフェースの宛先アドレスが ( .Dq set ifaddr によって) 割当てられていない場合、現在の .Sq INTERFACE が .Sq HISADDR の代りに使用されます。 .Pp このコマンドを .Pa ppp.conf ファイルで使用するときの制限についての詳細は、後述の .Dq set ifaddr コマンドを参照してください。 .Pp .Ar add! コマンド ( .Dq \&! に注意) 使用時には、 ルートが存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にてルートを更新します。 .It allow ..... このコマンドは .Nm と設定ファイルへのアクセスを制御します。 ユーザレベルでのアクセスは可能であり、 設定ファイルのラベルと .Nm の実行モードに依存します。 例えば、ユーザ .Sq fred のみがラベル .Sq fredlabel に .Fl background モードでアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width 20 .It allow user|users logname... デフォルトでは、ユーザ ID 0 のみがアクセスを許されています。 このコマンドが指定されると、 .Dq allow users が記載されている個所に列挙されているユーザのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。後続する .Dq allow users コマンドは、先行するコマンドに優先します。 あるラベル以外のすべてにアクセスを許すことが可能であり、 そのためにはデフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをこのあるラベルに指定します。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode|modes modelist... デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセスモードが制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは以下の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * . .El .Pp .It alias ..... このコマンドは .Nm -組込みのエイリアシング (マスカレーディング) 機能を +組み込みのエイリアシング (マスカレーディング) 機能を 制御するために使用します。 このコードが必要となるまで、 .Nm はこのコードをロードしません。 エイリアスライブラリがあなたのシステムにインストールされないことも 大いにありえます (エイリアスライブラリがセキュリティ的に危険だと認識する管理者もいます)。 あなたのシステムでエイリアシングが有効になると、 以下のコマンドが使用可能となります: .Bl -tag -width 20 .It alias enable [yes|no] エイリアシングを有効もしくは無効にします。 .Fl alias コマンドラインフラグは .Dq alias enable yes と同じ意味です。 .It alias port [proto targetIP:targetPORT [aliasIP:]aliasPORT] このコマンドにより、 マシン [aliasIP] の .Dq aliasPORT へ到着する接続を、 .Dq targetIP の .Dq targetPORT へリダイレクトします。 proto を指定した場合、指定したプロトコルの接続のみマッチします。 あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 .It alias addr [addr_local addr_alias] このコマンドにより、 .Dq addr_alias へのデータを .Dq addr_local へリダイレクトします。 あなたのゲートウェイの後で 少数の実 IP アドレスを持ち、 これらをあなたのゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It alias deny_incoming [yes|no] yes に設定した場合、ファイアウォールがパケットを落すのと同様に、 全ての入力の接続を拒否します。 .It alias log [yes|no] このオプションを指定することにより、 種々のエイリアシングの統計と情報を、ファイル .Pa /var/log/alias.log にログします。 .It alias same_ports [yes|no] 有効になると、 エイリアスライブラリが出力パケットのポート番号を変更しようとすることを 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It alias use_sockets [yes|no] 有効になると、 エイリアスライブラリにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It alias unregistered_only [yes|no] 出力パケットを、登録されていない送信元アドレスに変更することだけを行います。 RFC1918 に依ると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .It alias help|? このコマンドにより、 使用可能なエイリアスコマンドのまとめを表示します。 .El .Pp .It [!]bg command 指定したコマンドをバックグラウンドで実行します。 擬似引数 .Dv HISADDR , .Dv INTERFACE , .Dv MYADDR は適切な値に置き換えられます。 コマンド実行中に .Nm を停止させたい場合は、 .Dv shell コマンドを使用してください。 .It close 現在の接続をクローズします (が終了しません)。 .It delete[!] dest このコマンドは指定した .Ar dest IP アドレスのルートを削除します。 .Ar dest に .Sq ALL が指定された場合、 .Nm が使用中のインタフェースの非直接エントリが全て削除されます。 tunX のエントリで実際のリンク以外を削除することを意味します。 .Ar dest に .Sq default が指定された場合、デフォルトルートが削除されます。 .Pp .Ar delete! コマンドが使用された場合 (最後の .Dq \&! に注意)、存在しないルートについて .Nm は文句を言わなくなります. .It dial|call [remote] .Dq remote が指定されている場合、 .Dq remote システムへの接続が .Dq dial および .Dq login スクリプトを使用して確立されます。 そうでない場合、現在の設定が使用されて接続が確立されます。 .It display 上述 .Dq accept|deny|enable|disable option.... で指定された、交渉可能な値の現在の状態を表示します。 .It down リンクを切断しますが、 綺麗な方法ではなく、物理層が使用不能になったように見えます。 このコマンドを使用することは丁寧ではないとされています。 .It help|? [command] 利用可能なコマンドをリストします。 .Dq command を指定した場合、このコマンドの使用方法を表示します。 .It load [remote] 指定された .Dq remote ラベルをロードします。 .Dq remote が指定されない場合、 .Dq default ラベルが仮定されます。 .It passwd pass 全ての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass の指定は、 .Dq set server コマンドラインもしくは ローカルホストの .Pa /var/log/ppp.secret エントリにて可能です。 .Ar command ログが有効でも、値 .Ar pass はログされず、文字列 .Dq ******** がログされます。 .It quit|bye [all] .Nm を終了します。 .Nm が対話モードであるか .Dq all 引数が指定された場合、 .Nm は終了し、接続をクローズします。 単に .Dq quit を .Xr pppctl 8 もしくは .Xr telnet 1 のセッションから発行しても、現在の接続をクローズしません。 .It save このオプションは (まだ) 実装されていません。 .It set[up] var value このオプションは以下の変数の設定のために使用します: .Bl -tag -width 20 .It set accmap hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手と交渉され、デフォルト値は 0x00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .It set filter-name rule-no action [src_addr/src_width] [dst_addr/dst_width] [proto [src [lt|eq|gt] port ]] [dst [lt|eq|gt] port] [estab] .Pp .Nm ppp は 4 つのフィルタセットをサポートします。 afilter は接続を維持 - アイドルタイマをリセット - するためのパケットを指定します。 dfilter は .Fl auto モードにおいて .Nm にリダイアルさせるパケットを指定します。 ifilter はマシンに入力可能なパケットを指定します。 ofilter はマシンから出力可能なパケットを指定します。 デフォルトでは全てのフィルタが全パケットを通過させる値に設定されます。 ルールは .Dq n に従って順番に処理されます。 各セットに対し 20 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 ifilter と ofilter では、パケットをドロップすることを意味します。 afilter では、アイドルタイマをリセットしないことを意味します。 dfilter ではダイアルさせることにはならないことを意味します。 上述のパケットのフィルタリングの節を参照してください。 .It set authkey|key value クライアントモードでの PAP または CHAP の交渉で使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイアルもしくはログインスクリプトの '\\P' シーケンス で使用されるパスワードを指定しますが、 実際のパスワードがログされることを防ぎます。 .Ar command ログが有効な場合、セキュリティの観点から、 .Ar value は .Ar ******** としてログされます。 .It set authname id クライアントモードでの PAP または CHAP の交渉で使用される 認証 ID を設定します。 .It set ctsrts ハードウェアフロー制御をセットします。 これがデフォルトです。 .It set device|line value[,value...] .Nm が使用するデバイスを指定する .Dq value に設定します。 全シリアルデバイス名は .Pa /dev/ から始まることが仮定されています。 .Dq value が .Pa /dev/ から始まらない場合、 .Dq host:port の形式である必要があります。 この場合、 .Nm 指定された .Dq host の指定された .Dq port と接続しようとします。 詳細は上述の .Em PPP オーバ TCP の節を参照してください。 複数の .Dq value を指定した場合、 .Nm は全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial chat-script 相手へダイアルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 以下の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -literal -offset indent .It \\\\\\\\\\\\\\\\c .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \\\\\\\\\\\\\\\\d チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \\\\\\\\\\\\\\\\p チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \\\\\\\\\\\\\\\\n 改行文字と置き換えられます。 .It \\\\\\\\\\\\\\\\r 復改文字と置き換えられます。 .It \\\\\\\\\\\\\\\\s 空白文字と置き換えられます。 .It \\\\\\\\\\\\\\\\t タブ文字と置き換えられます。 .It \\\\\\\\\\\\\\\\T 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \\\\\\\\\\\\\\\\P 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \\\\\\\\\\\\\\\\U 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .Ed .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、最初の文字をエクスクラメーションマーク .Pq Dq \&! にします。 コマンドが実行されると、標準入力と標準出力がモデムデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行している場合、ファイルデスクリプタは .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\\\\\-c \\\\\\"echo \\\\\\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は下記のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq \&! 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイルデスクリプタ 2 (stderr) にリダイレクトして .Nm 自身に送信およびログさせ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp .It set hangup chat-script モデムをクローズする前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 .It set encrypt MSChap|MD5 CHAP チャレンジを発行するときに要求および使用する 暗号化アルゴリズムを指定します。 MSChap に設定すると、 .Nm は CHAP チャレンジ送信時 (CHAP が enable されていると仮定しています) に Microsoft RAS のように振舞います。 チャレンジへの応答時には、 .Nm チャレンジに基いてどのように暗号化するかを決定しますので、 この設定は無視されます。 .Bl -tag -width 注: .It 注: Microsoft の暗号化アルゴリズムは MD4 と DES の組み合わせを使用しますので、 .Nm 構築前にマシンに DES 暗号化ソフトウェアをインストールしていないと、 このオプションは使用できません - この場合 MD5 のみ使用されます。 .El .Pp .It set escape value... このオプションは上述の .Dq set accmap オプションに似ています。 リンクを経由する時に「エスケープ」される文字を指定するために使用します。 .It set ifaddr [myaddr [hisaddr [netmask [triggeraddr]]]] このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。 アドレスのフォーマットは以下の通りです。 .Dl a.b.c.d/n a.b.c.d は IP アドレスであり、 n はこのうち何ビットが有効であるかを示します。 もし /n ビットが省略された場合、デフォルトの /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは /0 です。 .Pp .Ar hisaddr に IP 番号の範囲として .Dl a.b.c.d[-d.e.f.g][,h.i.j.k[-l,m,n,o]]... のフォーマットを指定できます。例えば: .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 は .Ar 10.0.0.1 のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの一つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割当てていた IP 番号を使用したい場合に有用です。 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm はまず範囲内の未使用 IP 番号をランダムに指示します。 相手がこれに賛成しないと、 番号が選択されるか過多の IPCP 構成要求が送出されるまで、 .Nm は次の番号を指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP 交渉で使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP 交渉で使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 結果として、 .Fl auto モードでない限り、 .Dq add コマンドを .Pa ppp.conf で使用することは不可能 .Pq か、少くとも賢くない です (代りに .Pa ppp.linkup ファイルが使用されます)。 .Dq allow mode auto を使用して、現在のプロファイルを .Fl auto モードのみに限定してください。 .Pp また、一旦クライアントが自己を認証した後では、 .Ar hisaddr 引数は .Pa ppp.secret ファイルによって優先されることに注意してください。詳細は .Em 内向き接続の認証 の節を参照してください。 .It set loopback on|off .Ar on に設定された場合 (デフォルトです)、 宛先アドレスが .Em PPP インタフェースのアドレスと同一の送出パケットを、 .Nm は自動的にループバックさせます。 .Ar off に設定された場合、 .Nm はパケットを送信します。 この場合おそらく相手方で ICMP リダイレクトが発生します。 .It set log [local] [+|-]value... このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイアルスクリプトを補います。 もし両方が指定された場合、ダイアルスクリプトの後で、 ログインスクリプトが実行されます。 ダイアルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set mru value デフォルトの MRU は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテッドのパケットを 受信できなければ *ならない* からです。 .It set mtu value デフォルトの MTU は 1500 です。 相手が指定した MRU によって増加させることができます。 MTU はこのオプションによってのみ減らすことが可能です。 この値を増加させることは無効です。 なぜなら、相手は大きくなったパケットを受信できる保証が無いからです。 .It set ns x.x.x.x y.y.y.y このオプションは交渉される Microsoft DNS サーバを設定します。 .It set nbns x.x.x.x y.y.y.y このオプションは交渉される Microsoft NetBIOS DNS サーバを設定します。 .It set openmode active|passive Op delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP の交渉を開始します。 相手が交渉を開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってから交渉を開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark ラインのパリティを設定できます。デフォルト値は .Ar none です。 .It set phone telno[|telno]...[:telno[|telno]...]... ダイアルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ (|) もしくはコロン (:) で区切って指定可能です。 パイプの後の番号がダイアルされるのは、 直前の番号へのダイアルもしくはログインのスクリプトが失敗した場合のみです。 ラインの切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基いてダイアルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set reconnect timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外のライン切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 ラインは最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、0 から 30 秒の間の任意時間の停止となります。 .It set redial seconds[.nseconds] [attempts] .Nm ppp に .Ar attempts 回のリダイアルを指示できます。 1 より大きな数を指定した場合 (上述の .Ar set phone 参照)、 各番号にダイアルする前に、 .Ar nseconds だけ停止します。 最初の番号にダイアル開始する前に .Ar seconds だけ停止します。 .Dq random もここで使用できます。 .It set stopped [LCPseconds [IPCPseconds [CCPseconds]]] このオプションが指定されると、 指定した有限状態機械が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 .Nm が停止状態になったことにより返事をしないといった状態を見る場合と、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ipcp +ccp を使用すると、 .Nm は全状態遷移をログします。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set server|socket TcpPort|LocalName|none [password] [mask] このコマンドは .Nm に指定したポートもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 これは .Nm が対話モードの時には出来ません。 語 .Ar none は .Nm に既に存在するソケットをクローズさせます。 UNIX ドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 UNIX ドメインソケットに使用される 8 進 umask を指定可能です。 .Sq 0 から始まる 4 桁 8 進数で指定します。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です。 ここにパスワードを指定しないと、 .Pa /etc/ppp/ppp.secret からドメインサフィックスを除いたローカルホスト名にてマシン名で検索を行います。 詳細は .Xr hostname 1 を参照してください。 パスワードに空文字列を指定すると、パスワードは要求されなくなります。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed value シリアルデバイスの速度を指定します。 .It set timeout idle [LQR [FSM-resend]] アイドルタイマ、 (有効にされているなら) LQR タイマ、 有限状態機械 .Pq FSM; finite state machine リトライタイマの値を指定します。 .It set vj slots nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手と交渉をします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 から .Ar 16 の間で、それぞれの値を含みます。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮を交渉するか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set help|? 使用可能なセットコマンドのまとめを表示します。 .El .Pp .It shell|! [command] .Dq command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定されたコマンドが実行されます。 擬似引数 .Dv HISADDR , .Dv INTERFACE , .Dv MYADDR は適切な値に置き換えられます。! 文字を使用した場合、 この後のコマンドとの間にスペースが必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show var このコマンドを使用して、以下を確認できます: .Bl -tag -width 20 .It show [adio]filter 指定したフィルタの現在のルールをリストします。 .It show auth 現在の authname と暗号値を表示します。 .Nm を DES サポート無しで構築した場合、 .Ar MD5 が使用されるため、暗号値は表示されません。 .It show ccp 現在の CCP 統計を表示します。 .It show compress 現在の圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show hdlc 現在の HDLC 統計を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show loopback 現在のループバック状態を表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show modem 現在のモデム統計を表示します。 .It show mru 現在の MRU を表示します。 .It show mtu 現在の MTU を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show reconnect 現在の再接続値を表示します。 .It show redial 現在のリダイアル値を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show route 現在のルーティングテーブルを表示します。 .It show timeout 現在のタイムアウト値を表示します。 .It show msext 現在の Microsoft 拡張値を表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はモデムに送られます。 モデムから読んだ文字はスクリーンに表示されます。 モデムの相手側に .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet -compact .It 設定ファイルの例を読んでください。良い情報源です。 また、 .It .Dq help , .Dq show ? , .Dq alias ? , .Dq set ? , .Dq set ? コマンドを使ってください。 .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width flag .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワーク層の接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じるときにチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslogd.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunX.pid tunX デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで 'X' はデバイスの番号です。このファイルは .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .Pa It /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr chat 8 , .Xr crontab 5 , .Xr ftp 1 , .Xr getty 8 , .Xr gzip 1 , .Xr hostname 1 , .Xr inetd 8 , .Xr init 8 , .Xr login 1 , .Xr passwd 5 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr route 8 , .Xr syslog 3 , .Xr syslog.conf 5 , .Xr syslogd 8 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr traceroute 8 , .Xr uucplock 3 .Sh 歴史 元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、 FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。 .Pp それから、本質的に Brian Somers (brian@Awfulhak.org) が修正をし、'97 年 11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。 diff --git a/ja/man/man8/pw.8 b/ja/man/man8/pw.8 index bdeb2aacc8..322a99d280 100644 --- a/ja/man/man8/pw.8 +++ b/ja/man/man8/pw.8 @@ -1,804 +1,804 @@ .\" Copyright (C) 1996 .\" David L. Nugent. 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. .\" .\" THIS SOFTWARE IS PROVIDED BY DAVID L. NUGENT 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 DAVID L. NUGENT 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. .\" .\" %Id: pw.8,v 1.1.1.1.2.5 1997/11/04 07:16:14 charnier Exp % .\" jpman %Id: pw.8,v 1.3 1997/10/28 15:30:48 kuriyama Stab % .\" .Dd December 9, 1996 .Dt PW 8 .Os .Sh 名称 .Nm pw .Nd システムユーザ、グループの作成、削除、変更、表示 .Sh 書式 .Nm pw .Ar useradd .Op name|uid .Op Fl C Ar config .Op Fl q .Op Fl n Ar name .Op Fl u Ar uid .Op Fl c Ar comment .Op Fl d Ar dir .Op Fl e Ar date .Op Fl p Ar date .Op Fl g Ar group .Op Fl G Ar grouplist .Op Fl m .Op Fl k Ar dir .Op Fl s Ar shell .Op Fl o .Op Fl L Ar class .Op Fl h Ar fd .Op Fl N .Op Fl P .Nm pw .Ar useradd .Op name|uid .Op Fl D .Op Fl C Ar config .Op Fl q .Op Fl b Ar dir .Op Fl e Ar days .Op Fl p Ar days .Op Fl g Ar group .Op Fl G Ar grouplist .Op Fl k Ar dir .Op Fl u Ar min,max .Op Fl i Ar min,max .Op Fl w Ar method .Op Fl s Ar shell .Nm pw .Ar userdel .Op name|uid .Op Fl n Ar name .Op Fl u Ar uid .Op Fl r .Nm pw .Ar usermod .Op name|uid .Op Fl C Ar config .Op Fl q .Op Fl n Ar name .Op Fl u Ar uid .Op Fl c Ar comment .Op Fl d Ar dir .Op Fl e Ar date .Op Fl p Ar date .Op Fl g Ar group .Op Fl G Ar grouplist .Op Fl l Ar name .Op Fl m .Op Fl k Ar dir .Op Fl w Ar method .Op Fl s Ar shell .Op Fl L Ar class .Op Fl h Ar fd .Op Fl N .Op Fl P .Nm pw .Ar usershow .Op name|uid .Op Fl n Ar name .Op Fl u Ar uid .Op Fl F .Op Fl P .Op Fl a .Nm pw .Ar usernext .Op Fl C Ar config .Op Fl q .Nm pw .Ar groupadd .Op group|gid .Op Fl C Ar config .Op Fl q .Op Fl n Ar group .Op Fl g Ar gid .Op Fl M Ar members .Op Fl o .Op Fl h Ar fd .Op Fl N .Op Fl P .Nm pw .Ar groupdel .Op Fl n Ar name .Op Fl g Ar gid .Nm pw .Ar groupmod .Op Fl C Ar config .Op Fl q .Op Fl F .Op Fl n Ar name .Op Fl g Ar gid .Op Fl l Ar name .Op Fl M Ar members .Op Fl m Ar newmembers .Op Fl h Ar fd .Op Fl N .Op Fl P .Nm pw .Ar groupshow .Op Fl n Ar name .Op Fl g Ar gid .Op Fl F .Op Fl P .Op Fl a .Nm pw .Ar groupnext .Op Fl C Ar config .Op Fl q .Sh 解説 .Nm pw は、システムの .Ar user 、 .Ar group ファイルのユーザ、グループを簡単に、標準的な方法で追加、変更、削除 することができるようにするコマンドライン版のエディタです。 .Nm は、ローカルな user ファイルと group ファイルを操作することができるだ けだということに注意して下さい。 NIS のユーザ、グループは NIS サーバ上 で管理しなければなりません。 .Nm は root で実行されなければならず、 .Pa passwd , .Pa master.passwd , .Pa group ファイルや、安全なまたは安全でないパスワードデータベースファイル の更新作業を行います。 .Pp .Xr pw 8 のコマンドラインにかかれている最初の一つか二つのキーワードは、引数の残り に対する文脈を規定します。 .Ar user と .Ar group のキーワードはどちらも、 .Ar add , .Ar del , .Ar mod , .Ar show , .Ar next と組み合わせるか、分離して用いることができ、どちらの順序 (例えば showuser, usershow, show user, user show はすべて同じことと みなされます) で指定してもかまいません。 この柔軟性は、実際のユーザ、グループデータベース操作のために .Nm を呼ぶ対話的なスクリプトには便利です。 .Fl n Ar name , .Fl u Ar uid , .Fl g Ar gid オプションを使う代わりに、 これらのキーワードに続けてユーザ名、グループ名、数字の ID のうち一つ を指定することができます。 .Pp 以下のフラグは操作のすべてのモードで共通です: .Pp .Bl -tag -width "-G grouplist" .It Fl C Ar config .Nm は新しいユーザアカウントとグループはどのように作られるべきかという 方針の情報を得るために、デフォルトではファイル .Pa /etc/pw.conf を読み込みますが、 .Fl C オプションで異なる設定ファイルを指定できます。 設定ファイルのほとんどの内容は、コマンドライン オプションにより上書きされますが、新しいアカウントを追加するための標準 的な情報を設定ファイルに設定しておくと より便利かもしれません。 .It Fl q このオプションを使うと .Nm はエラーメッセージを抑制します。これは、注意深くフォーマットされたディスプレイへのメッセージ表示よりも、 .Nm から返された戻り値を解釈する方が好まれるような対話的な環境では 便利かもしれません。 .It Fl N このオプションは add と modify 操作で使います。 .Nm は、ユーザ/グループデータベースの更新をスキップして、操作を実際には 実行せずに、代わりに結果だけを出力します。 .Fl P オプションを使うと、標準 passwd と可読なフォーマットの切り替えが できます。 .El .Pp .Sh ユーザオプション 以下のオプションは .Ar useradd と .Ar usermod コマンドに付けます: .Pp .Bl -tag -width "-G grouplist" .It Fl n Ar name ユーザ名/アカウント名を指定します。 .It Fl u Ar uid ユーザ ID / アカウント ID を数字で指定します。 .Pp アカウント名は uid を含み、逆も同様であるため、通常これらのオプション のどちらか片方しか必要ではありません。 また .Ql Fl n や .Ql Fl u を使わなくても、コマンドライン上で .Ar useradd , .Ar userdel , .Ar usermod , .Ar usershow キーワードの直後にアカウントとユーザIDのどちらでも続けることができます。 しかし、両方を指定しなければならないこともしばしばあります。 例えば、存在するユーザの uid を .Ar usermod で変えたり、新しいアカウントを作るときにデフォルトの uid を上書きした りするときです。 .Nm で .Ar useradd を使って新しいユーザに uid を自動的に割り当てたい場合は、 .Ql Fl u オプションを使っては .Em いけません 。 .El .Pp .Ar useradd と .Ar usermod の両方で使えるオプション: .Bl -tag -width "-G grouplist" .It Fl c Ar comment このオプションは passwd の GECOS フィールドの内容をセットします。 -このフィールドは、カンマで区切られた四つのサブフィールドで、一般的には +このフィールドは、コンマで区切られた四つのサブフィールドで、一般的には ユーザの姓名、勤務先または地区、職場と自宅の電話番号を含みます。 これらのサブフィールドは慣習的に使われるだけであり、省略可能です。 このフィールドが空白を含む場合、コメント自身をダブルクォート .Ql \&" でくくらなければなりません。 -サブフィールドの区切りで使われたような、フィールド内のカンマの使用は +サブフィールドの区切りで使われたような、フィールド内のコンマの使用は 避けて下さい。そして、コロン .Ql \&: キャラクタも passwd ファイルのフィールド区切りであるため使えません。 .It Fl d Ar dir このオプションは、アカウントのホームディレクトリを設定します。 通常、これはホームディレクトリがデフォルト (基本のホームディレクトリ - 普通 .Pa /home と サブディレクトリとしてのアカウント名 - を指定する pw.conf で決定されます) と異なる場合にだけ使うことになるでしょう。 .It Fl e Ar date アカウントが破棄される日付をセットします。 この日付のフォーマットは、 10 進の UNIX 時間か .Ql \& dd-mmm-yy[yy] フォーマットの日付のどちらかになり、後者は dd が日、mmmが月で、数字と アルファベット('Jan', 'Feb' 等)のどちらでもよく、年は 2 または 4 桁の 数字からなります。 このオプションは、 .Ql \&+n[mhdwoy] の形の相対的な日付も受け付けます。 .Ql \&n は 10 進数、 8 進数 (0 から始まる) 、 16 進数 (0x で始まる) の数字で、 その後に現在の日付時刻から破棄される日までの分(m)、時(h)、日(d)、 曜日(w)、月(o)、年(y)の数がセットされます。 .It Fl p Ar date アカウントのパスワードが破棄される日付をセットします。 このフィールドは、強制的なパスワードの変更を適用することを除けば、 アカウントを破棄するオプションと同等です。 アカウントを破棄するオプションと同じフォーマットを受け付けます。 .It Fl g Ar group 与えられた group をアカウントの初期グループにセットします。 .Ar group は、グループ名または対応するグループ ID 番号が使えます。 .It Fl G Ar grouplist アカウントが属する別のグループをセットします。 .Ar grouplist -は、カンマ区切りのリスト、またはグループ名、またはグループ IDです。 +は、コンマ区切りのリスト、またはグループ名、またはグループ IDです。 ユーザを加える場合、 .Pa /etc/group の各グループにユーザ名が追加されます。 ユーザを編集する場合、 .Ar grouplist に指定されたグループにユーザ名が加えられ、 指定されなかったグループからは除かれます。 注意: ユーザは .Pa /etc/group の初期グループには加えられるべきではありません。 また、グループのメンバの変更は現在のログインにはすぐには影響されず、変 更後のログインにだけ影響します。 .It Fl L Ar class このオプションは生成されたユーザのログインクラスをセットします。 ユーザクラスに関する情報は .Xr login.conf 5 を参照して下さい。 .It Fl m このオプションは、ユーザのホームディレクトリの作成を試みるように .Nm に指示します。 もちろんこれは .Ar useradd で新しいアカウントを加えるときにも役に立ちますが、 存在するユーザのホームディレクトリをファイルシステムの別の場所に 移動する、という使い方もできます。 新しいホームディレクトリは、一般にユーザが個人的に使う シェルの設定ファイル一式を含む、 .Ar 雛型 ディレクトリの内容と共に移されます。 .Ar usermod にアカウントを指定して .Ql Fl m が用いられると、そのユーザのホームディレクトリにある 設定ファイルはプロトタイプのファイルで .Em 上書きされません 。 .Pp ユーザのホームディレクトリが作成されるとき、デフォルトで .Ql Fl b Ar dir オプション (下記参照) で指定された .Ar basehome ディレクトリのサブディレクトリとして作られ、アカウント名と同じ名前が付 けられます。 コマンドラインに .Ql Fl d Ar dir オプションを付けると、上書きするようにもできます。 .It Fl k Ar dir このオプションは、 .Ar 雛型 のサブディレクトリをセットします。ユーザのホームディレクトリが作成 されるとき、そこから基本の起動時ファイル、設定ファイル がコピーされます。 このオプションは、 .Ql Fl D (下記参照) や .Ql Fl m と共に使ったときにのみ意味があります。 .It Fl s Ar shell ユーザのログインシェルを .Ar shell にセットまたは変更します。 シェルプログラムへのパスが省略されると、 .Nm は .Pa /etc/pw.conf で指定された .Ar shellpath を探し、それを適切に補います。 パスを指定するのは、特別な理由があるのでなければ、避けるべきだ ということを覚えておきましょう。 指定しないことで、プログラムが存在し、かつ実行可能であることを .Nm に確認させることができるからです。 フルパスを指定する (または空のままの "" シェルにしておく) と このチェックをせず、対話的なログインをさせないアカウントを 設定しなければならないときに設定される .Pa /nonexistent のようなエントリを作ることができます。 .It Fl L Ar class ユーザの passwd レコード内の .Em class フィールドをセットします。 このフィールドは現在使われていませんが、将来は .Em termcap エントリのようなタグ (詳細は .Xr passwd 5 を参照のこと) を指定するために使われるでしょう。 .It Fl h Ar fd このオプションは、 .Nm を使ってアカウントパスワードを設定することができる対話的なスクリプトを 設定できるような特別のインタフェースを用意します。 コマンドラインと環境は、プログラムが情報を受け取るしくみとしては 基本的に安全ではないため、 .Nm はファイル記述子 (通常対話的スクリプトとプログラム間のパイプ) を通してのみ、アカウントとグループのパスワードの設定を許可します。 .Ar sh , .Ar bash , .Ar ksh , .Ar perl は皆、これができるしくみを持っています。 .Ql Fl h Ar 0 が指定されると、代わりに .Nm はユーザのパスワードを求めるプロンプトを出し、 .Em stdin をパスワードを読み込むファイル記述子とします。 このパスワードは一度しか読み込まれず、対話的な使用よりも スクリプト向きにできていることに注意して下さい。 .Xr passwd 1 の行に合わせて新しいパスワードの確認をしたい場合、これは .Nm を呼び出す対話的なスクリプトの一部として実装されるべきです。 .Pp 引数 .Ar fd として .Ql \&- が与えられると、パスワードとして .Ql \&* がセットされ、そのアカウントにはパスワードでログインすることが できないようになります。 .El .Pp .Ar useradd を使うことで、存在するユーザ ID と重複する新しいアカウントを作成するこ とができるようになります。 これは普通エラーになって拒否されるはずですが、 .Ql Fl o オプションが重複チェックを上書きし、ユーザ ID の重複を 許すことになります。 これは、同一のユーザが異なるコンテキスト(異なるグループ割り当てや 異なるホームディレクトリ、異なるシェル)でログインするのを許可する 場合に、各アカウントに基本的に同一のアクセス権を与える場合に便利です。 .Pp .Ar useradd コマンドは .Ql Fl D オプションを使うことで新しいユーザとグループのデフォルトも設定できます。 新しいユーザを付け加える代わりに、 .Nm は設定ファイル .Pa /etc/pw.conf に新しいデフォルトのセットを書き込みます。 .Ql Fl D オプションを使う場合、 .Ql Fl n Ar name や .Ql Fl u Ar uid を使ってはいけません。そうでないとエラーになります。 .Ql Fl D を使うと、 .Ar useradd コマンドのいくつかのコマンドラインスイッチの意味が変わります。 それは: .Bl -tag -width "-G grouplist" .It Fl D 設定ファイル .Pa /etc/pw.conf ( もしくは .Ql Fl C Ar config オプションが使われたときは異なる名前の設定ファイル ) の中でのデフォルトの値をセットします。 .It Fl b Ar dir ユーザホームディレクトリが作成されるルートディレクトリをセットします。 このオプションのデフォルトの値は .Pa /home ですが、他の好きなディレクトリにセットできます。 .It Fl e Ar days デフォルトのアカウントの有効期間を日数でセットします。 .Ql Fl D を付けずに使われる場合と異なり、引数はアカウントが作成されてから無効に なるまでの日数を指定する数字でなければなりません。 0 という値は、破棄する日付の自動算出を抑制します。 .It Fl p Ar days デフォルトのパスワードの有効期間を日数でセットします。 .It Fl g Ar group 新しいユーザのデフォルトのグループをセットします。 .Ql Fl g Ar \&"" を使って空のグループを指定すると、新しいユーザは自分自身の私的な初期 グループ (ログイン名と同じ名前の新しいグループが作成されます) に 割り当てられます。 グループの指定には、名前または uid を引数として与えることができます。 .It Fl G Ar grouplist 新しいユーザが所属するデフォルトのグループ群を指定します。 これは初期グループとは区別されたグループのセットで、一つの同じグルー プを初期グループとこの別グループ群の両方に指定することは 避けなければなりません。 言い替えると、これらの別グループ群では初期グループ .Em 以外の グループの構成メンバが決められます。 .Ar grouplist -はカンマ区切りのグループ名もしくは ID 、もしくはそれらの混在で、 +はコンマ区切りのグループ名もしくは ID 、もしくはそれらの混在で、 .Pa /etc/pw.conf の中にシンボリック名で保存されます。 .It Fl L Ar class このオプションは、新しいユーザのデフォルトのログインクラスを セットします。 .It Fl k Ar dir デフォルトの .Em 雛型 ディレクトリをセットし、 .Nm がユーザのホームディレクトリを作成するときに、 そこからシェルなどの初期化ファイルのプロトタイプがコピーされます。 .It Fl u Ar min,max , Fl i Ar min,max これらのオプションは、 .Nm により作成された新しいアカウントとグループのために割り当てるユーザと グループの最小の ID と最大の ID をセットします。 デフォルト値はどちらも最小 1000 で最大 32000 です。 .Ar min と .Ar max はどちらも数字で、 max は min より大きく、両方とも 0 から 32767 の範囲 内でなければなりません。 一般に 100 未満のユーザ ID とグループ ID はシステムに予約されており、 32000 より大きな数も (システム daemon が使う) 特殊な目的に 予約されています。 .It Fl w Ar method .Ql Fl w オプションは新しく作成されたユーザアカウントのパスワードをセットするの に使われるデフォルトの方法を指定します。 .Ar method は以下のうちの一つです: .Pp .Bl -tag -width random -offset indent -compact .It no 新しく作成されたアカウントでのログインを不可とします。 .It yes アカウント名をパスワードにします。 .It none パスワードを空欄にします。 .It random ランダムパスワードを生成します。 .El .Pp The .Ql \&random や .Ql \&no method は、最も安全です。前者の場合、 .Nm はパスワードを生成し、標準出力に出力します。 このパスワードは、ユーザがそのアカウントにアクセスするパスワードとして あなたが発行しますが、ユーザ自身が自分のパスワードを指定 (多分ひどい選択です) するものより適切です。 .Ql \&no method にした場合、パスワードでアクセスできるアカウントを与えるために スーパユーザが .Xr passwd 1 を使わなければなりません。 .El .Pp .Ar userdel コマンドには三つしか正しいオプションがありません。 .Ql Fl n Ar name と .Ql Fl u Ar uid オプションには、既に前述の説明があります。 追加オプション: .Bl -tag -width "-G grouplist" .It Fl r このオプションで、 .Nm はユーザのホームディレクトリとその内容のすべてを削除します。 .Nm はシステムからファイルを削除するとき、慎重すぎるやり方をとります。 まず、削除されるアカウントの uid がシステムの別のアカウントでも使われ ていて、パスワードファイルの 'ホーム' ディレクトリが文字 .Ql \&/ で始まる正しいパスであった場合にはファイルは削除されません。 次に、ファイルやディレクトリが実際にそのユーザのものであるか、 誰かの所有であるシンボリックリンクがユーザのホームディレクトリ下にある 場合にだけ削除されます。 最後に、そのユーザの所有であるすべての中身を削除した後、 空のディレクトリだけが削除されます。 更に別の一掃が必要なときは、管理者に任されます。 .El .Pp メールスプールファイルと crontab はユーザ名に無条件に付属しているもの なので、アカウントが削除されたとき常に削除されます。 .Ar at コマンドによって処理待ちのキューに入っているジョブも、ユーザの uid がユニークである (そのシステムの別のアカウントに使われていない) 場合は 削除されます。 .Pp .Ar usershow コマンドは、二種類のフォーマットでアカウントを閲覧できます。 フォーマットは、デフォルトで .Pa /etc/master.passwd で使われているものと同じで、パスワードフィールドは .Ql \&* に置き換えられています。 .Ql Fl P オプションが使われると、 .Nm はより人間に読みやすい形でアカウントの詳細を出力します。 .Ql Fl a オプションは、現在ファイルにあるすべてのユーザをリストします。 .Pp .Ar usernext コマンドは、利用可能な次のユーザ ID とグループ ID を コロン区切りで返します。 これは、通常 .Nm を使う対話的なスクリプトやフロントエンド用です。 .Pp .Sh グループオプション グループを操作するコマンドには、 .Ql Fl C Ar config と .Ql Fl q オプション (前セクションの始めに説明があります) が使えます。 他のグループ関係のコマンド: .Bl -tag -width "-m newmembers" .It Fl n Ar name グループ名を指定します。 .It Fl g Ar gid グループの ID を数字で指定します。 .Pp グループ名は uid を意味し、逆も同様なので、アカウント名 と ID フィールドとして、普通どちらか一つを付ければよいのです。 両方を指定する必要があるのは、新しいグループに指定したグループ ID を 設定するとき、または存在するグループの uid を変えたいときだけです。 .It Fl M Ar memberlist このオプションは、存在するユーザを新しいグループに (groupaddで) 加えたり、存在するメンバリストを (groupmodで) 新しいものに取り換える もうひとつの方法です。 .Ar memberlist -は正当で、存在するユーザ名または uid のカンマ区切りのリストです。 +は正当で、存在するユーザ名または uid のコンマ区切りのリストです。 .It Fl m Ar newmembers .Op M オプションと同様、このオプションは最初に存在するメンバのリストを 入れ換えることなく、グループに存在するユーザを .Em 追加 します。 ログイン名またはユーザ ID を使うことができ、重複するユーザは警告無く 自動的に削除されます。 .El .Pp .Ar groupadd にも、存在するグループ ID を新しいグループに割り当てる .Ql Fl o オプションがあります。 デフォルトの動作は、グループ追加の試みを拒否することになっており、この オプションはグループ ID の重複チェックを上書きします。 グループ ID を重複させる必要は滅多にありません。 .Pp .Ar groupmod コマンドには、一つの追加オプションがあります: .Pp .Bl -tag -width "-m newmembers" .It Fl l Ar name このオプションで、存在するグループ名を .Ql \&name に変更することができます。 新しい名前は存在しないものでなければならず、存在するグループ名と 重複させようとすると拒否されます。 .El .Pp .Ar groupshow へのオプションは .Ql Fl u Ar uid の代わりにグループ ID を指定する .Ql Fl g Ar gid を付けた .Ar usershow と同じです。 .Pp .Ar groupnext コマンドは、次に使用できるグループ ID を標準出力に返します。 .Sh 診断 .Nm は、操作に成功すると EXIT_SUCCESS を返し、そうでなければ .Xr sysexits 3 により定義された以下の戻り値のうちどれかひとつを返します: .Bl -tag -width xxxx .It EX_USAGE .Bl -bullet -compact .It コマンドラインのシンタックスエラー (不適切なキーワード、未定義オプション)。 .El .It EX_NOPERM .Bl -bullet -compact .It root でないユーザとして、何らかの更新を実行しようとした。 .El .It EX_OSERR .Bl -bullet -compact .It メモリアロケーションエラー。 .It パスワードファイル記述子の読み出しエラー .El .It EX_DATAERR .Bl -bullet -compact .It コマンドライン上やパスワードファイル記述子の、間違った、または正しくな いデータや欠落データ。 .It root アカウントの名前や uid の変更、削除をしようとした。 .El .It EX_OSFILE .Bl -bullet -compact .It 雛型ディレクトリが適切でない、または存在しない。 .It 基本ホームディレクトリが適切でない、または存在しない。 .It 指定したシェルが適切でない、または存在しない。 .El .It EX_NOUSER .Bl -bullet -compact .It 指定されたユーザ、ユーザ ID 、グループ、グループ ID が存在しない。 .It 記録、追加、または更新されたユーザ、グループが予期せず無くなった。 .El .It EX_SOFTWARE .Bl -bullet -compact .It 指定した範囲には未使用グループ ID 、ユーザ ID が残っていない。 .El .It EX_IOERR .Bl -bullet -compact .It 設定ファイルの書き換えができない。 .It グループやユーザデータベースファイルの更新時エラー。 .It パスワードまたはグループデータベースファイルの更新時エラー。 .El .It EX_CONFIG .Bl -bullet -compact .It 基本ホームディレクトリが設定されていない。 .El .El .Pp .Sh 注釈 各コマンドに使用可能なオプションの要約として、 .Dl pw [command] help が使えます。例えば、 .Dl pw useradd help は useradd 操作に使用できるすべてのオプションをリストします。 .Sh 関連ファイル .Bl -tag -width /etc/master.passwd.new -compact .It Pa /etc/master.passwd ユーザデータベース .It Pa /etc/passwd Version 7 フォーマットのパスワードファイル .It Pa /etc/login.conf ユーザケーパビリティデータベース (user capability database) .It Pa /etc/group グループデータベース .It Pa /etc/master.passwd.new マスタパスワードファイルの一時コピー .It Pa /etc/passwd.new Version 7 パスワードファイルの一時コピー .It Pa /etc/group.new グループファイルの一時コピー .It Pa /etc/pw.conf pw コマンドのデフォルトオプションファイル .El .Sh 関連ファイル .Xr chpass 1 , .Xr passwd 1 , .Xr group 5 , .Xr login.conf 5 , .Xr passwd 5 , .Xr pw.conf 5 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Sh 歴史 .Nm は、 SYSV の .Em shadow サポートで使われていた多くのオプションを模倣して書かれましたが、 .Bx 4.4 オペレーティングシステムに特有のパスワードフィールド、 グループフィールドに合わせて変更されています。また、ほとんどの要素が 一つのコマンドにまとめられています。 diff --git a/ja/man/man8/restore.8 b/ja/man/man8/restore.8 index ece2090731..3f8273fb7c 100644 --- a/ja/man/man8/restore.8 +++ b/ja/man/man8/restore.8 @@ -1,421 +1,421 @@ .\" Copyright (c) 1985, 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. .\" .\" @(#)restore.8 8.4 (Berkeley) 5/1/95 -.\" %Id: restore.8,v 1.5.2.4 1998/05/11 13:03:24 jkh Exp % +.\" %Id: restore.8,v 1.5.2.5 1998/08/12 06:51:28 charnier Exp % .\" .\" jpman %Id: restore.8,v 1.2 1997/03/31 14:58:10 horikawa Stab % .Dd May 1, 1995 .Dt RESTORE 8 .Os BSD 4 .Sh 名称 .Nm restore .Nd "dump コマンドで作ったバックアップからファイルやファイルシステムをリストアする" .Sh 書式 .Nm restore .Fl i .Op Fl chkmuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm restore .Fl R .Op Fl ckuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm restore .Fl r .Op Fl ckuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm restore .Fl t .Op Fl chkuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Op file ... .Nm restore .Fl x .Op Fl chkmuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Op file ... .Pp .in -\\n(iSu ( .Bx 4.3 オプション文法はバックワードコンパチビリティのために実装されていますが、 ここには記載していません。) .Sh 解説 .Nm restore は .Xr dump 8 と逆の動作を行います。 ファイルシステムの完全なリストアを行うには、 まず、フルバックアップのリストアから始め、 続いてその上にインクリメンタルバックアップをリストアします。 フルまたは部分バックアップから、単一のファイルやディレクトリの部分ツリー のみをリストア することも可能です。 .Nm restore は、ネットワークを介した動作も可能です。これを行うには、以下で説明されている .Fl f フラグを参照してください。 コマンドに与えるその他の引数は、リストアされるファイルを指定するための ファイルやディレクトリ名です。 .Fl h フラグを指定していない限り(下記参照)、ディレクトリ名を指定することで、 そのディレクトリ中のファイルや (再帰的に) サブディレクトリを指定することになります。 .Pp 以下のいずれか 1 つ(複数指定不可)のフラグが必要です: .Bl -tag -width Ds .It Fl i バックアップからの対話的なリストアを行います。バックアップからディレクトリ情報 を読み取ると、 .Nm restore はユーザに展開すべきファイルを選択させるために、 シェルに似たインタフェースでコマンドを受け付けます。 以下のコマンドが使用可能です。引数が必要なコマンドにおいて引数を省略すると、 デフォルトとしてカレントディレクトリが使われます。 .Bl -tag -width Fl .It Ic add Op Ar arg カレントディレクトリまたは指定した引数のファイルを、リストアするファイルの リストに付け加えます。ディレクトリ名を指定した場合には、そのディレクトリの下の すべてのファイルが展開リストに加えられます (コマンドラインに .Fl h フラグが指定されなかった場合)。 .Ic ls でファイルのリストを表示するときに、展開リストに含まれているファイルの頭 には ``*'' がつけられています。 .It Ic \&cd Ar arg カレントディレクトリを指定したディレクトリに移動します。 .It Ic delete Op Ar arg カレントディレクトリまたは引数で指定したファイル名のファイルを、展開する ファイルのリストから削除します。 ディレクトリ名を指定した場合には、そのディレクトリの下のすべてのファイルが 展開リストから削除されます (コマンドラインに .Fl h フラグが指定されなかった場合)。 ディレクトリ中のほとんどのファイルを展開する場合には、 ディレクトリ全体を展開リストに加えたあとで不要なファイルだけを 削除するのが一番便利なやりかたです。 .It Ic extract 展開ファイルリストにあるすべてのファイルをバックアップから展開します。 .Nm restore は、どのボリュームをマウントしたいかをユーザにたずねます。 数個のファイルのみを展開するのにもっとも早い方法は、最終ボリュームから開始して 最初のボリュームへと戻ることです。 .It Ic help 利用できるコマンドの簡単な説明を表示します。 .It Ic \&ls Op Ar arg カレントディレクトリまたは指定されたディレクトリのリストを表示します。 ディレクトリ名の後ろには ``/'' が付け加えられ、展開リストにあるファイルの前に は ``*'' が加えられます。冗長フラグがセットされていた場合には、 各ディレクトリエントリにあわせて inode 番号も表示されます。 .It Ic pwd カレントディレクトリのフルパス名を表示します。 .It Ic quit .Nm restore コマンドを中断します。展開リストに何かファイルがあったとしても終了します。 .It Ic setmodes 展開リストにあるすべてのディレクトリの所有者、モード、時刻がセットされる のみで、バックアップからはなにも展開されません。 これは、リストアを途中で中断してしまった時の後始末に有用です。 .It Ic verbose 冗長フラグ .Fl v の意味を反転します。冗長フラグがセットされている場合には、 .Ic ls コマンドは、すべてのエントリに対してその inode 番号を表示します。 また、 .Nm restore コマンドは、ファイルを展開するたびにその情報を表示します。 .El .It Fl R .Nm restore は、 フルリストアを再開するために、マルチボリュームのテープのうち特定のものを リストアすることを要求します (下記 .Fl r フラグを参照)。 これはリストア動作を中断したときに使われます。 .It Fl r リストア(ファイルシステムの再構築)を行います。 レベル 0 バックアップのリストアの前には、リストア先となるファイルシステムは .Xr newfs 8 で初期化しておき、マウントして、そのディレクトリへ .Xr cd で移動しておく必要があります。 レベル 0 バックアップのリストアに成功したら、 .Fl r フラグを指定することで、 それに加えて必要なインクリメンタルバックアップをリストアすることができます。 .Fl r フラグは対話的なファイルリストアを行わないため、注意して扱わないと 損害を与えることがあります (ディスクは言うに及ばず、精神的にも)。 次のように実行します: .Bd -literal -offset indent newfs /dev/rrp0g eagle mount /dev/rp0g /mnt cd /mnt restore rf /dev/rst8 .Ed .Pp .Nm restore は、インクリメンタルリストアのための情報を、ルートディレクトリの .Pa restoresymtable に記録します。このファイルは、すべての増分をリストアしたあとで削除すべきです。 .Pp .Nm restore を、 .Xr newfs 8 や .Xr dump 8 と組み合わせることで、ファイルシステムのサイズやブロックサイズといった パラメータを変更するのに使うことができます。 .It Fl t 指定したファイル名のファイルがバックアップ中にあれば、その名前を表示します。 ファイル名引数がない場合にはルートディレクトリを表示するため、 .Fl h フラグを指定していない限り、バックアップ中のすべてのファイルを表示することに なります。 このフラグは、古くからあった .Xr dumpdir 8 のかわりの機能を持つことに注意してください。 .ne 1i .It Fl x メディアから、指定したファイルが読み出されます。 指定ファイルがディレクトリで、そのディレクトリの内容がバックアップ中に存在し、 かつ .Fl h フラグが指定されていないときには、ディレクトリの内容が再帰的に展開されます。 (可能であれば) ファイルの所有者、修正日時、モードもリストアされます。 もし引数が与えられていなければルートディレクトリを展開するため、 .Fl h フラグを指定していない限り、結果的にバックアップ全体が展開されます。 .El .Pp 以下の追加オプションを指定可能です: .Bl -tag -width Ds .It Fl b Ar blocksize ダンプレコードあたりのキロバイト数です。 .Fl b が指定されないときは、 .Nm restore はメディアのブロックサイズを動的に求めようとします。 .It Fl c 通常 .Nm は、ダンプ対象のファイルシステムフォーマットが 新しいか古い(4.4 以前)かを動的に決定します。 .Fl c フラグはこのチェックを無効にし、 古いフォーマットのダンプからのみ読み込むことを許します。 .It Fl f Ar file バックアップを .Ar file から読み込みます; .Ar file は、 .Pa /dev/rmt12 (テープドライブ)や .Pa /dev/rsd1c (ディスクドライブ)といったスペシャルデバイスファイル、 通常のファイル、 .Ql Fl (標準入力)のいずれかです。 ファイル名が .Dq host:file や .Dq user@host:file という形式である場合は、 .Nm restore は .Xr rmt 8 を用いて指定したファイルを指定のホストから読み取ります。 .Pp .It Fl k リモートテープサーバとの通信時に Kerberos 認証を使用します ( .Nm restore のコンパイル時に有効にされている場合のみ使用可能です。) .Pp .It Fl h ディレクトリ名を指定された場合に、その中のファイルではなく、 ディレクトリそのものを展開するようにします。 これによって、ダンプからディレクトリのサブツリーを階層的に 展開してしまうことを防ぎます。 .It Fl m 展開を、ファイル名ではなく inode 番号によって行います。 これは数個のファイルのみを展開したい場合で、ファイルの完全なパス名を 再生することを防ぎたい場合に有用です。 .It Fl s Ar fileno マルチファイルテープの .Ar fileno から読みます。 ファイル番号は 1 から始まります。 .It Fl u 特定のタイプのファイルを作成する時に、 リストア先ディレクトリに既に同名のファイルが存在する場合には、 リストアは警告診断を生成し得ます。 この動作を抑制するために、 .Fl u (アンリンク) フラグを指定すると、リストアは古いエントリを作成してから 新しいエントリを作成しようとします。 .It Fl v 普通、 .Nm restore は何も表示せずにリストア動作を行います。 .Fl v (verbose, 冗長)フラグを指定すると、 扱うファイルのタイプとファイル名が表示されます。 .It Fl y エラーが発生したときに、リストア動作を中断するかどうかの問い合わせを 行いません。 これによって、不良ブロックをスキップして、可能なかぎり動作を継続します。 .El .Sh 診断 リードエラーが発生するとメッセージを表示します。 もし、 .Fl y が指定されているか、あるいはユーザが .Ql y の応答をしたならば、 .Nm restore はリストアを続行しようとします。 .Pp バックアップが 1 巻より多くのテープボリュームに格納されていたならば、 .Nm restore は次のボリュームをマウントすべき時点でそれをユーザに知らせます。 もし、 .Fl x あるいは .Fl i フラグが指定されていたら、 .Nm restore は、ユーザがマウントしたいのはどのボリュームであるかを問い合わせます。 少数のファイルを最も早く展開する方法は、最終ボリュームから開始して、 最初のボリュームへ向けて作業を進めることです。 .Pp .Nm restore は数多くの一貫性検査を行っていて、それを表示します。 ほとんどの検査結果の表示は自明であるか、あるいは「決して起こらない」ものです。 良くあるエラーを以下に示します。 .Pp .Bl -tag -width Ds -compact .It Converting to new file system format. 古い形式のファイルシステムで作られたダンプテープがロードされました。 その場合、自動的に新しいファイルシステムの形式に変換されます。 .Pp .It : not found on tape 指定したファイル名はテープのディレクトリには記録されていましたが、 テープのなかに本体が見当たりませんでした。 このような事態が起きるのは、ファイルを探している間にテープのリードエラー が発生した場合や、稼働中のファイルシステムにおいて作成したダンプテープ を使った場合です。 .Pp .It expected next file , got ディレクトリに記録されていなかったファイルが示されます。 稼働中のファイルシステムにおいて作成したダンプを使った場合に発生することが あります。 .Pp .It Incremental dump too low インクリメンタルリストアを行う際に、ダンプが直前のインクリメンタルダンプ よりも以前に書かれたものであったり、増分レベルが低すぎるダンプがロード された場合に表示されます。 .Pp .It Incremental dump too high インクリメンタルリストアを行う際に、ダンプが直前のインクリメンタルダンプ の続きの範囲から開始していなかったり、あるいは増分レベルが高すぎる ダンプがロードされた場合に表示されます。 .Pp .It Tape read error while restoring .It Tape read error while skipping over inode .It Tape read error while trying to resynchronize テープ(あるいはその他の媒体)のリードエラーが発生しました。 ファイル名が表示されていたならば、その内容はおそらく部分的に不正なものに なっているでしょう。 もし inode がスキップされたり、テープの resynchronize(再同期)が試みら れていたならば、展開されたファイルには問題はありません。しかし、テープ 上からいくつかのファイルを見付けることができないかもしれません。 .Pp .It resync restore, skipped blocks ダンプのリードエラーが発生した後に、おそらく .Nm restore は自分自身で再同期をとらなければなりません。 このメッセージはスキップしたブロックの個数を表示します。 .El .Sh 関連ファイル .Bl -tag -width "./restoresymtable" -compact .It Pa /dev/rst0 デフォルトのテープドライブ .It Pa /tmp/rstdir* テープ中のディレクトリを保持するファイル .It Pa /tmp/rstmode* ディレクトリの所有者、モード、タイムスタンプ .It Pa \&./restoresymtable インクリメンタルリストア間で渡される情報 .El .Sh 関連項目 .Xr dump 8 , .Xr ft 8 , .Xr mount 8 , .Xr newfs 8 , .Xr rmt 8 .Sh バグ 使用中のファイルシステムから作成されたダンプから インクリメンタルリストアを行うと、誤動作を起こすことがあります。 .Pp フルリストアの終了後にはレベル 0 ダンプを行う必要があります。 .Nm restore はユーザコードで動作するので、inode の割り当てを制御することができません。 したがって、ファイルの内容が変更されていない場合でも、新しい inode 割り当てを 新しいディレクトリ集合に反映させるためには、 フルダンプを行わなければなりません。 .Pp ネットワークを介したリストアを行う場合、 root 権限で restore を実行する必要があります。 これは、以前の dump と restore のセキュリティ上の歴史によるものです。 (restore は root に setuid されて使われるように書かれていますが、 restore のコードから全てのバグが取れているとは思わないので、 setuid にて使用する場合は自己の責任において行って下さい。) .Sh 歴史 .Nm restore コマンドは .Bx 4.2 から登場しました。 diff --git a/ja/man/man8/route.8 b/ja/man/man8/route.8 index 6fb5849f9b..63decfa368 100644 --- a/ja/man/man8/route.8 +++ b/ja/man/man8/route.8 @@ -1,333 +1,334 @@ .\" 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. .\" .\" @(#)route.8 8.3 (Berkeley) 3/19/94 -.\" %Id: route.8,v 1.7.2.3 1998/07/21 06:50:20 charnier Exp % +.\" %Id: route.8,v 1.7.2.4 1998/08/12 06:48:51 charnier Exp % +.\" .\" jpman %Id: route.8,v 1.3 1997/07/28 05:33:13 konuma Stab % .\" .Dd March 19, 1994 .Dt ROUTE 8 .Os BSD 4.4 .Sh 名称 .Nm route .Nd マニュアルでルーティングテーブルを操作する .Sh 書式 .Nm route -.Op Fl nqv +.Op Fl dnqtv .Ar command .Oo .Op Ar modifiers .Ar args .Oc .Sh 解説 .Nm はネットワークルーティングテーブルを マニュアルで操作するユーティリティです。 通常は、 .Xr routed 8 のようなシステムルーティングテーブル管理デーモンが 保守をしているので、マニュアルでの操作は必要ありません。 .Pp .Nm ユーティリティは指定できるオプションは少数ですが、 強力なコマンド言語をサポートしています。ユーザは .Xr route 4 において解説されているプログラム可能なインタフェイスを通して、 任意の要求を指定することができます。 .Pp .Bl -tag -width Ds .It Fl n レポートの出力において、ホスト名とネットワーク名のシンボル名での表示を 抑止します。 (シンボル名と数字によるアドレスの変換処理には時間がかかり、 またネットワークが正常に動作している必要があります。 そのため、特にネットワークの動作の修正中には、 変換処理を行なわない方が好都合かもしれません。) .It Fl v (冗長モード) 詳細な情報を出力します。 .It Fl q 全ての出力を行ないません。 .El .Pp .Nm ユーティリティでは以下の 6 つのコマンドを提供しています。 .Pp .Bl -tag -width Fl -compact .It Cm add ルートを追加します。 .It Cm flush 全てのルートを削除します。 .It Cm delete 指定されたルートを削除します。 .It Cm change ルートの属性 (ゲートウェイなど) を変更します。 .It Cm get ある宛先に対するルートを検索し、表示します。 .It Cm monitor ルーティング情報ベースの変更、ルーティング検索の失敗、 ネットワーク分割の疑いなどの情報を継続的に報告します。 .El .Pp monitor コマンドは以下の書式です。 .Pp .Bd -filled -offset indent -compact .Nm route Op Fl n .Cm monitor .Ed .Pp flush コマンドは以下の書式です。 .Pp .Bd -filled -offset indent -compact .Nm route Op Fl n .Cm flush .Op Ar family .Ed .Pp .Cm flush コマンドが指定されると、 .Nm は全てのゲートウェイのエントリにおけるルーティングテーブルを削除します。 アドレスファミリが .Fl osi , .Fl xns , .Fl atalk , .Fl inet のいずれかの修飾子によって指定されている場合、 そのアドレスファミリの宛先を持つルートだけが削除されます。 .Pp その他のコマンドは以下の書式です。 .Pp .Bd -filled -offset indent -compact .Nm route Op Fl n .Ar command .Op Fl net No \&| Fl host .Ar destination gateway .Ed .Pp ここで .Ar destination は宛先のホストもしくはネットワークです。 .Ar gateway はパケットがルートされるべき次の中継点です。 ある特定のホストへのルートは、 .Ar destination で指定されたインターネットアドレスを解釈することによって、 ネットワークへのルートと区別されます。 オプションの修飾子 .Fl net , .Fl host が指定されると、 .Ar destination をそれぞれネットワークもしくはホストとして強制的に解釈します。 これらの修飾子がないなら、 .Ar destination に INADDR_ANY の ``ローカルアドレス部'' が含まれるか .Ar destination がネットワークのシンボル名である場合はネットワークへのルート、 その他の場合はホストへのルートと想定します。 .Pp 例えば、 .Li 128.32 は .Fl host Li 128.0.0.32 として解釈されます。 .Li 128.32.130 は .Fl host Li 128.32.0.130 として、 .Fl net Li 128.32 は .Li 128.32.0.0 として、 .Fl net Li 128.32.130 は .Li 128.32.130.0 として解釈されます。 .Pp 宛先がゲートウェイとして動作する中継点なしで、 あるインタフェイスから直接到達可能な場合、 .Fl interface 修飾子を指定しなければなりません。 この場合、指定されたゲートウェイは共通なネットワーク上の ローカルホストのアドレスとなり、 そのインタフェイスが転送に使用されることを示します。 また、インタフェイスが point to point 接続の場合、 インタフェイスをその名前で指定できます。 この場合、ローカルやリモートのアドレスが変更されても そのルートは有効のまま残ります。 .Pp オプションの修飾子 .Fl xns , .Fl osi , .Fl atalk , .Fl link はそれに続いて指定されるアドレスが、それぞれ .Tn XNS , .Tn OSI , .Tn AppleTalk アドレスファミリである、もしくはリンクレベルのアドレスであることを指定します。 これらの場合、名前はシンボル名ではなく、 数字によって指定をおこなわなければなりません。 .Pp オプションの修飾子 .Fl netmask はネットマスクオプションつきの .Tn OSI .Tn ESIS プロトコルによるリダイレクトの効果を実現するためのものです。 つまり、ネットワークインタフェイスの暗黙のネットマスクとは異なる ネットマスクをもつサブネットを手動で追加します。 (この方法によらない場合は、OSPF や ISIS ルーティングプロトコルによって 通信します。) この修飾子に続いて、アドレスパラメータ (これはネットワークマスクとして解釈されます) を指定します。 AF_INET の場合に生成される暗黙のネットワークマスクは、 このオプションを .Ar destination パラメータに続いて指定することによって、上書きすることができます。 .Pp ルートにはいくつかのフラグがあり、 そのルートを使う宛先にデータを送信する時のプロトコルの動作に 影響をおよぼします。 これらのフラグは以下の修飾子によってセット (もしくはクリア) できます。 .Bd -literal -cloning RTF_CLONING - 使用中のルートを新たにひとつ生成する。 -xresolve RTF_XRESOLVE - (外部からの検索に対して) 使用中である旨のメッ セージを発行する。 -iface ~RTF_GATEWAY - 宛先が直接到達可能。 -static RTF_STATIC - 手動でルートを追加する。 -nostatic ~RTF_STATIC - カーネルかデーモンによってルートが追加された ように振舞う。 -reject RTF_REJECT - マッチした場合に ICMP unreachable を出力する。 -blackhole RTF_BLACKHOLE - (更新中に) 何も報告せずにパケットを捨てる。 -proto1 RTF_PROTO1 - プロトコルに特有のフラグ #1 をセットする。 -proto2 RTF_PROTO2 - プロトコルに特有のフラグ #2 をセットする。 -llinfo RTF_LLINFO - プロトコルアドレスからリンクアドレスへの変換の 正当性をチェックする。 .Ed .Pp オプションの修飾子 .Fl rtt , .Fl rttvar , .Fl sendpipe , .Fl recvpipe , .Fl mtu , .Fl hopcount , .Fl expire , .Fl ssthresh によって TCP や TP4 のトランスポートレベルのプロトコルによる ルーティングのエントリ中でメインテナンスされる値の初期値を指定します。 これらは各々の修飾子の前に .Fl lock メタ修飾子を指定することによって、個別にその値をロックすることができます。 また .Fl lockrest メタ修飾子をつけることによって、 その後に続く全ての値をロックすることもできます。 .Pp .Cm change もしくは .Cm add コマンドにおいて、 .Ar destination もしくは .Ar gateway がルートを特定するのに不十分であった場合 (たとえば .Tn ISO のケースにおいて、複数のインタフェイスが同じアドレスを持っているような場合)、 .Fl ifp や .Fl ifa 修飾子を使うことによって、 インタフェイスやインタフェイスアドレスを特定することができます。 .Pp .Ar destination や .Ar gateway で指定された全てのシンボル名は、まずホスト名として .Xr gethostbyname 3 を使用して検索されます。検索に失敗した場合は、その名前をネットワーク名と見なし .Xr getnetbyname 3 によって検索されます。 .Pp .Nm はルーティングソケットと新しいメッセージタイプである RTM_ADD, RTM_DELETE, RTM_GET, RTM_CHANGE を使います。 ルーティングテーブルの変更はスーパユーザのみがおこなうことができます。 .Sh 診断 .Bl -tag -width Ds .It Sy "add [host \&| network ] %s: gateway %s flags %x" 指定されたルートがテーブルに追加されました。 出力された値は .Xr ioctl 2 の呼出しの中で使われたルーティングテーブルのエントリからのものです。 指定されたゲートウェイアドレスがそのゲートウェイのプライマリアドレス ( .Xr gethostbyname 3 によって返される最初のもの) でなかった場合、 ゲートウェイアドレスがシンボル名に加えて、数字でも表示されます。 .It Sy "delete [ host &| network ] %s: gateway %s flags %x" 指定されたルートがテーブルから削除されました。 .It Sy "%s %s done" .Cm flush コマンドが指定された場合、削除された各ルーティングテーブルエントリが この形式のメッセージで報告されます。 .It Sy "Network is unreachable" 指定されたゲートウェイが直接到達可能なネットワーク上にないために、 ルートの追加に失敗しました。 hop 数が 1 であるゲートウェイを指定しなければなりません。 .It Sy "not in table" テーブルにないエントリを削除しようとしました。 .It Sy "routing table overflow" ルートの追加を試みましたが、システムの資源が少なく、 新しいエントリを作成するためのメモリを割り当てられませんでした。 .El .Sh 関連項目 .Xr netintro 4 , .Xr route 4 , .Xr IPXrouted 8 , .Xr routed 8 .\" .Xr XNSrouted 8 .\" Xr esis 4 , .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 .Sh バグ 最初の段落は多少 -.Xr routed +.Xr routed 8 の能力を大げさに書いています。 diff --git a/ja/man/man8/routed.8 b/ja/man/man8/routed.8 index 8b0e56b289..d0446f3d93 100644 --- a/ja/man/man8/routed.8 +++ b/ja/man/man8/routed.8 @@ -1,615 +1,616 @@ .\" 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. .\" .\" @(#)routed.8 8.2 (Berkeley) 12/11/93 -.\" %Id: routed.8,v 1.2.2.4 1998/07/17 20:13:50 jkh Exp % +.\" %Id: routed.8,v 1.2.2.5 1998/08/12 06:54:16 charnier Exp % +.\" .\" jpman %Id: routed.8,v 1.2 1997/03/31 14:11:11 horikawa Stab % .\" .Dd June 1, 1996 .Dt ROUTED 8 .Os BSD 4.4 .Sh 名称 .Nm routed .Nd ネットワークの RIP と router discovery のルーティングデーモン .Sh 書式 .Nm .Op Fl sqdghmpAt .Op Fl T Ar tracefile .Oo .Fl F .Ar net Ns Op /mask Ns Op ,metric .Oc .OP Fl P Ar parms .Sh 解説 .Nm routed はネットワークのルーティングテーブルを管理するデーモンで、 システムのブート時に起動されます。 これは、カーネルのルーティングテーブルを管理するために、 ルーティング情報プロトコル (Routing Information Protocol) の RIPv1 (RFC\ 1058)、RIPv2 (RFC\ 1723)、および Internet Router Discovery Protocol (RFC 1256) を用います。 RIPv1 プロトコルは 4.3BSD のデーモンのものをベースとしています。 .Pp .Nm routed は、ルーティング情報プロトコルのパケットを待つために、 .Xr route 8 サービス .Ns ( Xr services 5 参照) 用の .Xr udp 4 ソケットを listen() します。また、マルチキャストによる Router Discovery の ICMP メッセージの送受信も行います。 ホストがルータだった場合、 .Nm routed は直接接続されている全てのホストやネットワークに、 ルーティングテーブルの複製を定期的に提供します。 また、Router Discovery の ICMP メッセージを用いてデフォルトルートを広告したり 要求したりします。 .Pp .Nm routed が走行し始めると (または、ネットワークインタフェースがオンになると)、 .Nm routed は AF_ROUTE アドレスファミリを用いて、システムに直結されていて コンフィギュレーションされているインタフェースのうちで "up" とマークされて いるものを探します。そしてそのインタフェースに必要な経路をカーネルの ルーティングテーブルに追加します。スタート直後で、RIP が無効になっていない インタフェースが少なくとも 1 つある場合は、 .Nm routed はカーネルのテーブル内に既に存在する静的でない経路を全て削除します。 カーネルのテーブル内にある静的な経路は保存され、有効な RIP metric を 持っているものは RIP レスポンスに含められます .Ns ( Xr route 8 参照)。 .Pp 複数のインタフェース (ループバックインタフェースは含めません) が提供されている 場合、そのホストは接続されているネットワーク間でパケットを中継するものと みなされます。新しいインタフェース上で RIP リクエストを送信した後や ルータ発見のための広告や要求を送信した後で、デーモンはループに入り、 他のホストからの RIP リクエストやレスポンスや Router Discovery のパケットを listen します。 .Pp リクエストパケットを受信すると、 .Nm routed は内部テーブルに持っている情報からリプライを作成します。 生成された .Em レスポンス パケットには既知の経路のリストが含められ、各経路に "hop count" metric がつきます (16 以上は "無限大" とみなされます)。 広告した metric はインタフェースに設定した metric を反映するため .Ns ( Xr ifconfig 8 参照)、トラフィックを制御するにはインタフェースの metric を設定するのが よい方法です。 .Pp .Em split-horizon をインプリメントしているため、リクエストしてきたネットワークの 1 hop 先の 経路はレスポンスには含められません。 .Xr rtquery 8 のような問い合わせプログラムからのリクエストに対しては、テーブル全体 から答を導き出します。 .Pp ルータの故障から素早く復旧できるようにするため、 デーモンが扱うルーティングテーブルには各到達先用のゲートウェイをいくつか 覚えておくための空間があります。受けとった RIP .Em レスポンス パケットが更新のために使用されるのは、 現在認識しているゲートウェイのうちの 1 つから提供された場合、 もしくは現在あるゲートウェイのうちの少なくとも 1 つよりも よい metric を広告された場合です。 .Pp 更新を行う時、 .Nm は自分自身が持つテーブルの変更を記録し、到達先への最適な経路が変更された 場合にはカーネルのルーティングテーブルを記録します。カーネルの ルーティングテーブルに対するこの変更は、次に送出される .Em レスポンス パケットに反映されます。次のレスポンスがしばらくの間スケジューリングされない 場合には、最近変更された経路だけを含んだ .Em flash update レスポンスが送られます。 .Pp 到着パケットの処理に加えて、 .Nm は定期的にルーティングテーブルのエントリをチェックします。 あるエントリが 3 分間更新されなかった場合、 そのエントリの metric は無限大として設定され、 削除のためのマークがつけられます。 この無効化がローカルなインターネットを通して伝搬するのを保証するために、 削除はその経路が無限大の metric を持つと広告されるまで延期されます。これが .Em poison reverse 方式です。 .Pp カーネルのテーブル内の経路のうちで ICMP Redirect メッセージの結果として 追加や変更されたものは、 .Em black-holes を最小にするために、しばらく経ってから削除されます。 TCP コネクションのタイムアウトが起こると、カーネルは .Nm routed に対し、そのゲートウェイを通る全てのリダイレクトされた経路を削除し、 そのゲートウェイを通る全ての RIP の経路の年齢を増やすことで他のゲートウェイが 選択されるようにし、関連する全ての Router Discovery Protocol の デフォルトルートの年齢を増やします。 .Pp ネットワーク間ルータとして動作するホスト群は、直接接続されているホストおよび ネットワークすべてに対し、30 秒ごとにルーティングテーブルを無条件で提供します。 この RIP レスポンスは、ブロードキャストをサポートしているネット上の ブロードキャストアドレス、point-to-point リンクの到達先アドレス、 ルータ自身の他のネットワークでのアドレスに対して送信されます。 RIPv2 が有効になっている場合は、マルチキャストをサポートしているインタフェース に対してマルチキャストパケットが送られます。 .Pp リモートインタフェース上でレスポンスが受信されない場合や、 レスポンスを送っている最中にエラーが起こった場合や、 エラーが入力や出力よりも多い場合 .Ns ( Xr netstat 8 参照) は、ケーブルやインタフェースの他の部分が接続されていないか壊れている とみなされ、その経路は適切に変更されます。 .Pp .Em Internet Router Discovery Protocol も同様に扱われます。デーモンが RIP の経路を配っている時は、Router Discovery の要求の listen と Router Discovery の広告の送信も行います。 デーモンが静かな状態で他の RIP ルータからのパケットを listen している時には、 Router Discovery の要求を送信して、Router Discovery の広告を listen します。 受けた広告がよいものであれば、 RIP レスポンスのブロードキャストやマルチキャストを listen するのをやめます。 現在利用中のルータが死んだ場合に障害のある状態から短時間で修復できるよう、 広告されているルータのいくつかを追跡します。 もし発見してあるルータが全て見えなくなった場合は、RIP レスポンスの listen を 再開します。 .Pp Router Discover の仕様では、広告の "生存期間" をデフォルトで 30 分とすることを 要求しています。これは、何かが起こった場合に クライアントに 30 分間よい経路がなくなる可能性があることを意味しています。 コマンドラインで .Fl P Cm rdisc_interval=45 と指定したり .Pa /etc/gateways に .Cm rdisc_interval=45 と書くことでデフォルトを 45 秒にするのはいい考えです。 .Pp Router Discovery を利用している場合 (システムが持っている ネットワークインタフェースが 1 つだけでかつ Router Discovery の広告を 受けた場合にはこれがデフォルトです)、カーネルのテーブル内には デフォルトルートは 1 つだけで、ホストへの経路は可変個数となります。 複数のネットワークインタフェースを持つホストでは、 このデフォルトルートはそのインタフェースのうちの 1 つだけを経由します。 このため、複数のホームを持つホストで .Fl q つきで動作しているものは、 以下に示す .Cm no_rdisc が必要です。 .Pp RIPv2 と Router Discovery のどちらも扱うことができない "遺物の" システムを サポートするためには、以下に記述してある .Cm pm_rdisc を参照して下さい。 .Pp デフォルトでは、point to point リンク (たとえば PPP) には Router Discovery の広告も要求も送信されません。 point-to-point リンク (SLIP や PPP などのような、IFF_POINTOPOINT フラグ のついたもの) のネットマスクは、 RIPv1 利用時にはそのネットマスクがリモートシステムで利用されると .Nm routed は推測します。 .Pp .Nm routed がサポートしているオプションは以下の通りです: .Bl -tag -width Ds .It Fl s このオプションを指定すると、 .Nm は強制的にルーティング情報を提供します。 これは、RIP や Router Discovery を無効にしていない状態で複数の ネットワークインタフェースが提供されており、カーネルが ipforwarding=1 に なっている場合にはデフォルトです。 .It Fl q .Fl s オプションとは逆の動作をします。 インタフェースが 1 つだけの場合は、これがデフォルトです。 .It Fl d バックグラウンドでは動作しません。このオプションは対話的に使用するための ものです。 .It Fl g このフラグは、ネットワーク間ルータにおいて "default" の到達先への経路を設ける ために使われます。これは .Fl F .Cm 0/0,1 と同じ意味を持ち、主として歴史的理由のために提供されています。 これよりは、 .Fl P Cm pm_rdisc をコマンドラインで指定するか、 .Cm pm_rdisc を .Pa /etc/gateways で指定するほうがよいでしょう。 大きな metric を使用すれば、 デフォルトルートの潜在的な危険が広がる可能性を減らせます。 これは、典型的にはインターネットへのゲートウェイで用いられるか、 経路を他のローカルルータに対して報告しないような他の ルーティングプロトコルを利用しているゲートウェイの場合に用いられます。 metric には 1 が使われるため、この機能は危険です。このオプションは一般に、 問題を解決するよりも、ルーティングのループによる混乱を引き起こしがちです。 .It Fl h ホストルートまたは point-to-point ルートを広告しません。 これらは同一方向へいくネットワークルートであると規定されます。これは 特別な性質を持つ集合です。このオプションは、イーサネットへのゲートウェイ でかつ SLIP のような point-to-point リンクで他のゲートウェイマシンが継っている ゲートウェイにおいて有効です。 .It Fl m マシンが、そのプライマリインタフェースへのホストルートや point-to-point ルート を広告するようになります。 これは NFS サーバなどのような複数のホームを持つマシンにおいて有効です。 このオプションは、作成したホストルートのコストがサーバの人気で正当化される 場合を除いて、使うべきではありません。 これは、マシンがルーティング情報を供給していて、複数のインタフェースを 持っている場合にのみ効果があります。 .Fl m オプションは、 .Fl q オプションの効果を上書きして、 ホストルートの広告を限定した範囲に制限します。 .It Fl A もし RIPv2 の認証に注意を払わない場合は、RIPv2 の認証を無視しません。 RFC 1723 に準拠するためにはこのオプションが必要です。 しかしながら、これは意味がなく、マシンが認証について注意を払わない時に 認証を運ぶ全ての RIPv2 パケットを無視するために検出プロトコルとして RIP を使う場合の妨げとなります。 .It Fl T Ar tracefile デバッグレベルを最低でも 1 まで上げ、デバッグ情報をトレースファイルに 書き加えるようにします。セキュリティ上の都合により、 .Nm routed がファイルへのトレースを日常的に行うようにはしないのが賢明です。 .It Fl t デバッグレベルを増やします。 .Fl T で指定したトレースファイルや標準出力に対し、より詳細な情報を記録するように なります。デバッグレベルは .Em SIGUSR1 シグナルや .Em SIGUSR2 シグナルや .Xr rtquery で増減できます。 .It Fl F Ar net[/mask][,metric] .Em net/mask にマッチするアドレスを持つインタフェースを介した転送における経路を最小にし、 このマシンへのデフォルトルートを metric 数 .Em metric で作成します。この目的は、RIP 情報をもつ多数の大きな UDP パケットを "にせ" の デフォルトルートを含んだ 1 つの小さなパケットに置き換えることで、 遅い、たとえば PPP のような point-to-point リンクでの RIP のトラフィックを 減らすことにあります。 もし .Em metric がない場合は、"にせ" のデフォルトルートが広まるのを制限するために 14 が 指定されたものとみなします。 この機能は、不注意に使うとルーティングのループを引き起こすので危険です。 指定したネットワーク番号とマスクに複数のインタフェースがマッチする可能性がある ことに注意して下さい。 .Fl g も参照してください。 .It Fl P Ar parms パラメータ行 .Em parms を .Pa /etc/gateways ファイルに書くのと同じです。 .El .Pp 提供された他の引数は、 .Nm routed の動作を記録するファイルの名前として解釈されます。 トレースファイルの名前をコマンドに追加するよりは、 .Fl T を使った方がよいでしょう。 .Pp 上記の機能に加えて、 .Nm routed は "遠隔にある" .Em パッシブ もしくは .Em アクティブ なゲートウェイという概念をサポートします。 .Nm は動作を開始すると、実在しないかもしれない遠隔のゲートウェイを検索するために .Pa /etc/gateways を読み込みます。ローカルなゲートウェイがパッシブであるかどうかや、 他のパラメータの取得には、ルーティングソケットからの情報だけをもとにします。 このようにして指定されたゲートウェイは、ルーティング情報を交換しない場合は パッシブマークが付加されます。一方、 RIP パケットを交換するゲートウェイに ついては、アクティブマークが付与されます。 .Em パッシブ ゲートウェイを介す経路については、システムスタートアップ時に一度だけ カーネル内の経路情報テーブルに設定され、送出される RIP レスポンスには 含められません。 .Pp 遠隔のアクティブゲートウェイは、ネットワークインタフェースと同様に扱われます。 RIP レスポンスが遠隔の .Em アクティブ ゲートウェイに送られます。 応答がない場合は、 その経路はカーネルのテーブルと別のインタフェースから広告された RIP レスポンスの ぞれぞれから削除されます。遠隔のゲートウェイが RIP レスポンスの送出を 再開した場合は、その経路は再追加されます。 .Pp このようなゲートウェイは、ATM ネットワークなどのような、 ブロードキャストやマルチキャストはサポートしないがそれ以外は Ethernet のような 伝統的な共有メディア方式のように働くネットワークに有効です。 ATM ネットワーク上にある到達可能な全ての RIP ルータを .Pa /etc/gateways の "host" 行を使って記述することができます。 .Pp .Em external マークのついたゲートウェイはパッシブと同様の扱いになりますが、 カーネル内のルーティングテーブルに載ることはなく、 ルーティングの更新時にその情報が含められることもありません。 external エントリの機能は、他のルーティングプロセスがそのような経路を 必要時に追加する可能性があることを知らせるためにあり、その到達先への別の経路は .Nm routed で設定されるべきではありません。 external エントリは、両方のルータが同じ到達先への経路を覚えてもよい場合にのみ 必要です。 .Pp .Pa /etc/gateways ファイルは、以下のフォーマットおよびパラメータからなる行の集まりです: .Pp .Bd -ragged .Cm net .Ar Nname[/mask] .Cm gateway .Ar Gname .Cm metric .Ar value .Pf < Cm passive No \&| .Cm active No \&| .Cm extern Ns > .Ed .Bd -ragged .Cm host .Ar Hname .Cm gateway .Ar Gname .Cm metric .Ar value .Pf < Cm passive No \&| .Cm active No \&| .Cm extern Ns > .Ed .Pp キーワード .Ar Nname や .Ar Hname は、到達先のネットワークやホストの名前です。 .Pp .Ar name1 は、到達先のネットワークもしくはホストの名前です。 これはネットワークのシンボル名または "ドット" 表記による インターネットアドレスのどちらでも構いません .Ns ( Xr inet 3 参照)。(もし名前の場合は、 .Pa /etc/networks または .Pa /etc/hosts で定義されているか、 .Nm routed の動作開始前に .Xr named 8 が起動されていなければなりません。) .Pp .Ar mask は省略可能な数値で .Ar Nname のネットマスクを表し、1 から 32 までの値をとります。 .Pp .Ar Gname は、RIP レスポンスがフォワードされるべきゲートウェイの名前もしくは アドレスです。 .Pp .Ar value は、到達先ホストもしくはネットワークへの hop 数です。 .Ar " host hname " は .Ar " net nname/32 " と同一です。 .Pp .Cm passive , .Cm active , .Cm external のキーワードのうちの 1 つを指定することで、ゲートウェイが .Cm passive または .Cm active (前述の通り) であるか RIP プロトコルのスコープの範囲外つまり .Cm external であるかを指示しなければなりません。 .Pp "net" と "host" のどちらでも始まらない行は、以下のようなパラメータ設定 でなければなりません。これは 1 つでも複数でもよく、複数の場合はコンマや 空白で区切ります: .Bl -tag -width Ds .It Cm if Ns \&= Ns Ar ifname その行にある他のパラメータが、名前が .Ar ifname のインタフェースに適用されることを示します。 .It Cm subnet Ns \&= Ns Ar nname[/mask][,metric] ネットワーク .Ar nname への経路をマスク .Ar mask と指定された metric (デフォルトは 1) で広告します。 これは CIDR の確保において "穴" を埋めるのに有効です。 このパラメータはその行にそれだけで出現しなければなりません。 .Pp この機能は不必要に使ってはいけません。危険です。 .It Cm passwd Ns \&= Ns Ar XXX RIPv2 の password を指定します。これは送信した全ての RIPv2 レスポンスに 含められ、受信した全ての RIPv2 レスポンスでチェックされます。 パスワードは、空白やタブ文字やコンマや '#' を含んではいけません。 .It Cm passwd Ns \&= Ns Ar XXX1[|KeyID[start|stop]] RIPv2 の生のパスワードを指定します。 これは、送信される全ての RIPv2 レスポンスに含められ、 受信した全ての RIPv2 レスポンスでチェックされます。 パスワード内の空白、タブ文字、コンマ、'#'、'|'、NULL 文字は、 バックスラッシュ (\\) でエスケープしなければなりません。 よく使われる \\n, \\r, \\t, \\b, \\xxx などのエスケープシーケンスは、 それぞれ通常の意味を持っています。 .Cm KeyID は一意でなければなりませんが、生のパスワードの場合は無視されます。 .Cm start と .Cm stop がある場合、これはタイムスタンプで、 year/month/day@hour:minute の形式をとります。 これらはパスワードが正しい時に設定されます。 出力パケットで使われるパスワードには、期限が最も遠い将来まで設定されている パスワードが使われます。全てのパスワードが期限切れになった場合には、 最も最近期限切れになったパスワードが使われます。 また、有効なパスワードがまだ設定されていない場合には、 パスワードは出力されません。 到着パケットは有効なパスワードを運んでくる可能性があります。 ここで有効とは、未来の 24 時間内で有効になるものか、 過去 24 時間内で有効であったものを指します。 .It Cm md5_passwd Ns \&= Ns Ar XXX1|KeyID[start|stop] RIPv2 の MD5 パスワードを指定します。 .Cm KeyID が必須であること以外は、このキーワードは .Cm passwd と同じです。 秘密を守るため、パスワードの設定は .Em /etc/gateways 内のものだけが有効であり、かつ、このファイルが UID 0 でのみ読み込み可能 でなければなりません。 .It Cm no_ag RIPv1 と RIPv2 のレスポンス内のサブネットの合成を行いません。 .It Cm no_super_ag RIPv2 のレスポンス内のネットワークのスーパネットへの合成を行いません。 .It Cm passive そのインタフェースが更新時に他のインタフェースを通して広告されないように マークし、指定したインタフェースでは RIP および router discovery 処理を 全く行わないようにします。 .It Cm no_rip 指定したインタフェースでの全 RIP 処理を行いません。 RIP パケットを処理するインタフェースがない場合は、 .Nm は単に Router Discovery デーモンとして働きます。 .Pp .Cm rdisc_adv または .Fl s で明示的に Router Discovery の広告を行うように指示せずに RIP を 行わないようにすると、 .Nm routed は広告を行わない Router Discovery デーモンとして働くことに注意して下さい。 .It Cm no_ripv1_in 受信した RIPv1 レスポンスが無視されるようになります。 .It Cm no_ripv2_in 受信した RIPv2 レスポンスが無視されるようになります。 .It Cm ripv2_out 可能な場合にマルチキャストができるよう、 RIPv1 の出力は行わず、RIPv2 による広告を行います。 .It Cm ripv2 .Cm no_ripv1_in と .Cm no_ripv1_out を指定した場合と同じです。 .It Cm no_rdisc Internet Router Discovery Protocol を無効にします。 .It Cm no_solicit Router Discovery の要求を送信しません。 .It Cm send_solicit たとえ point-to-point リンクであっても Router Discovery の要求を送信します。 デフォルトでは Router Discovery のメッセージを聞くだけです。 .It Cm no_rdisc_adv Router Discovery の広告の送信を行いません。 .It Cm rdisc_adv たとえ point-to-point リンクであっても Router Discovery の広告を送信します。 デフォルトでは Router Discovery のメッセージを聞くだけです。 .It Cm bcast_rdisc Router Discovery のパケットをマルチキャストする代りにブロードキャストします。 .It Cm rdisc_pref Ns \&= Ns Ar N Router Discovery の広告の優先度を整数 .Ar N にします。 .It Cm rdisc_interval Ns \&= Ns Ar N Router Discovery の広告を行う上での名目の送信間隔を N にし、その生存期間を 3*N にします。 .It Cm fake_default Ns \&= Ns Ar metric 指定したインタフェースのネットワークとネットマスクを使って .Fl F Ar net[/mask][=metric] を指定した場合と同じです。 .It Cm pm_rdisc .Cm fake_default に似ています。RIPv2 の経路がマルチキャストの場合、RIPv1 を聞いている マシンはそれを受信することができないので、この機能を使えば RIPv1 のデフォルト ルートが RIPv1 を聞いているマシンにブロードキャストされるようになります。 .Cm fake_default で変更しない限り、 デフォルトルートは metric 14 でブロードキャストされます。 これは "能力の低い router discovery" プロトコルを提供することになります。 .It Cm trust_gateway Ns \&= Ns Ar rname 指定したルータや他の .Cm trust_gateway キーワードで指定したルータからの RIP パケットを受け付け、 これら以外からのパケットは無視するようになります。 .It Cm redirect_ok システムがルータとして動作してパケットのフォワードを行っている場合に、 RIP が ICMP Redirect メッセージを許可するようになります。 そうでなければ、ICMP Redirect メッセージは上書きされます。 .El .Pp .Sh 関連ファイル .Bl -tag -width /etc/gateways -compact .It Pa /etc/gateways 遠隔ゲートウェイについての情報を記述するファイル。 .El .Sh 関連項目 .Xr icmp 4 , .Xr udp 4 , .Xr gated 8 , .Xr rtquery 8 .Rs .%T Internet Transport Protocols .%R XSIS 028112 .%Q Xerox System Integration Standard .Re .Sh バグ ネットワークインタフェースの一方向の失敗 (例えば、出力方向にのみ失敗するなど) を常に検出できるとは限りません。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja/man/man8/rtquery.8 b/ja/man/man8/rtquery.8 index 2d2fa78dcd..7199b8cd3c 100644 --- a/ja/man/man8/rtquery.8 +++ b/ja/man/man8/rtquery.8 @@ -1,133 +1,134 @@ -.\" %Id: rtquery.8,v 1.1.1.1.2.4 1997/08/19 21:22:17 joerg Exp % +.\" %Id: rtquery.8,v 1.1.1.1.2.5 1998/08/12 06:54:23 charnier Exp % .\" jpman %Id: rtquery.8,v 1.2 1997/06/12 07:55:04 yugawa Stab % .Dd June 1, 1996 .Dt RTQUERY 8 .Os BSD 4.4 .Sh 名称 .Nm rtquery .Nd ルーティングデーモンが持つルーティングテーブルの問い合わせ .Sh 書式 .Nm .Op Fl np1 .Op Fl w Ar timeout .Op Fl r Ar addr .Op Fl a Ar secret .Ar host ... .Nm .Op Fl t Ar op .Ar host ... .Sh 解説 -.Nm rtquery +.Nm は、RIP ネットワークルーティングデーモン、すなわち、 .Xr routed 8 あるいは .Xr gated 8 へ .Em request ないし .Em poll コマンドを送る事によりそのルーティングテーブルの問い合わせを行います。 返答のあった全てのルーティング .Em 応答 パケットについてのルーティング情報が数値およびシンボル名を用いて表示されます。 .Pp デフォルトでは、 -.Em rtquery +.Nm は .Em request コマンドを使用します。 -.Ar -p +.Fl p オプションが指定された場合、 -.Nm rtquery +.Nm は .Em poll コマンドを使用します。 これは、 .Xr gated 8 でサポートされている、RIP プロトコルへの文書化されていない拡張コマンドです。 -gated への問い合わせを行う場合は、 +.Xr gated 8 +への問い合わせを行う場合は、 .Em request コマンドより .Em poll コマンドを使用する事をお薦めします。なぜなら、応答が Split Horizon や Poisoned Reverse の影響を受けることがなく、また、ある種のバージョンの .Xr gated 8 は、 .Em request に対して返答を行わないからです。 .Nm routed は .Em poll コマンドに対しては返答しませんが、 .Nm からの .Em request コマンドを認識し、完全な返答をします。 .Pp -.Nm rtquery +.Nm は、 .Nm routed のトレース機能を有効にしたり無効にしたりする場合にも用いられます。 .Pp -.Nm rtquery +.Nm には以下のオプションがあります。 .Bl -tag -width Ds .It Fl n 通常、ネットワークおよびホスト番号はシンボル名および数値の両方で表示されます。 .Fl n オプションはネットワークおよびホスト番号を数値のみで表示します。 .It Fl p .Xr gated 8 から得られる完全なルーティング情報を得るために .Em Poll コマンドを使用します。 これは、 .Xr gated 8 のみでサポートされている、RIP プロトコルへの文書化されていない拡張コマンドです。 .It Fl 1 RIP バージョン 2 ではなく、RIP バージョン 1 を使用して問い合わせを行います。 .It Fl w Ar timeout 各ホストから返答を待つ猶予時間を変更します。 デフォルトでは、返答があるまで 15 秒間待ちます。 .It Fl r Ar addr 到達先 .Em addr への経路を問い合わせます。 .It Fl a Ar passwd=XXX .It Fl a Ar md5_passwd=XXX|KeyID 問い合わせの際に、指定されたクリアテキストないし MD5 のパスワードを 使用します。 .It Fl t Ar op トレース方法を変更します。 .Em op には、以下のうちのひとつを指定します。 通常、UID 0 以外のプロセスからの問い合わせや、遠隔ネットワークからの 問い合わせは、システムのログにメッセージを記録するだけで、無視されます。 .Xr gated 8 は、大抵、これらのデバッグの問い合わせを無視します。 .El .Bl -tag -width Ds -offset indent-two .It Em on=tracefile トレースを有効にし、指定されたファイルに記録します。このファイルは、 通常、デーモンが実行を開始した時に指定されるか、一般的な、 .Pa /etc/routed.trace 等の決まった名前でなければなりません。 .It Em more デバッグレベルを増加させます。 .It Em off トレースを無効にします。 .It Em dump デーモンのルーティングテーブルを現在のトレースファイルにダンプします。 .El .Sh 関連項目 .Xr gated 8 , .Xr routed 8 .Rs .%T Routing Information Protocol, RIPV1 .%O RFC1058 .Re .Rs .%T Routing Information Protocol, RIPv2 .%O RFC1723 .Re diff --git a/ja/man/man8/scsi.8 b/ja/man/man8/scsi.8 index 6b6bfff899..ba99796e6d 100644 --- a/ja/man/man8/scsi.8 +++ b/ja/man/man8/scsi.8 @@ -1,330 +1,331 @@ .\" .\" Written By Julian ELischer .\" Copyright julian Elischer 1993. .\" Permission is granted to use or redistribute this file in any way as long .\" as this notice remains. Julian Elischer does not guarantee that this file .\" is totally correct for any given task and users of this file must .\" accept responsibility for any damage that occurs from the application of this .\" file. .\" .\" (julian@tfs.com julian@dialix.oz.au) .\" User SCSI hooks added by Peter Dufault: .\" .\" Copyright (c) 1994 HD Associates .\" (contact: dufault@hda.com) .\" 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. The name of HD Associates .\" may not be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES ``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 HD ASSOCIATES 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. .\" .\" -.\" %Id: scsi.8,v 1.6.2.7 1998/06/03 04:02:20 jkoshy Exp % +.\" %Id: scsi.8,v 1.6.2.8 1998/08/12 06:32:47 charnier Exp % +.\" .\" jpman %Id: scsi.8,v 1.3 1997/07/22 16:40:11 horikawa Stab % .\" .Dd October 11, 1993 .Dt SCSI 8 .Os BSD 4 .Sh 名称 .Nm scsi .Nd scsi 装置補助プログラム .Sh 書式 .Nm scsi .Fl f Ar device .Fl d Ar debug_level .Nm scsi .Fl f Ar device .Fl z Ar seconds .Op Fl v .Nm scsi .Fl f Ar device .Fl m Ar page .Op Fl P Ar pc .Op Fl e .Nm scsi .Fl f Ar device .Fl p .Op Fl b Ar bus .Op Fl l Ar lun .Nm scsi .Fl f Ar device .Fl r .Op Fl b Ar bus .Op Fl t Ar targ .Op Fl l Ar lun .Nm scsi .Fl f Ar device .Fl c Ar cmd_fmt .Op Ar arg0 ... argn .Op Fl s Ar seconds .Op Fl v .Fl o Ar count out_fmt .Op Ar arg0 ... argn .Fl i Ar count in_fmt .Sh 解説 .Nm scsi プログラムはコマンドを scsi 装置に送るのに使われます。 また、ユーザレベル SCSI コマンドの使用例でもあります。 .Pp .Fl f オプションを指定し、 .Ar device で SCSI デバイス名を指定する必要があります。デバイスがディスクデバイスの場合、 制御デバイス .Pq 例えば Pa /dev/rsd0.ctl である必要があります。 現在有効なデバイスが接続されていないバスで再プローブを行うために、 .Sq super scsi デバイスを .Fl p オプションで指定することができます。 .Pp .Fl d オプションは SCSI カーネルデバッグレベルを設定します。 カーネルは、 .Dv SCSIDEBUG オプションをつけてコンパイルしていなければなりません。 カーネルデバッグレベルをいくつに設定するかは .Pa /sys/scsi/scsi_debug.h を参照してください。 .Pp .Fl z オプションは、 指示された秒数の間だけ、 全ての SCSI バスのあらゆるの活動を凍結します。もし .Fl v も指定されていると、バス凍結の開始時と終了時に BEL 文字が標準出力に送られます。 このためには .Dv SCSI_FREEZE カーネルオプション付きでカーネルを作成する 必要があります。 このカーネルコードはまだコミット (commit) されていません。 .Pp .Fl m オプションは装置のモードページ (mode page) を読むのに使います。 モードデータをどう解釈するかを調べるために ファイル .Pa /usr/share/misc/scsi_modes が読まれます。 環境変数 .Ev SCSI_MODES で別のファイルを使うように指定できます。 .Pp .Fl P オプションはページ制御フィールド (page control field) を指定するのに使います。 指定するページ制御フィールド名は以下です: .Bd -literal -offset .Pp .Bl -tag -width xxxx -indent offset -compact .It 0 現在値 .It 1 変更可能値 .It 2 デフォルト値 .It 3 保存値 .El .Pp .Fl e オプションを指定するとフィールドの編集が可能になります。 編集には環境変数 .Ev EDITOR で指定したエディタを使います。 恒久的に変更を格納するためには .Fl P オプションを使用してページ制御 3 を編集します。 .Pp .Fl p オプションは .Sq super scsi 装置 .Pa /dev/ssc に対して 指定した SCSI バスと指定した SCSI lun を持つ全ての装置をプローブするのに 使われます。 バスは .Fl b オプションで選択でき、デフォルトは 0 です。 lun は .Fl l オプションで選択でき、デフォルトは 0 です。 .Pp .Fl r オプションは、 ブート時に存在した全 SCSI バスから全 SCSI デバイスを再プローブするために 使用できます。 固定 SCSI 装置の説明は .Xr scsi 4 を参照して下さい。 .Pp .Fl c オプションで、コマンドラインで指定したユーザレベル SCSI コマンドを装置へ 送ることができます。 コマンドは .Dv SCIOCCOMMAND ioctl を使って送られるので、 アクセスする装置はこの ioctl を許していなければなりません。 どのマイナ装置が ioctl を許しているかという詳細な説明は .Xr scsi 4 を、 フォーマット引数を使って コマンドやデータフェーズを構築する詳細な方法は .Xr scsi 3 を参照して下さい。 .Pp .Fl v は、より冗長な情報に切り換えます。 .Pp .Fl s は秒単位でコマンドのタイムアウトを設定します。 デフォルトは 2 秒です。 .Pp .Fl c Ar cmd_fmt には .Xr scsi 3 に記述されたコマンドを指定します。 追加の引数で コマンドフォーマットの中で指定された変数の値を与えます。 他の通常のコマンドライン引数は .Dq C での数値表記が使えますが、 .Fl c オプションへの引数は 16 進数です。 .Pp .Fl o .Ar count .Ar out_fmt .Op Ar arg0 ... argn は、これが .Ar count バイトのデータの、 データアウトコマンド (つまり、データがシステムから装置に 送られる) であることを示します。 データは、 与えられた引数で整数変数をみたして、 .Xr scsi 3 で記述された方法で組み立てられます。 .Ar out_fmt にはハイフン ("-") を指定することで、標準入力から .Ar count バイトのデータを読むよう、指示することができます。 .Pp .Fl i Ar count Ar in_fmt は、これが .Ar count バイトのデータの、 データインコマンド (つまり、データが装置からシステムに読み込まれる) であることを示します。 この情報は .Xr scsi 3 で記述された方法で .Ar in_fmt に応じて展開され、標準出力に表示されます。 .Ar in_fmt にはハイフン ("-") を指定することで、 .Ar count バイトのデータ入力を標準出力に書き出すよう、 指示することができます。 .Sh 使用例 ディスク .Pa /dev/rsd0c の装置タイプが 0 (ダイレクトアクセス装置) であると確認する: .Bd -literal -offset indent root# scsi -f /dev/rsd0c -c "12 0 0 0 40 0" -i 64 "*b3 b5" 0 .Ed .Pp .Pa /dev/rsd2c に inquiry を行なう: .Bd -literal -offset indent root# scsi -f /dev/rsd2c -c "12 0 0 0 v 0" 0x40 -i 64 \e "s8 z8 z16 z4" .Pp .Pa /dev/rsd2c のモードページ 1 (リードライトエラー回復ページ; Read-Write Error Recovery Page) を編集し、装置に永久的に格納する: .Bd -literal -offset indent root# scsi -f /dev/rsd2c -m 1 -e -P 3 .Ed .Pp 最初の SCSI バスで簡単に再プローブを行う: .Bd -literal -offset indent root# scsi -f /dev/ssc -p .Ed .Pp .Sh 環境変数 .Ev SU_DEBUG_OUTPUT 変数にファイルを設定して、 デバッグ出力をそのファイルに送ることができます。 .Pp .Ev SU_DEBUUG_LEVEL 変数に 0 以外の整数を設定して、 デバッグレベルを増加させることがきます。 現在はこれはオンかオフしかありません; これは ioctl を使ってカーネルのデバッグレベルを設定し、 プログラムの終了時に 0 に設定しなおします。 .Pp .Ev SU_DEBUG_TRUNCATE 変数は整数を設定して、 デバッグファイルに送られるデータフェーズ出力の量を制限します。 .Pp .Ev EDITOR 変数はモードエディタで使うエディタを決定します。 .Sh 関連項目 .Xr scsi 3 , .Xr scsi 4 , .Xr ssc 4 .Sh バグ .Pp いくつかの装置は全部の LUN で inquiry に応答します。 違う論理ユニットの再プローブの間に 8 回 inquiry の応答が起ります。 .Pp .Fl i オプションが inquiry を行なうのは、 .Fx 2.1 で消滅しました。 これは、新しい機能 .Fl c が取って代わりました。 .Pp パーミッションを注意深く検査してください。 .Ql scsi -f /dev/rsd0c -c "4 0 0 0 0 0 とすると .Pa /dev/rsd0c を (読み出しで) オープンできる誰かが ディスクドライブをフォーマットすることができてしまいます。 これは、少くともドライブに書き込みアクセスが必要なように 変更しなければなりません。 .Sh 歴史 .Nm scsi コマンドは 新しい再プローブとユーザ SCSI コマンドをサポートするために 386BSD 0.1.2.4 から登場しました。 これは .Tn FreeBSD では .Fx 2.0.5 から登場しました。 diff --git a/ja/man/man8/scsiformat.8 b/ja/man/man8/scsiformat.8 index 179ac1ce66..c1a814f171 100644 --- a/ja/man/man8/scsiformat.8 +++ b/ja/man/man8/scsiformat.8 @@ -1,111 +1,113 @@ .\" Copyright (c) 1993 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. .\" .\" @(#)scsiformat.8 5.1 (Berkeley) 6/5/93 -.\" %Id: scsiformat.8,v 1.4.2.2 1997/03/02 11:27:07 joerg Exp % +.\" %Id: scsiformat.8,v 1.4.2.3 1998/08/12 06:34:18 charnier Exp % +.\" .\" jpman %Id: scsiformat.8,v 1.4 1997/07/26 22:08:08 horikawa Stab % .\" .Dd June 5, 1993 .Dt SCSIFORMAT 8 .Os BSD 4 .Sh 名称 .Nm scsiformat .Nd SCSI ディスクのフォーマットと SCSI パラメータの表示 .Sh 書式 .Nm scsiformat .Op Fl qyw .Op Fl p Ar page-control .Ar device-name .Sh 解説 .Nm scsiformat ユーティリティは接続時の SCSI フォーマットをサポートした、 固定 SCSI ディスクをフォーマットするのに使われます。 また、SCSI コントローラに設定されたいくつかのパラメータを表示することも できます。 .Ar device-name は .Ql sd0 のようなディスク名か、 .Pa /dev/rsd0.ctl のようなディスクのコントロール装置のパス名にします。 メディアのフォーマットが壊れている装置の場合などは、 通常のディスク装置を使っても動作しないでしょう。 .Pp オプションは次の通りです: .Bl -tag -width indent .It Fl p SCSI のモードセンスページの問合せの方法を変更します。 デフォルトでは、 .Nm scsiformat は現在の設定をもとにします。 ページ制御フラグは次のうちのどれかです: .sp .Bl -tag -width XXX -compact .It Li c 現在の設定から得ます。 .It Li d (ディスクの工場で与えられた) デフォルトの設定から得ます。 .It Li s (電源オフしても存続する) 保存した設定から得ます。 .It Li v 変更可能であるパラメータを表示します。 .El .It Fl q 静かな動作 (Quiet); モードページ出力を抑制します。 inquiry 文字列だけが出力されるので、 オペレータは予定したドライブをフォーマットしていることを確認できます。 .It Fl y 肯定 (Yes); 質問を行なうことなしにフォーマットします。 もしこのオプションが与えられなかった場合、 .Nm scsiformat は、実際に装置のフォーマットを始める前によいかどうか尋ねます。 ここで、割り込みキー (通常 Control-C) を打つことでプログラムを中断できます。 .It Fl w 実際にフォーマットをする; デフォルトでは、ディスクパラメータの表示だけを行ないます。 .El .Sh 診断 メッセージの意味の多くは、そこに説明してある通りです。 しかし、SCSI 標準のコピー (あるいは、読みやすい解説書) が 助けになるでしょう。 .Sh 関連項目 -.Xr scsi 8 . +.Xr scsi 8 .Sh 歴史 .Nm scsiformat ユーティリティは .Bx 4.4 から登場しました。 現在のバージョンのものは、 -Peter Dufault によって +.An Peter Dufault +によって .Fx 2.1 の .Xr scsi 8 対応として再び稼働しました。 diff --git a/ja/man/man8/sendmail.8 b/ja/man/man8/sendmail.8 index ccb7bed0fa..46c875a8dc 100644 --- a/ja/man/man8/sendmail.8 +++ b/ja/man/man8/sendmail.8 @@ -1,588 +1,588 @@ .\" Copyright (c) 1983, 1997 Eric P. Allman .\" Copyright (c) 1988, 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. .\" .\" @(#)sendmail.8 8.12 (Berkeley) 2/1/97 .\" jpman %Id: sendmail.8,v 1.2 1997/06/05 01:31:44 yugawa Stab % .\" .Dd February 1, 1997 .Dt SENDMAIL 8 .Os BSD 4 .Sh 名称 .Nm sendmail .Nd 電子メール配送デーモン .Sh 書式 .Nm sendmail .Op Ar flags .Op Ar address ... .Nm newaliases .Nm mailq .Op Fl v .Sh 解説 .Nm sendmail はメッセージを他の人に送ります。必要ならばネットワークを 通してメッセージを正しい場所に転送します。 .Pp ただし、 .Nm sendmail はユーザインタフェースとして使われることは考慮さ れていません。ユーザにとって使いやすいフロントエンドは別のプログラムで 提供されます。 .Nm sendmail は、あらかじめメールとして整形されたメッセージ を配送するためだけに使われます。 .Pp .Nm sendmail を引数を指定せずに起動すると、 .Nm sendmail は標準入力を EOF (エンド・オブ・ ファイル)か `.'だけを含む行まで読み込み、メッセージのなかに記述されている アドレスにメッセージのコピーを送ります。アドレスの文法や内容にもとづいて 経路に使用するネットワークを決定します。 .Pp ローカルアドレスは、ファイルの中を検索して適当なエイリアスを行います。 先頭にバックスラッシュ `\\' のついたアドレスについては、エイリアスは 行なわれません。 通常、送り手はエイリアスの対象に含まれません。つまり、もし `john' が `group' にメールを送って、 `john' が `group' に 含まれている場合、送ったメッセージは `john' には送られません。 .Ss パラメータ .Bl -tag -width Fl .It Fl B Ns Ar type ボディのタイプを .Ar type に設定します。現在有効なのは、 .Li `7BIT' か .Li `8BITMIME' です。 .It Fl ba .Tn ARPANET モードに移行します。すべての入力行は CR-LF で終わらなければならず、 すべてのメッセージの末尾には CR-LF がつきます。また、``From:'' と ``Sender:'' フィールドは送り手の名前としてチェックされます。 .It Fl bd デーモンモードで実行します。バークレー .Tn IPC が必要です。 .Nm sendmail は .Xr fork 2 を行い、バックグラウンドで動作し、ソケット番号 25 で .Tn SMTP コネクションを 待ちます。通常このモードは、 .Pa /etc/rc から実行されています。 .It Fl bD フォアグラウンドで動作する以外は .Fl bd と同じです。 .It Fl bh 現在のホストの状況のデータベースを表示します。 .It Fl bH 現在のホストの状況のデータベースをパージします。 .It Fl bi エイリアスデータベースを初期化します。 .It Fl bm 普通にメールを配送します(デフォルト)。 .It Fl bp メールキューのリストを表示します。 .It Fl bs 標準入出力で .Tn RFC821 にもとづいた .Tn SMTP プロトコルを使います。この フラグは、 .Fl ba フラグのうち .Tn SMTP 互換の全ての操作を含みます。 .It Fl bt アドレスのテストモードで起動します。このモードは対話 モードでアドレスを入力し、処理の過程を表示します。設定ファイル をデバッグするのに使います。 .It Fl bv 名前のチェックだけを行います。メッセージの収集や配送は行い ません。ベリファイモードは、ユーザやメーリングリストが有効かどうかを確認する ために使います。 .It Fl C Ns Ar file 別の設定ファイルを使います。 .Nm sendmail は、別の設定ファイル を使用する場合は root として実行することはできません。 .It Fl d Ns Ar X デバッグ値を .Ar X に設定します。 .ne 1i .It Fl F Ns Ar fullname 送り手のフルネームを設定します。 .It Fl f Ns Ar name ``from'' に入る名前(つまり、送り手の名前です)を設定します。 .Fl f は、``trusted''なユーザ(普通は .Em root , .Em daemon , .Em network です)が使うか、 送り手が自分自身の名前を指定して使う場合のみ指定することができます。 .It Fl h Ns Ar N ホップカウントを .Ar N に設定します。ホップカウントは、 メールが処理されるたびに増えていきます。ホップカウントがリミットになった とき、メールは「エイリアスがループしている」という旨のエラーメッセージと いっしょに送り返されます。 もしこのフラグが指定されなければ、メッセージのなかの ``Received:'' 行がカウント されます。 .It Fl i 入力されるメッセージ中の `.' だけを含む行を無視します。 このフラグは、データをファイルから読み込むような場合に使用する必要があります。 .It Fl N Ar dsn 配送状況の通知条件を .Ar dsn に設定します。 .Ar dsn には、 .Ql never (何も通知しない)または、コンマで区切った、 .Ql failure (配送が失敗した場合に通知する) .Ql delay (配送が遅れた場合に通知する) .Ql success (配送が正常に行われた場合に通知する) の組合せを指定する事ができます。 .It Fl n エイリアスを行いません。 .It Fl O Ar option Ns = Ns Em value オプション .Ar option を、指定した .Em value に設定します。この形式では長いオプション名が使用されます。 詳しくは後に記述します。 .It Fl o Ns Ar x Em value オプション .Ar x を、指定した .Em value に設定します。 この形式では、一文字のオプション名しか使用できません。 短いオプション名についてはこのマニュアルには記述されていません。 詳しくは、 .%T "Sendmail Installation and Operation Guide" を参照して下さい。 .It Fl p Ns Ar protocol メッセージを受け取るのに利用するプロトコル名を設定します。 設定できるのは、 ``UUCP'' のようなプロトコル名だけかプロトコル+ホスト名、たとえば ``UUCP:ucbvax'' などです。 .It Fl q Ns Bq Ar time キューのなかにあるメッセージを処理する間隔を設定します。 .Ar time を省略した場合は、キューの内容を一度だけしか処理しません。 .Ar time は、 .Ql s (秒)、 .Ql m (分)、 .Ql h (時間)、 .Ql d (日)、 .Ql w (週)の単位を付けた数字で指定します。 たとえば、 .Ql -q1h30m や .Ql -q90m は、タイムアウトを 1 時間 30 分に設定します。 .Ar time が指定されると、 .Nm sendmail はデーモンとしてバックグラウンドで 実行されます。 デーモンとして実行させる際には、同時にオプション .Fl bd を つけておくほうが安全です。 .It Fl qI Ns Ar substr キュー ID の文字列に .Ar substr が含まれるジョブのみを処理します。 .It Fl qR Ns Ar substr 受信者のリストの文字列に .Ar substr が含まれるジョブのみを処理します。 .It Fl qS Ns Ar substr 送信者の文字列に .Ar substr が含まれるジョブのみを処理します。 .It Fl R Ar return メッセージがバウンスした時に返送されるメッセージの量を設定します。 .Ar return パラメータには、メッセージ全体を返送する場合は .Ql full を、ヘッダのみを返送する場合は .Ql hdrs を指定します。 .It Fl r Ns Ar name .Fl f フラグと同じですが、古い形式です。 .It Fl t 受信者をメッセージから読み取ります。To:, Cc:, Bcc: フィールドが受信者 のアドレスとして読み込まれます。Bcc: フィールドはメッセージの転送前に 削除されます。引数で指定されたアドレスは全て無視されますので、メッセー ジのヘッダに名前が並べてあっても、引数に指定してあるとメッセージは転送 されません。 .It Fl U 最初の(ユーザからの)発送である事を示します。 このフラグは、 .Nm Mail や .Nm exmh の様なユーザエージェントから呼び出す場合は .Em 必ず 指定する必要があり、 .Nm rmail 等のネットワーク配送エージェントから呼び出す場合は、 .Em 絶対に 指定してはいけません。 .It Fl V Ar envid オリジナルのエンベロープ ID を設定します。 これは、DSN をサポートするサーバ間では SMTP 上を伝達し、 DSN に従ったエラーメッセージの中で返送されます。 .It Fl v 詳細モードに移行します。展開されるエイリアスなどが報告されます。 .It Fl X Ar logfile 指定された .Ar logfile に、メーラに出たり入ったり するすべてメッセージに関する情報を記録します。メーラをデバッグする際の 最後の手段としてのみ使ってください。非常に大量の情報があっという間に記録 されます。 .El .Ss オプション .Nm sendmail には、設定することができる多くの処理オプションがあります。 通常、これらのオプションはシステム管理者のみが使います。 オプションは、コマンドラインから .Fl o フラグを使って(短いオプション名で)指定したり、 .Fl O フラグを使って(長いオプション名で)指定したり、 設定ファイルから指定することができます。ここに記述して いるのは部分的なもので、コマンド行から指定する場合に便利な物だけを、 長いオプション名で示しています。完全なリスト(と詳細)は、 .%T "Sendmail Installation and Operation Guide" を参照してください。 オプションには以下の物があります。 .Bl -tag -width Fl .It Li AliasFile= Ns Ar file 別のエイリアスファイルを使います。 .It Li HoldExpensive 接続するのに時間がかかるホストと接続するときは、 すぐに接続せず、リクエストはキューに入れられます。 .It Li CheckpointInterval= Ns Ar N .Nm sendmail が、 .Ar N 個の配送に成功するたびにキューファイルに チェックポイントを設定します(デフォルトは 10 個です)。これによって、 システムのクラッシュによって長いメーリングリストの配送が中断 されたときでも、再開時に同じ人に重複して配送されることを防ぎます。 .ne 1i .It Li DeliveryMode= Ns Ar x 配送モードを .Ar x に設定します。配送モードには .Ql i 対話的(同期的)配送モード、 .Ql b バックグラウンド(非同期的)配送モード、 .Ql q キューモード(実際の配送は、キューが実行されるときに行われる)、 .Ql d 延期モード(データベースの検索(特に DNS や NIS )が行われない以外は .Ql q と同じ)があります。 .It Li ErrorMode= Ns Ar x エラー処理をモード .Ar x に設定します。 .Ql m はエラーメッセージを送り返します。 .Ql w はエラーメッセージを送り手の端末に書き出します (送り手がログインしていなければ、メールを返します)。 .Ql p は、エラーメッセージを端末に表示します(デフォルト)。 .Ql q は、エラーメッセージを捨てます(exit コードだけを返します)。 .Ql e は、BerkNet 用に特別処理をします。 もし、モード .Ql m や .Ql w を使っている場合に、エラーとなったメッセージが エラーメールとして送り返されず、送り手が .Nm sendmail を実行している マシン上のユーザならば、 メッセージのコピーは送り手のホームディレクトリにある .Pa dead.letter に追加されます。 .It Li SaveFromLine メッセージのはじめに .Tn UNIX Ns \-style From 行を残します。 .It Li MaxHopCount= Ar N メールがループしていると判断されない、最大のホップ数を 指定します。 .It Li IgnoreDots `.' だけを含む行をメッセージの終わりとして解釈しません。 .It Li SendMimeErrors エラーメッセージをMIMEフォーマットで送り返します。 設定されていない場合は、DSN (Delivery Status Notification: 配送状況通知) SMTP 拡張は無効になります。 .It Li ConnectionCacheTimeout= Ns Ar timeout コネクションキャッシュの .Ar timeout を設定します。 .It Li ConnectionCacheSize= Ns Ar N コネクションキャッシュのサイズを .Ar N に設定します。 .It Li LogLevel= Ns Ar n ログレベルを .Ar n にします。 .It Li MeToo エイリアスに自分自身が含まれている場合、``me''(送り手自身)にも送ります。 .It Li CheckAliases .Xr newaliases 1 コマンドの実行の際、 エイリアスの右側の項目(エイリアスの値)を有効性をチェックします。 .It Li OldStyleHeaders もしオプションが設定されていれば、メッセージが古いスタイルのヘッダ を持つことがあることを意味します。 このオプションが設定されていなければ、このメッセージが新しい スタイルを持っていることが保証されます(2 つのアドレスの間はスペースのかわり -にカンマで区切られます)。このオプションが設定されていると、大抵の場合、 +にコンマで区切られます)。このオプションが設定されていると、大抵の場合、 ヘッダのフォーマットを正しく決定するためのアルゴリズムが用いられます。 .It Li QueueDirectory= Ns Ar queuedir キューメッセージを保存するディレクトリを選択します。 .It Li StatusFile= Ns Ar file 指定した名前のファイルに統計情報をセーブします。 .It Li Timeout.queuereturn= Ns Ar time キューのなかの配送されなかったメッセージのタイムアウト時間を設定します。 この時間内に(ホストのダウンなどにより)配送が行われなかったときには、 失敗した旨のメッセージが送り返されます。デフォルトは 5 日です。 .It Li UserDatabaseSpec= Ns Ar userdatabase このオプションが設定されると、情報を送る際にユーザデータ ベースに対する問い合わせが行われます。 この方法をエイリアス機構の補助として使用する事ができます。ただし、 エイリアスはそのホストローカルでのみ有効なので、データベースが意図的に 分散されている場合は使用できません。 .Nm sendmail が .Dv USERDB 付きでコンパイルされていなければ使うことはできません。 .It Li ForkEachJob キューを処理する間、 .Xr fork 2 を行います。メモリが少ないマシン では便利です。 .It Li SevenBitInput 到着するメッセージを 7 ビットにします (8 ビット目は落します)。 .It Li EightBitMode= Ns Ar mode 8 ビットの入力を 7 ビットの宛先へ送る場合の処理方法を .Ar mode に設定します。 処理方法には、 .Li m (mime 化) 7 ビット MIME 形式へ変換、 .Li p (パス) 8 ビットのまま配送(プロトコルには違反します)、 .Li s (厳密) メッセージをバウンス、 があります。 .It Li MinQueueAge= Ns Ar timeout 配送の試行の間、ジョブがキューに蓄積される時間を設定します。 .It Li DefaultCharSet= Ns Ar charset 特に指定されていない場合に、8 ビットのデータである事を示す ラベルとして使用されるデフォルトのキャラクタを設定します。 .It Li DialDelay= Ns Ar sleeptime コネクションの確立が失敗した場合に、再試行までに .Ar sleeptime だけスリープします。オンデマンドでダイアル接続するサイトでの使用に便利です。 .It Li NoRecipientAction= Ns Ar action 受信者ヘッダ (To: Cc: あるいは Bcc:) がない場合の動作を .Ar action に設定します。 .Li none メッセージを変更しない、 .Li add-to To: ヘッダにエンベロープで指定された受信者を加える、 .Li add-apparrently-to Apparrently-To: ヘッダにエンベロープで指定された受信者を加える、 .Li add-bcc 空の Bcc: ヘッダを加える、 .Li add-to-undisclosed .Ql "To: undisclosed-recipients:;" というヘッダを加える、という動作が指定できます。 .It Li MaxDaemonChildren= Ns Ar N 待ち受け SMTP デーモンが同時に動作できる子プロセスの最大数を .Ar N に設定します。 .It Li ConnectionRateThrottle= Ns Ar N SMTP ポートへの 1 秒当りの最大コネクション数を .Ar N に設定します。 .El .Pp エイリアスのなかで最初の文字が `|' で始まるものは、メールの内容をパイプで コマンドに送るものと解釈されます。引数などをつけるために空白文字が 必要な場合はクォートする (" でくくる)必要があります。以下に、例を示します: .Pp .Bd -literal -offset indent -compact msgs: "|/usr/bin/msgs -s" .Ed .Pp エイリアスには、 .Dq :include: Ns Ar filename という文法もあります。 .Nm sendmail は、 メールの受け手のエイリアスとして、指定されたファイルを読みます。 以下に、例を示します: .Pp .Bd -literal -offset indent -compact poets: ":include:/usr/local/lib/poets.list" .Ed .Pp 上記の例の場合は、 .Pa /usr/local/lib/poets.list を読み、`poets' のグループの ためのアドレスリストを作ります。 .Pp .Nm sendmail は、以下に示すような終了コードを返します。これらの コードは、 .Aq Pa sysexits.h に定義されています。 .Bl -tag -width EX_UNAVAILABLE -compact -offset indent .It Dv EX_OK すべてのアドレスについて完全に成功しました。 .It Dv EX_NOUSER ユーザ名が認識できません。 .It Dv EX_UNAVAILABLE 処理に必要なリソースを得ることができません。 .It Dv EX_SYNTAX アドレスに文法的な間違いがあります。 .It Dv EX_SOFTWARE 引数が間違っている等の、内部的なエラーです。 .It Dv EX_OSERR .Dq cannot fork のような、一時的な OS エラーです。 .It Dv EX_NOHOST ホスト名が認識できません。 .It Dv EX_TEMPFAIL メッセージはすぐには送られませんでしたが、 キューには入れられました。 .El .Pp .Nm newaliases というコマンドで実行されると、 .Nm sendmail はエイリアス データベースを再構築します。 .Nm mailq というコマンドで実行されると、 .Nm sendmail はメールキューの内容を表示します。 .Sh 関連ファイル .Pa /etc/sendmail.cf を除き、以下のファイルのパスはすべて .Pa /etc/sendmail.cf 内部で決められています。以下は一例に過ぎません。 .Pp .Bl -tag -width /usr/lib/sendmail.fc -compact .It Pa /etc/aliases エイリアス名の生データ .It Pa /etc/aliases.db エイリアス名のデータベース .It Pa /etc/sendmail.cf 設定ファイル .It Pa /usr/share/misc/sendmail.hf ヘルプファイル .It Pa /var/log/sendmail.st 統計情報ファイル .It Pa /var/spool/mqueue/* テンポラリファイル .It Pa /var/run/sendmail.pid デーモンのプロセス ID を格納しているファイル .El .Sh 関連項目 .Xr mail 1 , .Xr syslog 3 , .Xr aliases 5 , .Xr mailaddr 7 , .Xr mail.local 8 , .Xr rc 8 , .Xr rmail 8 ; .Pp DARPA Internet Request For Comments .%T RFC819 , .%T RFC821 , .%T RFC822 . .Rs .%T "Sendmail \- An Internetwork Mail Router" .%V SMM .%N \&No. 9 .Re .Rs .%T "Sendmail Installation and Operation Guide" .%V SMM .%N \&No. 8 .Re .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja/man/man8/slattach.8 b/ja/man/man8/slattach.8 index 511cb82746..1a836883dd 100644 --- a/ja/man/man8/slattach.8 +++ b/ja/man/man8/slattach.8 @@ -1,260 +1,266 @@ .\" Copyright (c) 1986, 1991 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. .\" .\" @(#)slattach.8 6.4 (Berkeley) 3/16/91 -.\" jpman %Id: slattach.8,v 1.2 1997/05/19 05:35:41 mitchy Stab % +.\" %Header: /home/ncvs/src/sbin/slattach/slattach.8,v 1.11.2.3 1998/08/12 06:57:33 charnier Exp % .\" -.\" %Header: /home/ncvs/src/sbin/slattach/slattach.8,v 1.11.2.2 1997/09/14 19:50:34 jkh Exp % +.\" jpman %Id: slattach.8,v 1.2 1997/05/19 05:35:41 mitchy Stab % .\" .Dd April 4, 1993 .Dt SLATTACH 8 .Os BSD 4.3 .Sh 名称 .Nm slattach .Nd シリアルラインをネットワークインタフェースに割り当てる .Sh 書式 .Nm slattach .Op Fl a .Op Fl c .Op Fl e Ar exit-command .Op Fl f .Op Fl h .Op Fl l .Op Fl n .Op Fl z .Op Fl L .Op Fl r Ar redial-command .Op Fl s Ar baudrate .Op Fl u Ar unit-command .Op Fl K Ar keepalive .Op Fl O Ar outfill .Op Fl S Ar unit .Ar ttyname .Sh 解説 .Nm slattach は、シリアルポートをネットワークインタフェースに割り当て自分と相手の アドレスを定義するために使用されます。 .Nm slattach の、オプションは以下のとおりです: .Bl -tag -width Ar .It Fl a VJ ヘッダ圧縮を自動許可します。 リンクの相手が VJ ヘッダ圧縮可能な時これを使用し、そうでなければ 標準ヘッダを使用します。 .It Fl c VJ ヘッダ圧縮を指定します。リンクの両端が VJ ヘッダ圧縮を使用できなければ ならないことに注意してください。 .It Fl e Ar exit-command .Nm slattach が終了する前にシェルで .Ql sh \-c Ar exit-command のように呼び出されるコマンドを指定します。 .It Fl f .Nm slattach をバックグラウンドで動かすための daemon() の呼び出しを行いません。 .It Fl h cts/rts によるシリアルのフロー制御を有効にします。無指定時には、 フロー制御はサポートされません。 .It Fl l slip ポートのモデム制御 (CLOCAL) を無効にしキャリア検出を無視します。 無指定時には、キャリアが落ちた時に .Ar redial-command を呼び出しますが、 .Ar redial-command が指定されていなければ .Nm slattach は終了します。 .It Fl n ICMP パケットを捨てます。 slip インタフェースは ICMP レスポンスによるシリアルラインの遅延を防止するよう ICMP パケットを無視します。 .It Fl r Ar redial-command シリアルラインのキャリアが失われた時にシェルで .Ql sh \-c Ar redial-command のように呼び出されるコマンドを指定します。 .Ar redial-command -として空白を指定、すなわち、 +として空白を指定 (すなわち .Fl r Qq "" -とすることで、専用線で外部コマンドを実行せずに再接続を試みます。 +) することで、専用線で外部コマンドを実行せずに再接続を試みます。 .It Fl s Ar baudrate 接続速度を指定します。このオプションが指定されない場合には、 9600 bps になります。 .It Fl u Ar unit-command シリアルラインが slip に切り替わった時、 -.Ql Nm "sh -c" Ar unit-command +.Ql Nm "sh -c" Ar unit-command old new が実行されます。 -.Ar +.Ar old と -.Ar +.Ar new はそれぞれ slip の最後にオープンされた時のユニット番号と現在のコネクションの ユニット番号です。 このユニット番号は 2 つ以上の slip ラインを使用すればリダイアル後に 変更することが出来ます。 -接続が切れたとき、 .Nm slattach -は、 -.Ql Nm "sh -c" Ar unit-command Nm \-1 -を実行します。 +の接続が初めて確立されたとき、 +.Ql Nm "sh -c" Ar unit-command new Nm \-1 +が実行されます。 +.Nm slattach +の接続が切れたとき、 +.Ql Nm "sh -c" Ar unit-command old Nm \-1 +が実行されます。 .Nm slattach は、ユニット番号が変更され .Ql Fl u Ar \%unit-command が指定されないとき終了します。 .It Fl z 開始時にキャリアにかかわり無く .Ar redial-command のリダイアルを行います。 .It Fl L uucp方式のデバイスロックを行います。 他の uucp ロックを行うプログラムから .Nm slattach を開始する場合以外は、このオプションが必要です。 デフォルトではそのようなプログラムの使用を考え uucp ロックをしません。 .It Fl K Ar keepalive SLIP "keep alive" タイムアウト時間を秒単位で設定します。 FRAME_END がこの時間内に受信できない時、再接続が行われます。 省略時はタイムアウトは設定されません。 .It Fl O Ar outfill SLIP "out fill" タイムアウト時間を秒単位で設定します。 これにより、相手側の "keep alive" タイムアウトに必要な FRAME_END をこの時間内に送信します。 省略時はタイムアウトは設定されません。 .It Fl S Ar unit SLIP ユニット番号を直接指定します。 2 つのインタフェースが同じユニット番号にならないかチェックをしないので、 注意が必要です。 省略時は動的にユニット番号を割り当てます。 .It Ar ttyname ttyデバイスの名前を指定します。 .Ar ttyname は .Ql ttyXX か .Ql /dev/ttyXX の形式で記述します。 .El .Pp 本コマンドを用いてシリアルポートをネットワークインタフェースに 割り当てることが出来るのはスーパーユーザに限られます。 .Pp ネットワークインタフェースの割り当てを解除する場合は、 .Nm slattach プロセスを .Ql kill -INT を使って kill した後に .Dq Li ifconfig interface-name down を実行してください。 .Ar Interface-name は .Xr netstat 1 で見ることが出来ます。 .Pp .Nm slattach をキャリアを失った時にリダイアルするように設定するには、 .Fl r Ar redial-command オプションを使って slip サーバに再接続するスクリプトかコマンドを指定 します。スクリプトはサーバにリダイアルしログインするようなものです。 .Pp slipユニット番号が変わった時にネットワークインタフェースを再構成するには、 .Fl u Ar unit-command オプションを使用して .Ql sh \-c Ar unit-command old new のように呼び出す、スクリプトかコマンドを指定します。 .Ar old と .Ar new は再接続前後の slip ユニット番号です。 同時に 2 つ以上のラインが切断されているときユニット番号が変わる可能性 があります。 最初の再接続に成功した slip が一番小さいユニット番号を得られます。 .Pp .Nm slattach を kill するには、 tty をクローズしてから終了するように .Ql kill -INT (SIGINT)を使用します。 .Pp 強制的にリダイアルするには、 .Ql kill -HUP を使用し .Nm slattach がキャリアを失ったように思わせて .Ql sh \-c Ar redial-command でサーバに再接続させます。 .Pp .Nm slattach をモデム経由でなく直結で使用する場合、 slip ラインのキャリアを無視するために .Fl l オプション付きで実行します。 .Sh 使用例 .Bd -literal -offset indent -compact slattach ttyd8 slattach \-s 4800 /dev/ttyd1 slattach \-c \-s 38400 /dev/cuaa1 slattach \-r 'kermit -y dial.script >kermit.log 2>&1' .Ed .Sh 診断 +エラーメッセージは +.Pa /var/log/messages +にあります ( .Nm slattach -がデーモンの時のエラーメッセージは /var/log/messages にあります。 +はデーモンです) 指定したネットワークインタフェースが終了しない、 要求されたアドレスがみつからない、権限のないユーザが ネットワークインタフェースの設定を変更しようとした、というメッセージは ここに記録されます。 .Nm slattach は端末の制御の設定の失敗や、 シグナルハンドラの登録の失敗も記録します。 コネクション開始時とリダイアル時に tty 名と回線速度が記録され、 終了時に tty 名が記録されます。 .Pp .Sh 関連ファイル .Pa /var/run/slattach..pid .Pp この .Ar tty は .Ar tty 名 に置き換えられます。 このファイルには .Nm slattach のプロセス番号が含まれ、 .Nm slattach にシグナルを送るスクリプトで確かめることができます。 .Sh 関連項目 .Xr netstat 1 , .Xr startslip 1 , .Xr uustat 1, .Xr netintro 4 , .Xr ifconfig 8 , .Xr rc 8 , .Xr sliplogin 8 .Sh 歴史 .Nm は .Bx 4.3 ではじめて登場しました。 diff --git a/ja/man/man8/sticky.8 b/ja/man/man8/sticky.8 index 2e98004142..01077cd71f 100644 --- a/ja/man/man8/sticky.8 +++ b/ja/man/man8/sticky.8 @@ -1,80 +1,76 @@ .\" Copyright (c) 1980, 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. .\" .\" @(#)sticky.8 8.1 (Berkeley) 6/5/93 .\" jpman %Id: sticky.8,v 1.3 1997/07/19 12:27:09 konuma Stab % .\" %Id: sticky.8,v 1.1.1.1.8.2 1998/03/07 12:17:29 jkh Exp % .\" .Dd June 5, 1993 .Dt STICKY 8 .Os BSD 4 .Sh 名称 .Nm sticky .Nd スティッキーテキストと追加専用ディレクトリ .Sh 解説 特別なファイルモード .Em sticky bit (mode S_ISVTX) は、ディレクトリのための 特別な取り扱いを示すために使われます。 通常ファイルに対しては無視されます。 ファイルのモードについての説明は、 .Xr chmod 2 や、 .Pa /usr/include/sys/stat.h ファイルを参照してください。 .Sh スティッキーディレクトリ `スティッキービット' が設定されたディレクトリは追加専用ディレクトリ、 より正確にいえば、ファイルの削除が制限されたディレクトリになります。 スティッキーディレクトリのファイルの削除や名称変更が可能なのは、 そのディレクトリの書き込み権限を持つそのファイルの所有者か、 そのディレクトリの所有者か、スーパーユーザだけです。 この機能は、 .Pa /tmp ディレクトリの様に、公共的に書き込み可能であるが、他人の任意のファイルを 消去したり、名称変更したりさせたくない場合には有効です。 .Pp どんなユーザもスティッキーディレクトリを作成することができます。 ファイルモードの変更についての詳細は、 .Xr chmod 1 を参照してください。 .Sh バグ -スティッキーテキストを持つ実行ファイルのテキスト領域は、 -スワップ領域に置かれるので、 -この機能の濫用はスワップの不足を引き起こします。 -.Pp .Xr open 2 もしくは .Xr mkdir 2 のどちらも、スティッキービットが設定されたファイルを作成できません。 .Sh 歴史 .Nm コマンドは、 Version 32V AT&T UNIX から登場しました。 diff --git a/ja/man/man8/syslogd.8 b/ja/man/man8/syslogd.8 index f70aaad848..d948919a5a 100644 --- a/ja/man/man8/syslogd.8 +++ b/ja/man/man8/syslogd.8 @@ -1,227 +1,243 @@ .\" 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 -.\" %Id: syslogd.8,v 1.6.2.7 1998/07/18 11:37:25 jkh Exp % +.\" %Id: syslogd.8,v 1.6.2.8 1998/08/06 01:43:45 jkoshy 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 ds +.Op Fl dsuv .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 デーモンは設定ファイルに指定された通りに、システムコンソール、 ログファイル、他のマシンやユーザへのメッセージを読み込み、記録します。 オプションには以下のものがあります。 .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 p 代りに使用するログ用ソケットのパス名を指定します。 デフォルトは .Pa /var/run/log です。 .It Fl l .Nm syslogd が追加のログ用ソケットを置く場所を指定します。 19 個まで追加のログ用ソケットを指定可能です。 主な用法は、 様々に chroot したファイル空間において追加のログ用ソケットを .Pa /dev/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 s -および -.Fl a -オプションは +.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/man/man8/vnconfig.8 b/ja/man/man8/vnconfig.8 index 94e26853ac..b2b1b244bc 100644 --- a/ja/man/man8/vnconfig.8 +++ b/ja/man/man8/vnconfig.8 @@ -1,187 +1,187 @@ .\" Copyright (c) 1993 University of Utah. .\" Copyright (c) 1980, 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Systems Programming Group of the University of Utah Computer .\" Science Department. .\" .\" 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. .\" .\" @(#)vnconfig.8 8.1 (Berkeley) 6/5/93 .\" jpman %Id: vnconfig.8,v 1.2 1997/05/03 13:45:51 horikawa Stab % .\" .Dd July 8, 1993 .Dt VNCONFIG 8 .Os BSD 4 .Sh 名称 .Nm vnconfig -.Nd vnode ディスクを構築して利用できるようする +.Nd vnode ディスクを構築して利用できるようにする .Sh 書式 .Nm vnconfig .Op Fl cdeguv .Op Fl s Ar option .Op Fl r Ar option .Ar special_file Ar regular_file .Oo Ar feature Oc .Nm vnconfig .Fl a .Op Fl cdeguv .Op Fl s Ar option .Op Fl r Ar option .Op Fl f Ar config_file .Sh 解説 .Nm コマンドは、vnode 疑似ディスクデバイスを構築して使用可能にします。 コマンドの最初の書式では、スペシャルファイル .Ar special_file を通常ファイル .Ar regular_file に結びつけ、 後で通常ファイルをディスクであるかのようにアクセスできるようにします。 これによりファイルシステム中の通常ファイルを、 スワップや、名前空間にマウントされるファイルシステムと出来ます。 .Pp オプションは動作を指定します: .Bl -tag -width indent .It Fl a コマンドファイルを読み込み、 各デバイス/ファイルの組に対して指定された動作を実行します。 .It Fl c デバイスを構築します。 成功すると、 .Ar special_file への参照は、 .Ar regular_file の内容へのアクセスとなります。 .It Fl d 指定した .Ar feature を(可能であれば)無効にします。 .It Fl e デバイスを構築し、指定された .Ar feature を有効にします。 .Ar feature が指定されないと、 .Fl e は .Fl c と同じ意味になります。 .It Fl f Ar config_file .Ar config_file を設定ファイルの代りに使用します。 .It Fl g global オプションを制御します。 .It Fl r Ar option .Ar option をリセットします。 .Ar option は labels, follow, debug, io, all, none のいずれかです。 .It Fl s Ar option .Ar option をセットします。 .It Fl u デバイスを無効にし、``無構築状態'' にします。 .It Fl v 実行される動作の内容を標準出力に表示します。 .El .Pp 動作を指定するオプションがない場合には、 .Fl c が指定されたものと見なします。 .Pp .Ar feature 引数は、 .Fl e によって有効になる機能を指定します。 .Bl -tag -width indent .It Dv swap スペシャルファイル上でのスワップを有効にします。 .Xr swapon 2 を参照してください。 .It Dv Pf mountro= Pa mount_point スペシャルファイルは、 .Ar mount_point へ読み込み専用マウントされます。 .Xr mount 2 を参照してください。 .It Dv Pf mountrw= Pa mount_point スペシャルファイルは、 .Ar mount_point へ読み書き可能マウントされます。 .Xr mount 2 を参照してください。 .It Dv Pf mount= Pa mount_point ``mountrw='' と同じです。 .El .Pp 設定ファイルは、1 行にデバイスとファイル名の組を次の形式で持ちます: .Bd -literal special_file regular_file [ feature ] .Ed .Pp ここでは各フィールドはスペースで分割されます。 設定ファイル中のすべてのデバイスの動作に関して、 前述の動作オプションが有効です。 .Sh 関連ファイル .Bl -tag -width /etc/vntab -compact .It Pa /etc/vntab .Fl a オプションで使われるデフォルトの設定ファイル .El .Sh 使用例 .Pp .Dl vnconfig /dev/vn0c /tmp/diskimage .Pp vnode ディスクデバイス .Pa vn0c を構築します。 .Pp .Dl vnconfig -e /dev/vn0c /var/swapfile swap .Pp vnode ディスクデバイス .Pa vn0c を構築し、それをスワップ領域として使うようにします。 .Pp .Dl vnconfig -d /dev/vn0c myfilesystem mount=/mnt .Pp vnode ディスクデバイス .Pa vn0c のマウントを解除します(また無構築状態にします)。 .Pp .Dl vnconfig -ae .Pp .Pa /etc/vntab に記述されているすべてのデバイスを構築して使用可能にします。 .Sh 関連項目 .Xr mount 2 , .Xr swapon 2 , .Xr unmount 2 , .Xr vn 4 . diff --git a/ja_JP.eucJP/man/man1/awk.1 b/ja_JP.eucJP/man/man1/awk.1 index 704dd7b933..58b1389537 100644 --- a/ja_JP.eucJP/man/man1/awk.1 +++ b/ja_JP.eucJP/man/man1/awk.1 @@ -1,1938 +1,1938 @@ .\" jpman %Id: awk.1,v 1.3 1997/04/17 13:23:21 horikawa Stab % .ds PX \s-1POSIX\s+1 .ds UX \s-1UNIX\s+1 .ds AN \s-1ANSI\s+1 .TH AWK 1 "Apr 18 1994" "Free Software Foundation" "Utility Commands" .SH 名称 awk \- GNU awk パターン検索・処理言語 .SH 書式 .B awk [ POSIX or GNU style options ] .B \-f .I program-file [ .B \-\^\- ] file .\^.\^. .br .B awk [ POSIX or GNU style options ] [ .B \-\^\- ] .I program-text file .\^.\^. .SH 解説 .I gawk は GNU プロジェクトが実装した プログラミング言語 AWK の処理系です。 本処理系は \*(PX 1003.2 コマンド言語とユーティリティ規約に定められた 言語の定義に適合しています。 本バージョンはまた、Aho、Kernighan、Weinberger の著書『 .I The AWK Programming Language 』の記述にもとづいており、 System V Release 4 \*(UX の .I awk の付加機能も含んでいます。 .I gawk はまた、GNU 独自の拡張も提供します。 .PP コマンドラインは、 .I awk へのオプション、(もし .B \-f または .B \-\^\-file オプションにより指定されていなければ)AWK のプログラムテキスト、そして 残りの引数列からなります。 この残りの引数列は、定義済み AWK 変数 .BR ARGC , .B ARGV を用いることで参照できます。 .SH オプション .PP .I gawk へのオプションは、伝統的な \*(PX 形式の一文字オプションと、GNU 形式の ロングオプションがあります。 \*(PX 形式のオプションは単一の ``\-'' で始まり、一方 GNU 形式のもの は ``\-\^\-'' で始まります。GNU 形式のロングオプションは GNU の独自仕様と \*(PX の必須仕様の両方について用意されています。 他の実装による AWK では、伝統的な一文字オプションのみを受け付けるものが 多いようです。 .PP \*(PX 標準に従い、 .I awk 独自仕様のオプションは .B \-W オプションへの引数で与えます。 複数の .B \-W オプションを指定することもできますし、 複数の引数をコンマで区切って、もしくは引用符で括り空白で区切ることで 一度にまとめて .B \-W オプションに与えることもできます。 .B \-W オプションへの引数では、大文字小文字の区別は行なわれません。後述の ように、各 .B \-W オプションには、それに対応する GNU 形式のロングオプション が存在します。GNU 形式のロングオプションへの引数は、空白を入れずに .B = でつないで指定するか、その次のコマンドライン引数として渡すことができます。 .PP .I gawk は以下のオプションを受け付けます。 .TP .PD 0 .BI \-F " fs" .TP .PD .BI \-\^\-field-separator= fs 入力フィールドセパレータ(変数 .B FS の値)を .I fs とします。 .TP .PD 0 \fB\-v\fI var\fB\^=\^\fIval\fR .TP .PD \fB\-\^\-assign=\fIvar\fB\^=\^\fIval\fR プログラムを実行する前に、変数 .I var に値 .I val を設定します。このようにして設定 した変数は、 AWK プログラムの .B BEGIN ブロック内でも参照できます。 .TP .PD 0 .BI \-f " program-file" .TP .PD .BI \-\^\-file= program-file .B awk への第一引数を用いるかわりに、AWK プログラムをファイル .I program-file から読み込みます。 .B \-f (または .B \-\^\-file ) オプションは複数回使 用することができます。 .TP .PD 0 .BI \-mf= NNN .TP .BI \-mr= NNN さまざまなメモリの制限値を .I NNN に設定します。フラグ .B f は最大フィールド数、フラグ .B r は最大レコードサイズを設定します。この2つのフラグと .B \-m オプションは、AT&T ベル研究所バージョンの \*(UX .I awk に由来しています。しかし、 .I awk にはこのような制限はありませんので、 .I awk では本オプションは無視されます。 .TP \w'\fB\-\^\-copyright\fR'u+1n .PD 0 .B "\-W compat" .TP .PD .B \-\^\-compat .I 互換 モードで動作します。互換モードでは、 .I awk は \*(UX .I awk と等価な動作を行い、GNU 独自拡張は解釈できません。 詳しくは後述の .B "GNU 拡張" を参照してください。 .TP .PD 0 .B "\-W copyleft" .TP .PD 0 .B "\-W copyright" .TP .PD 0 .B \-\^\-copyleft .TP .PD .B \-\^\-copyright GNU の著作権表示の短いバージョンを標準エラー出力へ書き出します。 .TP .PD 0 .B "\-W help" .TP .PD 0 .B "\-W usage" .TP .PD 0 .B \-\^\-help .TP .PD .B \-\^\-usage 短めのオプション一覧を標準エラー出力へ書き出します。GNU コーディング規約に 従い、本オプションを指定すると .I awk はただちに終了し、成功を意味する終了ステータスを返します。 .TP .PD 0 .B "\-W lint" .TP .PD 0 .B \-\^\-lint 他の AWK での処理が疑わしい、あるいは他の AWK との互換性がない構造が ある場合に警告を行います。 .ig .\" This option is left undocumented, on purpose. .TP .PD 0 .B "\-W nostalgia" .TP .PD .B \-\^\-nostalgia 長い間 .I awk を使ってきたユーザのために郷愁の瞬間を提供します。 .. .TP .PD 0 .B "\-W posix" .TP .PD .B \-\^\-posix .I 互換 モードをオンにし、更に以下の制約が課せられます。 .RS .TP \w'\(bu'u+1n \(bu .B \ex エスケープシーケンスを解釈しません。 .TP \(bu キーワード .B function に対応する別名 .B func を解釈しません。 .TP \(bu 演算子 .B ^ や .B ^= のかわりに .B ** や .B **= を用いることができません。 .RE .TP .PD 0 .BI "\-W source=" program-text .TP .PD .BI \-\^\-source= program-text .I program-text を AWK プログラムとして用います。本オプションにより、ライブラリ化された関数( .B \-f または .B \-\^\-file オプションを用いて読み込む)とコマンドラインから入力されたプログラムを 簡単に合成することができます。 これは、主にシェルスクリプトで用いられる中規模から大規模な AWK プログラム のために用意されました。 .sp .5 .B "\-W source=" 形式においては、そのコマンドライン引数の残りの部分を .I program-text として解釈します。 よって、同じ引数内でこれ以上 .B \-W のオプション引数を続けることはできません。 .TP .PD 0 .B "\-W version" .TP .PD .B \-\^\-version 実行された .I awk プログラムのバージョン情報を標準エラー出力へ書き出します。これは主に、 あなたが使用している .I awk プログラムが Free Software Foundation が配布してい るプログラムのうち、最新のものであるかどうかを知る場合に便利です。本オ プションを指定すると、GNU コーディング規約に従い、 .I awk はただちに終了し、成功を意味する終了ス テータスを返します。 .TP .B \-\^\- オプションの終了を意味します。AWK に ``\-'' から始まるオプションではない 引数を与える場合に便利です。 これは主に、他の \*(PX プログラムの多くが引数に対して行 う解釈と一貫性を保つためにあります。 .PP 互換モードでは、他のオプションは不正であるとされるか、無視されます。通 常の実行において、プログラムテキストがコマンドラインに指定されていれば、 不明なオプションは、AWK プログラムに .B ARGV 配列を通して渡されます。これ は、AWK プログラムを ``#!'' 機構を用いて実行する場合に特に便利です。 .SH AWK プログラムの実行 .PP AWK プログラムは、パターンとアクションの組の列と、(もし必要なら)関数定義か らなります。 .RS .PP \fIpattern\fB { \fIaction statements\fB }\fR .br \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements\fB }\fR .RE .PP .I gawk はまず、 .I program-file (複数可)が指定されていればそれから、 .B "\-W source=" の引数から、あるいは、最初のオプションではない引数から プログラムを読み込みます。 .B \-f と .B "\-W source=" オプションは、コマンドラインで複数回指定できます。 .I gawk は、すべての .I program-file とコマンドラインで指定したプログラムを結 合して使用します。新しく作った AWK プログラム一つ一つに AWK 関数のライブラリを埋め込む必要が無いので、この機能はライブラリの構築に 便利です。 また、ライブラリ関数とコマンドラインで指定したプログラムとを混合して使 うことも可能にしています。 .PP 環境変数 .B AWKPATH により、 .B \-f オプションで指定されたファイルを検索するパスを指定できます。 .B AWKPATH が設定されていない場合のデフォルトパスは \fB".:/usr/lib/awk:/usr/local/lib/awk"\fR です。 .B \-f オプションで指定したファイル名が ``/'' を含んでいる場合は、 パス検索は行われません。 .PP .I awk は、 AWK プログラムを以下の順序で実行します。 .RS .TP \w'4.'u+1n 1. .B \-v オプションで指定された変数への代入をすべて行う .TP 2. プログラムを内部形式にコンパイルする .TP 3. (もし存在すれば) .B BEGIN ブロック(複数存在可)を実行する .TP 4. 配列 .B ARGV で指定されたファイルを順に読み、処理を行う(コマンドラインでファイル名が 指定されていなければ、標準入力に対して処理を行う)。 .RE .PP コマンドラインで指定されたファイル名が .IB var = val という形式ならば、それ は変数への代入であると解釈されます。変数 .I var は値 .I val に設定されます (これは、すべての .B BEGIN ブロックを実行したあとに行われます)。コマンドライン での変数の代入は、AWK が入力をフィールドやレコードに分割するためのセパレータ を実行時に変更するのに便利です。また、1つのデータファイルに 対し数回処理を行う必要がある場合、状態をコントロールするのにも便利です。 .PP 配列 .B ARGV の要素に空(\fB""\fR)がある場合、 .I awk はその要素を無視します。 .PP .I awk は、入力された各行に対してマッチする .I パターン が AWK プログラム内にあるかどうかを 検索します。その行にマッチしたパターンすべてについて、それぞれ対応する .I アクション が実行されます。 パターンは、プログラムテキストに出現した順序で検索されます。 .PP 入力がつきると、 .I awk は(もしあれば) .B END ブロック(複数存在可)を実行します。 .SH 変数とフィールド AWK における変数は動的、すなわち、最初に使用されたときに生成されます。 変数の値は、浮動小数か、文字列か、あるいは両方です。変数の用い られ方により変化します。AWK ではまた、1次元配列を利用することができます。 多次元配列 も、擬似的にではありますが、利用可能です。プログラム実行開始時に、 いくつかの定義済み変数が設定されます。 .SS フィールド .PP 入力ファイルから1行を読み込むと、 .I awk はその行を .I フィールド に分割しま す。分割する際には、変数 .B FS の値がフィールドセパレータとして参照されます。 .B FS の値が1文字なら、その 文字を境にフィールドが分割されます。1文字でないなら、 .B FS は正規表現である と解釈されます。特殊な場合として .B FS が単一の空白のときには、フィールドは 連続した空白とタブにより分割されます。変数 .B IGNORECASE (下記参照)の 値は、 .B FS が正規表現の場合、フィールド分割にも影響を与えることに注意してください。 .PP 変数 .B FIELDWIDTHS の値が空白で区切られた数字の列である場合、各フィールドは 固定長であると解釈され、 .I awk は指定された幅ごとにフィールドの 分割を行います。この場合、 .B FS の値は無視されます。 .B FS に新たに値を設定 することにより、この .B FIELDWIDTHS の効果を打ち消し、標準の動作に戻すことができます。 .PP 各フィールドの値は、左から .BR $1 , .B $2 等という名前で参照できます。 .B $0 は 行全体です。フィールドに値を代入することもできます。フィールドは定数だ けでなく、変数によって参照することもできます。以下の例では、入力行の 5 番目のフィールドの値を出力します。 .RS .PP .ft B n = 5 .br print $n .ft R .RE .PP 変数 NF は、自動的にその行のフィールドの数に設定されます。 .PP 存在しないフィールド(すなわち、 .B $NF より右のフィールド)を参照した結果は 空文字列になります。しかしながら、存在しないフィールドへの代入(たとえ ば、 .BR $(NF+2) = 5 )は .B NF の値を増加させ、間のフィールドには空文字が設定されます。 さらに .B $0 の値は、フィールドの値を変数 .B OFS の値で結合したものに再設定されます。 負のフィールド番号への参照は致命的エラーとなります。 .SS 組み込み変数 .PP -AWK の組込み変数は以下のとおりです。 +AWK の組み込み変数は以下のとおりです。 .PP .TP \w'\fBFIELDWIDTHS\fR'u+1n .B ARGC コマンドライン引数の個数( .I awk へのオプションと、プログラム指定は含みま せん)。 .TP .B ARGIND 現在処理中のファイル名が格納されている配列 .B ARGV のインデックス。 .TP .B ARGV コマンドライン引数の配列。配列は、 0 から .B ARGC \- 1 までのインデックスを 持ちます。 .B ARGV の内容を変更することで、入力に用いるファイル名を変 更することができます。 .TP .B CONVFMT 数値の変換フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B ENVIRON 現在の環境変数の値からなる配列。配列は、環境変数名によりインデックスされ 、各要素の値はその環境変数の値です(たとえば、環境変数 .B HOME は \fBENVIRON["HOME"]\fP で参照できます)。本配列に 代入を行っても、 .I awk からリダイレクトや .B system() 関数により実行される プログラムの環境には影響を与えません(これは、将来の .I awk では変更される可能性があります)。 .\" but don't hold your breath... .TP .B ERRNO .B getline のリダイレクト、 .B getline による読み込み、 .B close() 関数の実行時のいずれかにシステムエラーが発生した場合、変数 .B ERRNO にはエラーの内容を示した文字列が設定されます。 .TP .B FIELDWIDTHS 空白で区切られたフィールド長のリスト。もしこの値が設定されていれば、 .I awk は .B FS の値を用いてフィールド分割するかわりに、固定長のフィールド分割を行 います。固定長のフィールド分割機能はまだ実験的なもので、 .I awk が改良されるに従 って意味が変化する可能性があります。 .TP .B FILENAME 現在の入力ファイル名。もし、コマンドラインで入力ファイルが指定されてい なければ、 .B FILENAME の値は ``\-'' です。しかしながら、 .B BEGIN ブロック内では .B FILENAME は未定義です。 .TP .B FNR 現在の入力ファイルにおける入力レコード番号。 .TP .B FS 入力フィールドセパレータ。デフォルトでは単一の空白です。 .TP .B IGNORECASE すべての正規表現において大文字小文字の区別を制御します。もし、 .B IGNORECASE が 0 でない値に設定されていれば、ルールのパターンマッチ、 .B FS によるフィールド分割、 .B ~ と .B !~ による正規表現マッチ、定義済み関数 .BR gsub() , .BR index() , .BR match() , .BR split() , .B sub() において大文字と小文字の違いは無視されます。このため、 .B IGNORECASE が 0 以外の 値なら、 .B /aB/ は \fB"ab"\fP、\fB"aB"\fP、\fB"Ab"\fP、\fB"AB"\fP のいずれにもマッチすることになります。 他のAWK 変数と同様に .B IGNORECASE のデフォルト値は 0 なので、通常は 正規表現において大文字と小文字は区別されます。 .TP .B NF 現在の入力レコードのフィールド数。 .TP .B NR 現在までに読み込んだ入力レコード数の合計。 .TP .B OFMT 数字の出力フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B OFS 出力フィールドセパレータ。デフォルトは空白です。 .TP .B ORS 出力レコードセパレータ。デフォルトは改行です。 .TP .B RS 入力レコードセパレータ。デフォルトは改行です。 .B RS は例外的な変数で、 値の最初の1文字のみがレコード分割に用いられます(これは、将来リリースされる .I awk では変更されているかもしれません)。もし .B RS が空文字列に設定されていたなら、 レコードは空行によって分割されます。この場合、 .B FS の値が何であろうとも、改行はつねにフィールドセパレータとしての役割を 果たします。 .TP .B RSTART .B match() によりマッチした最初の文字の位置。0 はマッチしなかったことを示します。 .TP .B RLENGTH .B match() によりマッチした文字列の長さ。\-1 はマッチしなかったことを示します。 .TP .B SUBSEP 多次元配列を実現する際に用いられる、配列のインデックスを結合する文字。 デフォルト値は \fB"\e034"\fR です。 .SS 配列 .PP 配列は、ブラケット .RB ( [ と .BR ] ) の間の式によってインデックスを指定します。もし式が式 のリスト(式, 式, ...) なら、式の値を変数 .B SUBSEP の値を区切りとして 結合した文字列をインデックスとして用います。これにより、多次元配列を シミュレートしています。たとえば、 .PP .RS .ft B i = "A" ;\^ j = "B" ;\^ k = "C" .br x[i, j, k] = "hello, world\en" .ft R .RE .PP は、文字列 \fB"hello, world\en"\fR を、文字列 \fB"A\e034B\e034C"\fR で インデックスした配列 x の要素に代入しています。 AWK の配列はすべて、文字列によりインデックスを行う連想配列です。 .PP 特殊な演算子 .B in を .B if または .B while ステートメントで用いることによって、あるインデックス値に おける配列の値が定義されているかを調べることができます。 .PP .RS .ft B .nf if (val in array) print array[val] .fi .ft .RE .PP もし、配列が多次元インデックスを持つなら、 .B "(i, j) in array" を用います。 .PP .B in はまた、 .B for ループ中で、配列のすべてのインデックス値について繰り返すために 用いることができます。以下の方法で、配列のすべての要素の値を表示する ことができます。 .PP .RS .ft B .nf for (i in array) print array[i] .fi .ft .RE .PP 配列の要素は、 .B delete ステートメントを用いて削除することができます。 .B delete ステートメントはまた、 配列全体を削除するのにも使えます。 .SS 変数の型と変換 .PP 変数とフィールドは、(浮動小数の)数値または文字列、あるいは両方として 扱われます。 変数の値がどのように解釈されるかは、変数の使われ方によって変化します。 数式中で用いられれば変数は数値として解釈され、文字列として用いられれ ば文字列として解釈されます。 .PP 変数の値を強制的に数値であると解釈させたい場合は、変数に 0 を加えます (var + 0)。文字列と解釈させたい場合は空文字列を結合します(var "")。 .PP 文字列を数値に変換する必要がある場合、変換は .IR atof (3) によって行われます。 数値を文字列に変換する場合は、変数 .B CONVFMT の値をフォーマット文字列として用いて、 .IR sprintf (3) により行われます。AWK ではすべての数値は浮動小数ですが、整数値はつねに整数 として変換が行われます。 .PP よって、以下の場合、 .PP .RS .ft B .nf CONVFMT = "%2.2f" a = 12 b = a "" .fi .ft R .RE .PP 変数 .B b は文字列値 \fB"12"\fR となり、"12.00" とはなりません。 .PP .I gawk は、以下のようにして比較を行います: 2つの変数が数値なら数値として比 較します。もし片方が数値で片方が`数値'文字列なら、数値として比較されます。 片方が数値でない文字列なら、数値のほうが文字列に変換され、文字列として 比較されます。両方とも文字列なら、文字列として比較されます。\*(PX 標準に従う なら、両方とも数値文字列の場合は数値として比較しますが、これは明ら かに間違いです。 .I awk はそのような動作をしません。 .PP 初期化されていない変数は、数値としては 0 を、文字列としては空文字列を持ちます。 .SH パターンとアクション awk は行指向の言語です。まずパターン、次にアクションが続きます。アクショ ンは .B { と .B } で囲みます。パターンまたはアクションは省略することもできます。 もちろん、両方とも 省略してしまっては意味がありません。 パターンがない場合、アクションはすべての入力行に 対して適用されます。省略されたアクションは以下と等価です。 .RS .PP .B "{ print }" .RE .PP これは行全体を出力します。 .PP コメントは ``#'' で始まり、行末まで続きます。空行は、複数ステートメントの 間をあけるのに使うことができます。 通常、ステートメントは改行で終わります。ただし、 以下の記号で行が終わる場合にはこの限りではありません: ``,'', ``{'', ``?'', ``:'', ``&&'', ``||''。 .B do または .B else で終わる行は、ステートメントが自動的に以降 の行へ継続されます。また、改行の直前に ``\e'' を置くことで、 行を継続することができます。この場合、その改行は無視されます。 .PP ``;'' で区切ることにより、1行に複数のステートメントを記述することができ ます。アクション部におけるステートメントだけではなく、 パターンとアクションの対自体も ``;'' で区切って複数置くことができます。 .SS パターン AWK のパターンは、以下のうちのいずれかです。 .PP .RS .nf .B BEGIN .B END .BI / "regular expression" / .I "relational expression" .IB pattern " && " pattern .IB pattern " || " pattern .IB pattern " ? " pattern " : " pattern .BI ( pattern ) .BI ! " pattern" .IB pattern1 ", " pattern2 .fi .RE .PP .B BEGIN と .B END は特殊なパターンであり、入力と比較されることはありません。すべての .B BEGIN パターンに対応したアクション部は結合されます。結合されたアクションは すべての入力ファイルの読み込みに先立って実行されます。同様にすべての .B END ブロックは結合され、すべての入力ファイルの処理後(あるいは、exit ステートメント が実行されたとき)に実行されます。 .B BEGIN と .B END はパターン式内で他のパターンと混ぜて使うことはできません。また、 .B BEGIN と .B END パターンはアクション部を省略することができません。 .PP .BI / "regular expression" / パターンでは、正規表現にマッチした入力行に対してアクション が実行されます。正規表現は .IR egrep (1) と同じものが使えます。あとに要約を示します。 .PP 関係式では、後述のアクションについての節で示す演算子を用いることが できます。 これらは概して、特定のフィールドが正規表現にマッチするかどうかを 調べるために用いられます ($2 ~ /foo/ 等)。 .PP 演算子 .BR && , .BR || , .B ! は、それぞれ C 言語での論理AND、論理OR、論理NOT と等価です。 C 言語と同様に、評価値が確定した時点で以降の評価を打ち切ります。 これらは複数のパターン式を結合するために使用されます。 他のプログラミング言語と同様、括弧によって評価順序を変更することができます。 .PP ?\^: 演算子は C 言語のものと同様です。もし、最初のパターンが真なら、 テストのために 2 番目のパターンが用いられ、そうでなければ 3 番目のパターンが 用いられます。2 番目と 3 番目のパターンのどちらかだけが評価されます。 .PP .IB pattern1 ", " pattern2 形式は .I 範囲パターン と呼ばれます。範囲パターンは、 .I pattern1 にマッチするレコードから、 .I pattern2 にマッチする行レコードまでのすべてにマッチします。 この形式は、他のパターン式と混合して用いることはできません。 .SS 正規表現 awk の正規表現は .I egrep のものと同様に、拡張された正規表現です。 以下の構成要素から成り立っています。 .TP \w'\fB[^\fIabc...\fB]\fR'u+2n .I c メタ文字ではない .I c にマッチする。 .TP .I \ec リテラル文字 .I c にマッチする。 .TP .B . 改行以外の任意の一文字にマッチする。 .TP .B ^ 行頭、または文字列の先頭にマッチする。 .TP .B $ 行末、または文字列の終端にマッチする。 .TP .BI [ abc... ] abc... のいずれか一文字にマッチする(文字クラス)。 .TP .BI [^ abc... ] abc... と改行を除く任意の一文字にマッチする(否定文字クラス)。 .TP .IB r1 | r2 .I r1 または .I r2 にマッチする(選言)。 .TP .I r1r2 .I r1 の直後に .I r2 が続くものにマッチする(結合)。 .TP .IB r + .I r の 1 回以上の繰り返しにマッチする。 .TP .IB r * .I r の 0 回以上の繰り返しにマッチする。 .TP .IB r ? .I r の 0 回または 1 回の繰り返しにマッチする。 .TP .BI ( r ) .I r にマッチする(グループ化)。 .PP 文字列定数中で用いることができるエスケープシーケンス(後述参照)は、 正規表現中でも使用することができます。 .SS アクション アクションは、ブレース .B { と .B } で囲みます。アクションは通常の代入、条件文、 ループ文等からなります。演算子、制御文、入出力文は C 言語とほぼ同様です。 .SS 演算子 .PP AWK での演算子を、優先順位の低いものから順に示します。 .PP .TP "\w'\fB*= /= %= ^=\fR'u+1n" .PD 0 .B "= += \-=" .TP .PD .B "*= /= %= ^=" 代入。絶対的な代入 .BI ( var " = " value ) と演算子代入(その他の形式)がサポートされています。 .TP .B ?: C 言語の条件式と同様です。 .IB expr1 " ? " expr2 " : " expr3\c の形式で使います。もし .I expr1 が真なら式の値は .I expr2 になり、そうでなければ .I expr3 になります。 .I expr2 か .I expr3 のうち片方のみが評価されます。 .TP .B || 論理 OR。 .TP .B && 論理 AND。 .TP .B "~ !~" 正規表現マッチ、否定のマッチ。 .B 注意: .B ~ と .B !~ の左辺に正規表現定数 .RB ( /foo/ 等) を用いてはいけません。正 規表現定数は右辺にのみ置くことができます。式 .BI "/foo/ ~ " exp は \fB(($0 ~ /foo/) ~ \fIexp\fB)\fR と等価であり、これは通常意図するものとは異なります。 .TP .PD 0 .B "< >" .TP .PD 0 .B "<= >=" .TP .PD .B "!= ==" 通常の関係演算子。 .TP .I blank 文字列の結合。 .TP .B "+ \-" 加算、減算。 .TP .B "* / %" 乗算、除算、剰余。 .TP .B "+ \- !" 単項プラス、単項マイナス、論理否定。 .TP .B ^ べき乗(\fB**\fR も同様の意味で使用できる。また \fB**=\fR 代入演算子も存在する)。 .TP .B "++ \-\^\-" インクリメント、デクリメント。前置も後置も可能。 .TP .B $ フィールド参照 .SS 制御ステートメント .PP 制御ステートメントは以下のとおりです。 .PP .RS .nf \fBif (\fIcondition\fB) \fIstatement\fR [ \fBelse\fI statement \fR] \fBwhile (\fIcondition\fB) \fIstatement \fR \fBdo \fIstatement \fBwhile (\fIcondition\fB)\fR \fBfor (\fIexpr1\fB; \fIexpr2\fB; \fIexpr3\fB) \fIstatement\fR \fBfor (\fIvar \fBin\fI array\fB) \fIstatement\fR \fBbreak\fR \fBcontinue\fR \fBdelete \fIarray\^\fB[\^\fIindex\^\fB]\fR \fBdelete \fIarray\^\fR \fBexit\fR [ \fIexpression\fR ] \fB{ \fIstatements \fB} .fi .RE .SS 入出力ステートメント .PP 入出力ステートメントは以下のとおりです。 .PP .TP "\w'\fBprintf \fI書式, 式の列\fR'u+1n" .BI close( filename ) ファイルまたはパイプ(下記参照)をクローズします。 .TP .B getline 次のレコードを .B $0 に読み込みます。 .BR NF , .BR NR , .B FNR が設定されます。 .TP .BI "getline <" file ファイル .I file から次のレコードを .B $0 に読み込みます。 .B NF が設定されます。 .TP .BI getline " var" 次のレコードを変数 .I var に読み込みます。 .BR NF , .B FNR が設定されます。 .TP .BI getline " var" " <" file ファイル .I file から次のレコードを変数 .I var に読み込みます。 .TP .B next 現在のレコードに対する処理を終了し、次のレコードを読み込み、AWK プログ ラムの最初のパターンから処理を開始します。 C 言語の continue と類似した意味を持ちます。 もし、入力データの終端に達した場合、 .B END ブロックが存在すれば実行されます。 .TP .B "next file" 現在の入力ファイルに対する処理を終了し、次の入力ファイルからレコードを 読み込みます。 .B FILENAME が更新され、 .B FNR が 1 にリセットされ、AWK プログラムの 最初のパターンから処理が開始されます。入力データの終端に達したときは、 もし存在すれば、 .B END ブロックが実行されます。 .TP .B print 現在のレコードを出力します。 .TP .BI print " expr-list" 式を出力します。各式は .B OFS の値で区切られます。出力されるレコードの最後に は .B ORS の値が付加されます。 .TP .BI print " expr-list" " >" file 式をファイル .I file に出力します。各式は .B OFS の値で区切られます。出力されるレコードの 最後には .B ORS の値が付加されます。 .TP .BI printf " fmt, expr-list" 書式付き出力です。 .TP .BI printf " fmt, expr-list" " >" file ファイル .I file への書式付き出力です。 .TP .BI system( cmd-line ) コマンド .I cmd-line を実行し、終了ステータスを返します(\*(PX に対応しない システムでは使用できない場合があります)。 .PP その他の形式のリダイレクトとして以下のものが利用可能です。 .B print と .B printf に対して、 .BI >> file を指定すると出力はファイル .I file に追加され、 .BI | " command" は出力をパイプに対して行います。同様に、 .IB command "| getline" はコマンドの出力から .B getline を行ないます。 .B getline はファイル終端では 0 を、エラー時には \-1 を返します。 .SS \fIprintf\fP\^ ステートメント .PP AWK での .B printf ステートメントと .B sprintf() 関数(後述参照)は、以下の変換指定書式を受け付けることができます。 .TP .B %c 1つの \s-1ASCII\s+1 文字。 .B %c に対応する引数が数値なら、その値を \s-1ASCII\s+1 コードとみなし て文字に変換します。そうでなければ、引数は文字列であると解釈され、その1 文字目が出力されます。 .TP .B %d 10進数(整数部分)。 .TP .B %i .B %d と同じです。 .TP .B %e .B [-]d.ddddddE[+-]dd という形式の浮動小数。 .TP .B %f .B [-]ddd.dddddd という形式の浮動小数。 .TP .B %g .B %e と .B %f の短い方の形式の浮動小数。余計な 0 は省略されます。 .TP .B %o 符号なしの 8 進数(整数)。 .TP .B %s 文字列。 .TP .B %x 符号なしの 16 進数(整数)。 .TP .B %X .B %x と同様。ただし、 .B abcdef のかわりに .B ABCDEF を用います。 .TP .B %% 単一の文字 .B % 。引数は使用しません。 .PP .B % と上記のコントロール文字との間にオプショナルな追加のパラメータを置く ことができます。以下にそれらを示します。 .TP .B \- 左寄せ。 .TP .I width フィールドが指定した幅 .I width になるように拡張されます。もし、 .I width が 0 で始まる数値の場合、 フィールドは 0 によって拡張されます。さもなければ、空白で拡張されます。 これは数値ではない出力に対しても適用できます。 .TP .BI . prec 文字列の最大長、または、小数点以下の桁数を指定します。 .PP \*(AN C の .B printf() の動的な幅 .I width と精度 .I prec の指定機能が使用できます。幅または精 度の指定部分に .B * を指定することで、その値を .B printf または .B sprintf() への引数で指定できます。 .SS 特殊ファイル名 .PP 入出力リダイレクトを行う場合、 .I awk が内部で解釈する特殊なファイル名があります。 これらのファイル名により、親プロセス(通常はシェルです)から受け継いだ ファイルディスクリプタを用いて入出力を行ったり、実行中の .I awk プロセスに関する情報を得ることができます。 特殊ファイル名は以下のとおりです。 .TP \w'\fB/dev/stdout\fR'u+1n .B /dev/pid 現在の .I awk プロセスのプロセスID(10進数で、最後に改行が付きます)を 読み込むことができます。 .TP .B /dev/ppid 親プロセスのプロセスID(10進数で、最後に改行が付きます)を 読み込むことができます。 .TP .B /dev/pgrpid 現在の awk プロセスのプロセスグループ ID(10進数で、最後に改行が付きます) を読み込むことができます。 .TP .B /dev/user このファイルを読むことで、改行で終わる単一のレコードが得られます。 各フィールドは空白で区切られています。 .B $1 は .IR getuid (2) システムコールの値、 .B $2 は .IR geteuid (2) システムコールの値、 .B $3 は .IR getgid (2) システムコールの値、$4 は .IR getegid (2) システムコールの値です。もし、さらにフィールドがあれば、 それは .IR getgroups (2) システムコールが返すグループ ID のリストです。 全てのシステムで複数のグループがサポートされているわけではありません。 .TP .B /dev/stdin 標準入力。 .TP .B /dev/stdout 標準出力。 .TP .B /dev/stderr 標準エラー出力。 .TP .BI /dev/fd/\^ n オープンされたファイルディスクリプタ .I n に対応しているファイル。 .PP エラーメッセージを出力するには、以下の方法が便利です。 .PP .RS .ft B print "You blew it!" > "/dev/stderr" .ft R .RE .PP もしこの機能が無かったら、次のようにするしかないところです。 .PP .RS .ft B print "You blew it!" | "cat 1>&2" .ft R .RE .PP これらのファイル名は、コマンドラインのデータファイル指定で使うこともできます。 .SS 数値関数 .PP AWK は以下の定義済み数値関数を持っています。 .PP .TP \w'\fBsrand(\^\fIexpr\^\fB)\fR'u+1n .BI atan2( y , " x" ) .I y/x の逆正接(ラジアン単位)。 .TP .BI cos( expr ) 余弦(与える値はラジアン)。 .TP .BI exp( expr ) 指数関数。 .TP .BI int( expr ) 整数への切捨て。 .TP .BI log( expr ) 自然対数。 .TP .B rand() 0 から 1 の間の乱数。 .TP .BI sin( expr ) 正弦(与える値はラジアン)。 .TP .BI sqrt( expr ) 平方根。 .TP .BI srand( expr ) 式 .I expr の値を乱数生成関数の種として用います。式が指定されなかった場合は、 時刻が用いられます。直前の種の値を返します。 .SS 文字列関数 .PP AWK は以下の定義済み文字列関数を持っています。 .PP .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgsub(\fIr\fB, \fIs\fB, \fIt\fB)\fR 文字列 .I t 中で正規表現 .I r にマッチした部分をすべて .I s に置換します。置換の個数を返します。 .I t を指定しなかった場合は .B $0 が用いられます。 .TP .BI index( s , " t" ) 文字列 .I s 中に含まれる文字列 .I t の位置を返します。 .I t が含まれていない場合は 0 を返します。 .TP .BI length( s ) 文字列 .I s の長さを返します。 .I s を指定しなかった場合には .B $0 の長さを返します。 .TP .BI match( s , " r" ) 文字列 .I s 中で正規表現 .I r にマッチする位置を返します。マッチしない場合は 0 を 返します。 .B RSTART と .B RLENGTH の値が設定されます。 .TP \fBsplit(\fIs\fB, \fIa\fB, \fIr\fB)\fR 文字列 .I s を正規表現 .I r を用いて分割し、配列 .I a に格納します。 フィールド数を返します。 .I r が省略され た場合は .B FS が用いられます。配列 .I a の内容は、分割前にクリアされます。 .TP .BI sprintf( fmt , " expr-list" ) 書式 .I fmt に従って .I exp-list を整形表示し、結果の文字列を返します。 .TP \fBsub(\fIr\fB, \fIs\fB, \fIt\fB)\fR .B gsub() と似てますが、最初にマッチした文字列のみが置換されます。 .TP \fBsubstr(\fIs\fB, \fIi\fB, \fIn\fB)\fR 文字列 .I s の .I i 文字目から始まる .I n 文字の部分文字列を返します。 .I n が省略された場合、 .I i 文字目以降の部分文字列が返されます。 .TP .BI tolower( str ) 文字列 .I str をコピーし、大文字をすべて小文字に変換したものを返します。 アルファベットでない文字は変化しません。 .TP .BI toupper( str ) 文字列 .I str をコピーし、小文字をすべて大文字に変換したものを返します。 アルファベットでない文字は変化しません。 .SS 時間関数 .PP タイムスタンプを含んだログファイルの処理は AWK プログラムの主な使い道の1つですから、 .I awk はタイムスタンプを取り出したり、フォーマット するための 2 つの関数を提供します。 .PP .TP "\w'\fBsystime()\fR'u+1n" .B systime() エポックからの経過秒数を返します (\*(PX システムでは、エポックは UTC で 1970 年 1 月 1 日 0:00 です)。 .TP \fBstrftime(\fIformat\fR, \fItimestamp\fB)\fR 書式 .I format に従って .I timestamp をフォーマットします。 .I timestamp は .B systime() が返す値と同じ形式でなければなりません。 .I timestamp が省略された 場合、現在の .B systime() の値が用いられます。利用可能なフォーマットにつ いては、\*(AN C の .B strftime() 関数の仕様を参照して下さい。パブリックドメイン な .IR strftime (3) とそのマニュアルページが .I awk とともに配布されています。もし、 .I awk を作成するためにその .B strftime を用いた場合は、そのマニュアルに記述さ れている変換書式が .I awk でも利用可能です。 .SS 文字列定数 .PP AWK での文字列定数は、ダブルクォート(\fB"\fR)に狭まれた文字の列です。 文字列内では、C 言語のようにいくつかの .I エスケープシーケンス が使えます。 .PP .TP \w'\fB\e\^\fIddd\fR'u+1n .B \e\e バックスラッシュそのもの。 .TP .B \ea 「警告」文字。通常は \s-1ASCII\s+1 \s-1BEL\s+1 文字です。 .TP .B \eb バックスペース。 .TP .B \ef 改ページ。 .TP .B \en 改行。 .TP .B \er 復帰(キャリッジリターン)。 .TP .B \et 水平タブ。 .TP .B \ev 垂直タブ。 .TP .BI \ex "\^hex digits" .B \ex に続く 16 進数で表現された文字。\*(AN C と同様に、 .B \ex に続くすべての 16 進数字 はエスケープシーケンスの一部であるとみなされます。 (この機能によりコミッティによる言語デザインが分かります。) たとえば、\fB"\ex1B"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e ddd 1桁か2桁か3桁の 8 進数で表現された文字。たとえば、 \fB"\e033"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e c 文字 c そのもの。 .PP エスケープシーケンスは正規表現定数内でも用いることができます(たとえば、 .B "/[\ \et\ef\en\er\ev]/" は空白文字にマッチします)。 .SH 関数 AWK では関数を以下のようにして定義します。 .PP .RS \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements \fB}\fR .RE .PP 関数は、アクション部から呼び出されたときに実行されます。 関数呼び出しにおいて与えられた実引数が、関数宣言における仮引数に 受け渡されます。 このとき配列の場合は参照渡しが行われ、他の変数の場合は値渡しで行われます。 .PP 元々 AWK に関数は備わっていませんでしたので、局所変数の機構はあまり スマートではありません。 局所変数は引数リストの余分な引数として宣言します。局所変数と関 数引数を区別するため、余分な空白で区切るのが慣習です。たとえば、以下のよ うにします。 .PP .RS .ft B .nf function f(p, q, a, b) { # a と b は局所変数 ..... } /abc/ { ... ; f(1, 2) ; ... } .fi .ft R .RE .PP 関数呼び出しにおける左括弧は、空白を狭まずに関数名の直後に 置かなければいけません。 これは、文字列結合演算子との曖昧さを生じさせないために必要です。 この制限は、上述の組み込み関数にはあてはまりません。 .PP 関数は、他の関数を呼び出したり、自分自身を再帰的に呼び出すことができます。 局所変数として用いられる関数引数は、関数起動時に空文字列および 0 に初期化されます。 .PP .B function のかわりに .B func を用いることができます。 .SH 例 .nf ``/etc/passwd'' から全ユーザのログイン名を取り出し、ソートして出力する。 .ft B BEGIN { FS = ":" } { print $1 | "sort" } .ft R ファイルの行数を数える。 .ft B { nlines++ } END { print nlines } .ft R 行番号をつける。 .ft B { print FNR, $0 } .ft R 全ファイルを通した行番号をつける。 .ft B { print NR, $0 } .ft R .fi .SH 関連項目 .IR egrep (1), .IR getpid (2), .IR getppid (2), .IR getpgrp (2), .IR getuid (2), .IR geteuid (2), .IR getgid (2), .IR getegid (2), .IR getgroups (2) .PP .IR "The AWK Programming Language" , Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988. ISBN 0-201-07981-X. .PP .IR "The AWK Manual" , Edition 0.15, published by the Free Software Foundation, 1993. .SH POSIX 互換 .I awk は最新版の \*(UX .I awk との互換性だけでなく、\*(PX 標準との互換性も追求しています。 このため .I awk には以下のような機能が取り入れられています。 これらの機能は AWK 本には述べられていませんが、 System V Release 4 および \*(PX 標準の .I awk が有している機能です。 .PP プログラム実行前に変数代入を行なう .B \-v オプションは新しい物です。 AWK 本によれば、コマンドラインで指定された変数代入は .I awk が引数をファイル名としてオープンする際に行なわれることになります。つまり これは .B BEGIN ブロックの実行後です。しかしながら初期の頃の実装では、引数の中でファイル名に 先立って変数代入が指定されている場合には、代入は .B BEGIN ブロック実行の .I 前に 行われていました。そしてアプリケーションは、この「仕様」に依存する ようになりました。 .I awk がそのドキュメントに合うように直された時、昔の動作に依存している アプリケーションの便宜を図るためにこのオプションが加えられました。 (この仕様は AT&T および GNU の開発者達によって合意されました。) .PP 独自機能のための .B \-W オプションは \*(PX 標準に従ったものです。 .PP 引数の列に特別なオプション ``\fB\-\^\-\fP'' を指定すると、 .I awk はそこがオプションの終わりであると解釈します。 互換モードにおいては未定義オプションは警告が出力され、それ以外のものは 無視されます。 通常の実行においては残りの引数は AWK プログラムに引き渡されます。 .PP AWK 本は .B srand() の返り値を定義していません。 System V Release 4 版の \*(UX .I awk (と \*(PX 標準) では、その関数が使っている種を返します。 したがって .I awk における .B srand() も現在の種を返すようにしてあります。 .PP その他にも以下のような新機能があります。 .B \-f オプションの複数回使用 (MKS .IR awk に倣いました); .B ENVIRON 配列; エスケープシーケンス .B \ea と .B \ev ( .I awk で最初に実装され、AT&T の .I awk にフィードバックされました); 組み込み関数 .B tolower() と .B toupper() (AT&T に倣いました); .B printf における \*(AN C 変換指定 (AT&T 版で最初に実装されました)。 .SH GNU 拡張 .I gawk は \*(PX .I awk に対していくつかの拡張が行なわれています。 この節ではそれらについて解説します。 .B "\-W compat" オプション付きで .I awk を起動することによって、 ここで述べられている拡張機能をすべて禁止することができます。 .PP .I awk が持つ以下の機能は \*(PX .I awk では使用できません。 .RS .TP \w'\(bu'u+1n \(bu エスケープシーケンス .B \ex 。 .TP \(bu 関数 .B systime() および .B strftime() 。 .TP \(bu 入出力リダイレクトで利用可能な特殊ファイル名。 .TP \(bu 変数 .B ARGIND および .B ERRNO は特殊変数ではありません。 .TP \(bu 変数 .B IGNORECASE とその副作用は利用できません。 .TP \(bu 変数 .B FIELDWIDTHS と固定長フィールド分割。 .TP \(bu .B \-f オプションで指定されたファイル名について行われるパス検索。 よって、環境変数 .B AWKPATH は特殊な変数ではありません。 .TP \(bu 現在の入力ファイルに対する処理を終わらせるために使用される .B "next file" 。 .TP \(bu 配列全体を削除するために使用される .BI delete " 配列" 。 .RE .PP AWK 本は関数 .B close() の返り値を定義していません。 .I gawk の .B close() は、ファイルやパイプをクローズする際に呼び出す .IR fclose (3)、 や .IR pclose (3)、 からの返り値を返します。 .PP オプション .B "\-W compat" 付きで .I awk を起動し .B \-F オプションへの引数 .I fs として ``t'' を与えた場合に、 .B FS の値はタブ文字に設定されます。 これは少々見苦しい特殊事例ですので、デフォルトの動作としては 採用されていません。 .B "\-W posix" を指定した場合にも、この動作は行なわれません。 .ig .PP If .I awk was compiled for debugging, it will accept the following additional options: .TP .PD 0 .B \-Wparsedebug .TP .PD .B \-\^\-parsedebug Turn on .IR yacc (1) or .IR bison (1) debugging output during program parsing. This option should only be of interest to the .I awk maintainers, and may not even be compiled into .IR awk . .. .SH 歴史的機能 .I awk は歴代の AWK の実装にあった二つの機能を備えています。 一つめとして、組み込み関数 .B length() は引数無しで呼び出せるだけでなく、さらに括弧無しでも呼び出せます! したがって .RS .PP .ft B a = length .ft R .RE .PP は以下の2例と同じです。 .RS .PP .ft B a = length() .br a = length($0) .ft R .RE .PP \*(PX 標準ではこの機能は ``deprecated'' と注意書きされており、 .I awk ではコマンドラインで .B "\-W lint" を指定した場合に、この機能の使用に対して警告を出力します。 .PP もう一つは、 .BR while 、 .BR for 、 .B do ループ本体の外でも .B continue ステートメントを使用できるという機能です。 伝統的な AWK の実装では、このように使用した .B continue ステートメントを .B next ステートメントと等価なものとして扱ってきました。 .I gawk では .B "\-W posix" が指定されていない場合に、この機能を使うことができます。 .SH 環境変数 環境に .B POSIXLY_CORRECT が存在する場合には、 .I awk はコマンドラインで .B \-\-posix が指定されている時と全く同じ動作をします。 このとき .B \-\-lint が指定されていると .I awk はこの作用についての警告メッセージを出力します。 .SH バグ コマンドラインでの変数代入機能を使用するには、変数への代入を直接 コマンドラインに書けばよく、 .B \-F オプションをつける必要はありません。 このオプションは昔の .I awk との互換性のためだけに残されています。 .PP ファイル .B /dev/fd および .BR /dev/stdin 、 .BR /dev/stdout 、 .B /dev/stderr を実際にサポートしているシステムでの .I awk からは、それらがないシステムとは違った出力が得られるかもしれません。 .I awk はそれらのファイルを内部で解釈する際に標準出力への出力を .B /dev/stdout への出力と同期させますが、それらのファイルを持つシステムでは 出力はそれぞれ異なるファイルへ向けられます。 利用者の方で気を付けるようにしてください(Caveat Emptor)。 .SH バージョン情報 このマニュアルは .I awk バージョン 2.15 について書かれています。 .PP バージョン 2.11 にあったオプション .BR \-c 、 .BR \-V 、 .BR \-C 、 .ig .BR \-D 、 .. .BR \-a 、 .B \-e は、バージョン 2.15 以降では使用できません。 バージョン 2.16 のマニュアルでは、この事実の記述さえ無くなるでしょう。 .SH 作者 \*(UX .I awk の最初のバージョンは、AT&T ベル研究所の Alfred Aho と Peter Weinberger および Brian Kernighan によって設計、実装されました。 Brian Kernighan はその保守と改良を続けています。 .PP Free Software Foundation の Paul Rubin と Jay Fenlason が、Seventh Edition \*(UX で配布された最初のバージョンの .I awk と互換性を持つように .I gawk を書きました。 John Woods は数々のバグ修正を送って下さいました。 David Trueman は、Arnold Robbins が送って下さった内容をもとに、 .I gawk を新バージョンの \*(UX .I awk 互換にしました。 .PP DOS への最初の移植は Conrad Kwok と Scott Garfinkle によって 行なわれました。 現在は Scott Deifik が DOS 版の保守をしています。 Pat Rankin は VMS への移植を行ない、Michal Jaegermann は Atari ST への 移植を行ないました。 OS/2 への移植は Kai Uwe Rommel が Darrel Hankerson の助けを借りて 行ないました。 .SH 謝辞 ベル研究所の Brian Kernighan はテストおよびデバッグの間、貴重な助力を 提供して下さいました。 感謝致します。 diff --git a/ja_JP.eucJP/man/man1/chpass.1 b/ja_JP.eucJP/man/man1/chpass.1 index 7543a7d24e..6411012672 100644 --- a/ja_JP.eucJP/man/man1/chpass.1 +++ b/ja_JP.eucJP/man/man1/chpass.1 @@ -1,405 +1,414 @@ .\" Copyright (c) 1988, 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. .\" .\" @(#)chpass.1 8.2 (Berkeley) 12/30/93 -.\" %Id: chpass.1,v 1.7.2.3 1998/07/16 23:50:59 jkh Exp % +.\" %Id: chpass.1,v 1.7.2.4 1998/08/14 03:38:01 thepish Exp % .\" jpman %Id: chpass.1,v 1.2 1997/03/31 14:06:36 horikawa Stab % .\" .Dd December 30, 1993 .Dt CHPASS 1 .Os .Sh 名称 .Nm chpass, chfn, chsh, ypchpass, ypchfn, ypchsh .Nd ユーザデータベース内の情報を編集する .Sh 書式 .Nm chpass .Op Fl a Ar list .Op Fl p Ar encpass .Op Fl s Ar newshell .Op user .Sh 解説 .Nm chpass は .Ar user もしくはデフォルトでは実行したユーザのユーザデータベースの情報を変更します。 情報はフォーマットされ、必要な部分をエディタで変更します。 .Pp ユーザが変更することができる情報だけが表示されます。 .Pp オプションとしては、以下のものがあります: .Bl -tag -width flag .It Fl a スーパユーザは、ユーザデータベースのエントリを .Xr passwd 5 で定義されたフォーマットで引数として直接指定できます。 この引数はコロン(``:'')で区切られたリストであり、 空きの部分があっても許されますが、 すべてのフィールドをリストにしなければなりません。 .It Fl p スーパユーザは、暗号化されたパスワードフィールドを .Xr crypt 3 で用いられているフォーマットで引数として直接指定することができます。 .It Fl s .Fl s オプションは、ユーザのシェルを .Ar newshell に変更します。 .El .Pp 表示されるエントリには以下のものがあります: .Pp -.Bl -tag -width "Home Directory:" -compact -offset indent +.Bl -tag -width "Other Information:" -compact -offset indent .It Login: ユーザのログイン名 .It Password: ユーザの暗号化されたパスワード .It Uid: ユーザの ID .It Gid: ユーザのグループ ID .It Change: パスワードの変更時間 .It Expire: アカウントの有効期限 .It Class: ユーザの一般的な分類 .It Home Directory: ユーザのホームディレクトリ .It Shell: ユーザのログインシェル .It Full Name: ユーザの実際の名前 .It Location: ユーザが通常いる場所 .It Home Phone: ユーザの自宅の電話番号 .It Office Phone: ユーザのオフィスの電話番号 +.It Other Information: +ユーザに関するローカル定義情報 .El .Pp .Ar login フィールドは計算機にアクセスするときに使われるユーザ名です。 .Pp .Ar password フィールドはユーザの暗号化されたパスワードが収められています。 .Pp .Ar uid フィールドは .Ar login フィールドと関連した番号です。ファイルのアクセスを制御するために、 どちらのフィールドもシステム (しばしば、複数のシステム) の中で 一意である必要があります。 .Pp 複数のエントリが同一のログイン名や同一のユーザ ID を持つことは可能ですが、 そのようにすることは通常誤りです。 これらのファイルを操作する手順では、 それらの複数のエントリ内から無作為に選んだものの一つだけを返すでしょう。 .Pp .Ar group フィールドはユーザがログイン時に所属するグループです。BSD が複数の グループを採用してから( .Xr groups 1 参照) このフィールドはほとんど意味がありません。 このフィールドは番号やグループ名( .Xr group 5 参照) のどちらかが記述されます。 .Pp .Ar change フィールドはパスワードが変更されているべき日付です。 .Pp .Ar expire フィールドはアカウントの満了する日付です。 .Pp .Ar change と .Ar expire の両方のフィールドは ``month day year'' の形式で入力し、 .Ar month は、英語の月の名前 (はじめの3文字でも十分です) で、 .Ar day は、その月の中の日で、 .Ar year は、その年です。 .Pp .Ar class フィールドは現在では使われてません。近い将来には、 .Xr termcap 5 形式のユーザ属性のデータベースへの手がかりとなるでしょう。 .Pp ユーザの .Ar home directory はユーザがログイン時にいる場所への絶対 UNIX パス名です。 .Pp .Ar shell フィールドはユーザの好むコマンドインタプリタです。 もし .Ar shell フィールドが空であれば、ボーンシェル .Pa /bin/sh であると仮定します。 ログインシェルを変更するときに、スーパユーザではないユーザは、 非標準シェルから、または非標準シェルへの変更は許されていません。 非標準シェルとは .Pa /etc/shells で見つけられないシェルのことです。 .Pp -最後の 4 つのフィールドはユーザの -.Ar 実際の名前 , オフィスの場所 -そして +最後の 5 つのフィールドはユーザの +.Ar 実際の名前 +、 +.Ar オフィスの場所 +、 .Ar 職場 と .Ar 家で使う電話 -番号の保管をしています。 +番号、そして +.Ar その他の情報 +を保管しています。 +.Ar その他の情報 +は、コンマで区切った単一文字列であり、追加の gcos フィールドを表現します。 +(典型的にはサイト固有のユーザ情報のために使用します)。 .Pp 一度情報が確認されたら .Nm chpass はユーザデータベースを更新するために .Xr pwd_mkdb 8 を用います。 .Sh 環境変数 環境変数 EDITOR を設定して他のエディタを指定している場合を除き、 .Xr vi 1 エディタが使われます。エディタが終了すると、その情報は再度読み込まれ、 ユーザデータベースを変更するための情報とします。 ユーザの情報を変更できるのは、そのユーザかスーパユーザのみです。 .Sh NIS との相互作用 いくつかの制限が適用されますが、 .Nm chpass を NIS と同時に使うこともできます。現在 .Nm chpass が .Xr rpc.yppasswdd 8 を通じて NIS のパスワードマップ中で変更できるのは、 通常はユーザのパスワード、シェル、GECOS フィールドだけです。 NIS マスタサーバ上でスーパユーザによって起動された場合を除き、 .Nm chpass (同様に .Xr passwd 1 ) は、ユーザ情報の変更および新レコードの追加のために .Xr rpc.yppasswdd 8 サーバを使用出来ません。 なお、 .Xr rpc.yppasswdd 8 は、どのような変更を行う前にもパスワード認証を要求します。 パスワード無しで変更要求できるユーザは NIS マスタサーバ上のスーパユーザだけです; 他の全てのユーザはパスワードを入力する必要があります。 他の全てのユーザには NIS クライアント(および NIS スレーブサーバ)上の ルート権限を持つユーザも含まれます。 (NIS マスタサーバ上のスーパユーザがこの制約をバイパスできる理由は、 主に簡便さのためです: NIS マスタサーバへのルートアクセス権限をもつユーザは 既に NIS マップを更新するための権限を持っています。 それにもかかわらずマップソースファイルを手で編集することは面倒です。 .Pp 注: これらの例外が適用されるのは NIS マスタサーバが FreeBSD システムの時だけです。) .Pp その結果として、上述の例外を除き、NIS 環境で .Nm chpass を使う場合には以下の制限が適用されます: .Bl -enum -offset indent .It .Pa シェルと GECOS 情報だけを変更できます。 たとえ .Nm chpass がスーパユーザによって起動された場合であってもです。 他のフィールドの変更がサポートされるようになっても、 他の NIS システムとの互換性の問題を引き起こすでしょう。 スーパユーザがあるエントリを編集している時に、 他のフィールドにデータを書いても、余分な情報として (パスワードは例外 -- 以下を参照してください) だまって廃棄されるでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは、 任意のフィールドの変更が許されています。 .Pp .It .Pa パスワード認証が要求されます。 どのような変更を行う前にも .Nm chpass はユーザの NIS パスワードを要求します。もしパスワードが間違っていたら、 どのような変更も行われません。 .Pp 例外: NIS マスタサーバ上のスーパユーザはパスワード無しに変更要求できます。 (スーパユーザは、後述するように .Fl o フラグを指定する事によりこの仕様を無効にする事が選択できます。) .It .Pa 新しいレコードのローカルパスワードデータベースへの追加は勧められません。 NIS が動作しているときに、管理者が .Nm chpass によって新しいレコードをローカルのパスワードデータベースに追加可能です。 しかし、新しいレコードがマスタパスワードファイルの最後、 通常は NIS の特別な '+' エントリの後に追加されるため、 いくつかの混乱を招きかねません。 .Xr vipw 8 を使ってローカルのパスワードファイルを変更するべきです。 .Pp NIS マスタサーバ上のスーパユーザによる NIS パスワードマップへの新レコードの追加が許可されるのは、 .Xr rpc.yppasswdd 8 サーバが .Fl a フラグ付で起動された場合、すなわち追加を許可して起動された場合のみです (通常は追加を拒否します)。 .Nm chpass はデフォルトではローカルのパスワードデータベースを更新しようとします; NIS マップを変更する場合には chpass を .Fl y フラグ付で起動してください。 .It .Pa パスワードの変更は許可されていません。 ユーザが、自分の NIS のパスワードを変更するときには .Xr passwd 1 か .Xr yppasswd 1 を使うべきです。スーパユーザは新しいパスワードを指定することを許され ています(たとえ、``Password:'' フィールドがエディタのテンプレートに あらわれていなくても、スーパユーザは手動で加えることができます) 。 しかしながら、スーパユーザであってもユーザの元のパスワードがなければ .Xr rpc.yppasswdd 8 が NIS マップの更新を拒否するでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは .Nm chpass を使用して、ユーザの NIS パスワードを変更する事が許されています。 .El .Pp .Nm chpass が NIS をサポートしてコンパイルされたときに、数個の特別なフラグが有効 になります: .Bl -tag -width flag .It Fl l .Fl l フラグは、ローカルと NIS の両方のデータベースにユーザが存在していても、 ユーザのパスワード情報のローカルのコピーを修正することを .Nm chpass に強制します。 .It Fl y このフラグは .Fl l と反対の効果があります。もし NIS が動作していれば、 デフォルトでは .Nm chpass は NIS のエントリを操作するので、 このフラグはまったく冗長です。 .It Fl d Ar domain NIS ドメインを指定します。 .Nm chpass はデフォルトではシステムのドメイン名を使用します。 これは .Xr domainname 1 コマンドにて設定されています。 .Fl d オプションは、 このデフォルトを上書きするため、 もしくはドメイン名が設定されていない場合にドメイン名を指定するために 使用できます。 .It Fl h Ar host 問い合わせるべき NIS サーバの名前もしくはアドレスを指定します。 通常 .Nm chpass は .Pa master.passwd もしくは .Pa passwd マップにて指定される NIS マスタホストと通信します。 NIS クライアントとして構成されていないホスト上では、 この情報を決定するための方法がプログラムにはありませんので、 ユーザがサーバのホスト名を指定します。 指定するホスト名は NIS マスタサーバである必要が無い事に注意してください; NIS ドメイン内のマスタサーバ名でもスレーブサーバ名でも良いのです。 .Pp .Fl d オプション使用時には、ホスト名のデフォルトは ``localhost'' です。 .Fl h オプションを .Fl d とともに使用し、ユーザが指定するホスト名でこのデフォルトを上書きできます。 .Pp .It Fl o .Xr rpc.yppasswdd 8 に RPC ベースの更新を強制します(``旧モード'')。 NIS マスタサーバ上でスーパユーザにより起動された場合、 .Nm chpass は専用の非 RPC ベースの機構を使用し、 NIS パスワードマップに対する無制限の変更を許可します (この場合 UNIX ドメインソケットを使用します)。 .Fl o フラグを使用する事により .Nm chpass に標準の更新メカニズムを使用させる事が出来ます。 このオプションは主にテスト目的のために提供されています。 .El .Pp .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/master.passwd ユーザデータベース .It Pa /etc/passwd Version 7 フォーマットのパスワードファイル .It Pa /etc/chpass.XXXXXX パスワードファイルのテンポラリ用コピー .It Pa /etc/shells 利用できるシェルのリスト .El .Sh 関連項目 .Xr finger 1 , .Xr login 1 , .Xr passwd 1 , .Xr getusershell 3 , .Xr passwd 5 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Rs .%A Robert Morris and .%A Ken Thompson .%T "UNIX Password security" .Re .Sh 注釈 .Xr chfn 1 , .Xr chsh 1 , .Xr ypchpass 1 , .Xr ypchfn 1 , .Xr upchsh 1 コマンドは実際には .Nm chpass にリンクしているだけです。 .Sh バグ ユーザ情報の保存はどこか他の場所にするべきです (し、いつかはそうなるでしょう)。 .Sh 歴史 .Nm chpass コマンドは .Bx 4.3 Reno から登場しました。 diff --git a/ja_JP.eucJP/man/man1/ld.1 b/ja_JP.eucJP/man/man1/ld.1 index c7d82898e8..d53d509e14 100644 --- a/ja_JP.eucJP/man/man1/ld.1 +++ b/ja_JP.eucJP/man/man1/ld.1 @@ -1,290 +1,291 @@ .\" .\" Copyright (c) 1993 Paul Kranenburg .\" 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 Paul Kranenburg. .\" 3. 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. .\" -.\" %Id: ld.1,v 1.12.2.3 1998/03/03 07:00:18 jkh Exp % +.\" %Id: ld.1,v 1.12.2.4 1998/07/26 04:13:21 jkoshy Exp % .\" jpman %Id: ld.1,v 1.4 1997/11/12 13:02:08 horikawa Stab % .\" .Dd October 14, 1993 .Dt LD 1 .Os FreeBSD .Sh 名称 .Nm ld .Nd リンクエディタ .Sh 書式 .Nm ld .Op Fl fMNnrSstXxz .Bk -words .Op Fl A Ar symbol-file .Op Fl assert Ar keyword .Op Fl B Ns Ar linkmode .Op Fl D Ar datasize .Op Fl d Ar c .Op Fl d Ar p .Op Fl e Ar entry .Op Fl l Ns Ar library-specifier .Op Fl L Ns Ar library-search-path .Op Fl nostdlib .Op Fl O Ar filename .Op Fl o Ar filename .Op Fl R Ns Ar record-library-search-path .Op Fl T Ar address .Op Fl u Ar symbol .Op Fl V Ar shlib-version .Op Fl y Ar symbol .Ek .Sh 解説 .Nm はコマンドラインで指定されたオブジェクトとアーカイブファイルを結合 し、新しいオブジェクトファイルを生成します。生成されるオブジェクトファイルは 実行可能プログラム、実行時ロードに対応した共有オブジェクト、もう一度 .Nm により処理可能なオブジェクトのいずれかになります。オブジェクト ファイルとアーカイブはコマンドラインで指定された順に処理します。 .Pp オプションは以下の通りです。 .Pp .Bl -tag -width indent .It Fl A Ar symbol-file symbol-file を、コマンドラインで指定されたオブジェクトファイルをリンクする ためのベースとして用います。 .It Fl assert Ar keyword 本オプションは主に SunOS の .Nm ld との互換性のために存在します。 Sun の assert が失敗する条件のほとんどは、本 .Nm ではエラーになるか、警告メッセージが発せられます。 .Nm ld が実装している唯一のキーワードは .Nm pure-text です。これを使用すると、位置独立オブジェクトが生成され、 位置独立でないファイルとリンクされるときに警告が生成されます。 .It Fl B Ns Ar dynamic ダイナミックライブラリとのリンクを指定します。 ライブラリが -lx オプションによりコマンドラインから指定されると、libx.so.n.m .Po .Fl l オプションの項を参照 .Pc を検索ルールに基づき有効な範囲で検索します。もしこの形式 のライブラリが発見できなければ、検索ルールに基づき通常の libx.a を検索します。 本オプションはコマンドラインのどこにでも置くことが可能であり、 .Fl B Ns Ar static と相補的なものです。 .It Fl B Ns Ar forcedynamic これは .Fl B Ns Ar dynamic と似ていますが、ダイナミックライブラリとリンクしようとしなくても、 .Nm ld はダイナミックな実行可能ファイルを生成します。 スタティックプログラムでありかつ、 実行時にダイナミックオブジェクトをロードする プログラムに有用です。 .It Fl B Ns Ar static .Fl B Ns Ar dynamic の逆の効果を持ちます。本オプション以降に指定されたライブラリに 関しては、もう一度 .Fl B Ns Ar dynamic が指定されるまで、ダイナミックリンクが行われなくなります。 .Fl B Ns Ar static が有効な位置においてコマンドラインから明示的に共有オブジェクトが 指定された場合は、エラーとなります。 .It Fl B Ns Ar shareable 通常の実行可能イメージではなく、共有オブジェクトを生成するよう指示します。 .It Fl B Ns Ar symbolic リンク時に、すべてのシンボル参照が解決されるように指示します。 実行時に必要なリロケーションは .Em ベース相対 リロケート、すなわちロードアドレスに関する変換のみです。 シンボル参照の解決に失敗した場合はエラーとなります。 .It Fl B Ns Ar forcearchive アーカイブ中の全メンバをロードします。 メンバが通常のオブジェクトファイルに対して定義を提供するか否かには無関係です。 PIC オブジェクトのアーカイブを展開することなく、共有ライブラリを 作成するのに便利です。 .It Fl B Ns Ar silly 共有オブジェクトのための愚かな .Em \.sa アーカイブを作成します。これは、version 3 の共有オブジェクトとの互換性のために存在します。 .It Fl D Ar data-size データセグメントのサイズを設定します。 正気を保つためには、 サイズを入力ファイルの全データサイズの合計より大きくすべきです。 .It Fl d Ar c リロケータブルな出力を作成している時でも、 コモンエリアのアロケートを強制します。 .It Fl d Ar p 非 PIC コード中の手続き呼び出しの別名定義を強制します。 手続きリンク表 (Procedure Linkage Table) による呼び出しのリダイレクト のような、実行時リロケーションを含む共有コードを作成するのに便利です。 .Po .Xr link 5 を参照 .Pc .It Fl e Ar entry-symbol 実行可能ファイルのエントリのシンボルを指定します。 .It Fl f 全てのオブジェクトファイルとライブラリの解決されたパスを 標準出力にリストし、終了します。 .It Fl L Ns Ar path .Fl l オプションで指定したライブラリの検索パスに .Ar path を追加します。 .It Fl l Ns Ar lib-spec 出力に含めるとされるライブラリを指定します。もし、 .Fl B Ns Ar dynamic オプションが有効ならば、まず lib.so.m.n .Po .Em m はメジャーバージョン番号、 .Em n はマイナーバージョン番号 .Pc 形式の共有ライブラリを検索します。検索パス中に見つかった、 最もバージョンが高いライブラリを選択します。共有ライブラリが見つからないか、 .Fl B Ns Ar static オプションが有効なら、lib.a 形式のアーカイブを ライブラリ検索パスより探します。 .It Fl M 入力ファイルのセグメントマッピングと、 出力ファイルの .Pq 大域 シンボルに割り付けられた値 に関する報告を出力します。 .It Fl N OMAGIC 形式ファイル を生成します。 .It Fl n NMAGIC 形式ファイル を生成します。 .It Fl nostdlib .Fl l で指定されたライブラリの検索時に、組み込みのライブラリ検索パス .Po 通常は .Dq /usr/lib .Pc を使用しません。 .It Fl O Ar filename 出力ファイル名を指定します。 ファイルは .Ar filename .tmp として生成され、出力が完了すると、 .Ar filename にリネームされます。 .It Fl o Ar filename 出力ファイル名を指定します。デフォルトは .Dq a.out です。 .It Fl Q QMAGIC (FreeBSD/BSDi-i386)形式のファイルを生成します。これがデフォルトです。 .It Fl r さらに、 .Nm によって処理可能なリロケータブルオブジェクトを生成します。 .It Fl R 実行時のライブラリ検索のために、与えられたバスを実行可能ファイルに記録します。 ダイナミックリンクされた実行可能ファイルにのみ適用されます。 .It Fl S 出力にデバッガシンボルを含めません。 .It Fl s 出力にすべてのシンボルを含めません。 .It Fl T テキストセグメントの開始アドレスを指定します。このアドレスを基準に、すべ ての入力ファイルがリロケートされます。 .It Fl t 入力ファイルの処理状況を出力します。 .It Fl u Ar symbol シンボル .Ar symbol を強制的に未定義とマークします。 他からの参照がない状況で、あるアーカイブのメンバをロードするのに便利です。 .It Fl V Ar version .Pq 共有ライブラリ生成時に 共有ライブラリにバージョン番号を埋め込みます。SunOS 4.x 等の他 のシステムと互換性のある共有ライブラリを作成するのに便利です。 SunOS 4.x ではバージョン番号は 3、本 ld のデフォルトは 8 です。 .It Fl X 入力ファイル中の文字 .Dq L から始まるローカルシンボルを削除します。 .It Fl x 入力ファイル中のすべてのローカルシンボルを削除します。 .It Fl y Ar symbol シンボル .Ar symbol に関する処理状況を報告します。 .It Fl Z 386BSD ZMAGIC 形式ファイルを生成します。 .It Fl z NetBSD ZMAGIC 形式ファイルを生成します。 .Sh 環境変数 .Nm は以下の環境変数を使用します: .Bl -tag -width "LD_LIBRARY_PATH" .It Ev LD_LIBRARY_PATH これはコロンで区切るディレクトリリストであり、ライブラリ検索パスとして、 .Fl L オプションで指定されたディレクトリの後であり組み込みパスの前であるところに 挿入されます。 .\" .It Ev LD_NOSTD_PATH .\" When set, do not search the built-in path for libraries. .\" This is an alternative to the .\" .Fl nostdlib .\" command-line flag. .El .Sh 関連ファイル .Sh 関連項目 +.Xr ldd 1 , .Xr rtld 1 , .Xr link 5 , .Xr ldconfig 8 .Sh 警告 通常の実行可能ファイルを生成するなら、エントリポイントを明示する必要が あります。以前のバージョンの .Nm ld では、このようなことは不要でした。 .Sh バグ 共有オブジェクトに対しては、正しく未定義シンボルの検査が行われません。 .Pp 共有オブジェクトをカスケードすると .Dq -Bstatic オプションは失敗します。 .Pp 実行時に必要なシンボルを必要とされなくとも、 .Nm に指定された共有オブジェクトは実行時ロードのためのマークが含まれます。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 .Nm による共有ライブラリモデルは SunOS 4.0 より登場しています。 diff --git a/ja_JP.eucJP/man/man1/sh.1 b/ja_JP.eucJP/man/man1/sh.1 index 246dcd1b35..8d723271ce 100644 --- a/ja_JP.eucJP/man/man1/sh.1 +++ b/ja_JP.eucJP/man/man1/sh.1 @@ -1,1192 +1,1204 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Kenneth Almquist. .\" .\" 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: @(#)sh.1 8.6 (Berkeley) 5/4/95 -.\" %Id: sh.1,v 1.9.2.9 1998/06/30 06:42:53 charnier Exp % +.\" %Id: sh.1,v 1.9.2.10 1998/07/28 14:47:36 thepish Exp % +.\" .\" jpman %Id: sh.1,v 1.2 1997/05/31 16:40:31 jsakai Stab % .\" Japanese Translation amended by Norihiro Kumagai, 3/29/96, .\" based on the version of NetBSD Japanese Man Project .\" This amended version is for the FreeBSD-jpman Project, convened .\" by Kazuo Horikawa. .\" .Dd May 5, 1995 .Dt SH 1 .Os BSD 4 .Sh 名称 .Nm sh .Nd コマンドインタプリタ(シェル) .Sh 書式 .Nm .Op Fl /+abCEefIimnpsuVvx .Op Fl /+o Ar longname .Op Fl c Ar string .Op Ar arg ... .Sh 解説 .Nm はシステムの標準コマンドインタープリタです。 現在 .Nm は .St -p1003.2 のシェル規約に対応する途上にあります。 本バージョンのシェルは、見方によっては Korn shell と同様に 見える機能を多数持っていますが、 Korn shell のクローンではありません(もし Korn shell クローンを望むなら、 Gnu の bash を使いましょう)。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 されるプログラムです(ただし、ユーザは chsh(1) コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに 実行させることもできます。 .Ss 起動 引数が与えられず、かつシェルの標準入力が端末の場合 (または -i フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが ダッシュ `-' で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile と .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV を設定するには、ユーザのホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 .sp .Dl ENV=$HOME/.shinit; export ENV .sp ここで、 .Pa .shinit のかわりに好きな名前を指定することができます。 オプション以外にコマンドライン引数が指定された場合、シェルは最初の引数 を、コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm の 1 文字からなるオプションはそれぞれ対応する名前を持っており、 .Xr set 1 組み込みコマンド (後述) の引数として用いることができます。 これらの名前は、以下の説明で 1 文字オプションのすぐあとに書いてあります。 マイナス記号 .Dq - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 .Dq + でオプションを指定することは、そのオプションを無効にすることを意味します。 .Bl -tag -width Ds .It Fl a Li allexport 値が代入された変数の全てをエクスポートします(未実装です)。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す(未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して .Dq > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs -組込みの +組み込みの .Xr emacs 1 -風のコマンド行編集機能を有効にします (それ以前に -V オプションが指定 -された場合、それを無効にします)。 +風のコマンド行編集機能を有効にします (それ以前に +.Fl V +オプションが指定された場合、それを無効にします)。'set -o emacs' も +参照してください (後述します)。 .It Fl e Li errexit 非対話的シェルで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 .Dq && や .Dq || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof 対話的シェルの場合、入力の EOF を無視します。 .It Fl i Li interactive シェルが対話的に動作するように強制します。 .It Fl m Li monitor ジョブ制御を可能にします (対話的シェルの場合は自動的に設定されます)。 .It Fl n Li noexec 非対話的シェルの場合、コマンドを読み込みますが、そのコマンドの実行は しません。シェルスクリプトの文法を検査する場合に便利です。 .It Fl p Li privileged 特権モードを有効にします。 起動時に実効ユーザ ID あるいは実効グループ ID が、実ユーザ ID や実グルー プ ID と一致していなければ、このモードが有効になります。このモードを無 効化すると、実効ユーザ ID および実効グループ ID は、実ユーザ ID および 実グループ ID に設定されます。 対話的シェルでこのモードが有効になっていると、 .Pa /etc/profile の後で .Pa ~/.profile に代わり、 .Pa /etc/suid_profile を読み込みます。一方、環境変数 .Ev ENV の内容は無視されます。 .It Fl s Li stdin コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを( .Xr set 1 などによって)設定しても効果はありません。 .It Fl u Li nounset 値が設定されていない変数を展開しようとした場合、 標準エラー出力にエラーメッセージを出力し、 さらに非対話的シェルならば、ただちにシェルを終了します (未実装です)。 .It Fl V Li vi -組込みの +組み込みの .Xr vi 1 風の行編集機能を有効にします (それ以前に .Fl E オプションが指定されていた場合、それは無効になります)。 .It Fl v Li verbose 入力を読み込むごとに標準エラー出力に書き出します。デバッグのときに便利です。 .It Fl x Li xtrace 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの 前に `+' を付加して) 書き出します。デバッグのときに便利です。 .It Fl c Ar string 文字列引数 string はシェルに渡され、入力として解釈されます。このオプショ ンは引数として文字列を一つだけ受け取ることに注意して下さい。ですから、複 数の単語からなる文字列は引用符で囲う必要があります。 .El .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるもので す) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: & && ( ) ; ;; | || .No \en .It No リダイレクト演算子: < > >| << >> <& >& <<- <> .El .Ss 引用(クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま(リテラ ル)として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 ダブルクォートのペアで囲まれた文字は、ドル記号文字($)、バッククォート 文字(`)、バックスラッシュ文字(\\) を除き、すべてリテラルとして扱われま す。ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 的経緯によりすこし変わった扱いを受けます。つまり、直後に $, `, ", \\, 改行文字 が来るときにのみ、それらの文字がリテラルとして扱われます。そ れ以外の文字が来る場合、バックスラッシュ文字自体がリテラルとして扱われ ます。 .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 します。ただし改行文字は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 .Bd -literal -offset indent ! { } case do done elif else esac fi for if then until while .Ed .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 -組込みコマンド +組み込みコマンド .Xr alias 1 によって定義されます。 シェルは、予約語が現れる可能性がある場所(上記を参照)で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、``lf'' という名前で ``ls -F'' という値を持つエイリアスが 存在したとすると、次の入力行 .Bd -literal -offset indent lf foobar .Ed .Pp は、以下のように置換されます。 .Bd -literal -offset indent ls -F foobar .Ed .Pp エイリアスは、初心者に対し、引数付きの関数を生成する面倒を求めることなく、 短いコマンドをつくり出す便利な方法を提供するものです。 しかし、構文的にあいまいなコードを作り出すことにもつながりかねません。 そのような使い方はお勧めできません。 .Ss コマンド シェルは、読み込んだ単語を、文法に従って解釈します。 本マニュアルでは文法については解説しません。 .St -p1003.2 の BNF 表記を参照してください。要するに、行を1行を読み込み、読み込んだ 行の最初の単語 (制御演算子がある場合は、そのあとの最初の単語) が予約語 でない場合、シェルはその行を単純コマンドとして解釈します。それ以外の場 合、複合コマンドあるいは特殊構造であると解釈します。 .Ss 単純コマンド 単純コマンドを解釈する場合、シェルは以下のような動作をします。 .Bl -enum .It 単語の前にある ``name=value'' の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、「展開」の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した ``name=value'' の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複写 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 .sp .Dl [n] redir-op file .sp ここで、redir-op は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 .Bl -tag -width "1234567890" -offset indent .It [n]> file 標準出力 (またはファイル記述子 n への出力) をファイル file に書き出します。 .It [n]>| file 上と同様。ただし、-C オプションの効果を打ち消します。 .It [n]>> file 標準出力 (またはファイル記述子 n への出力) をファイル file に追加します。 .It [n]< file 標準入力 (またはファイル記述子 n からの入力) をファイル file から取ります。 .It [n1]<&n2 ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複写します。 .It [n]<&- 標準入力 (またはファイル記述子 n) をクローズします。 .It [n1]>&n2 ファイル記述子 n2 を標準出力 (またはファイル記述子 n1) に複写します。 .It [n]>&- 標準出力 (またはファイル記述子 n) をクローズします。 .It [n]<> file 標準入力 (あるいはファイル記述子 n) により、ファイル file を 読み書きするようにします。 .El .Pp 以下のリダイレクトは、しばしば``ヒア・ドキュメント(here-document)''と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter here-doc-text... delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォー ト) されていた場合、here-doc-text の内容をリテラルとして扱います。そ うでない場合、パラメータ展開、コマンド置換、数値演算 (「展開」の節で説 明します) を適用します。演算子が (``<<'' でなく) ``<<-'' の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 -コマンドには、シェル関数、組込みコマンド、通常プログラムの 3 種類があり、 +コマンドには、シェル関数、組み込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 それぞれのコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に ``name=value'' を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp -組込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 +組み込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp -コマンドが関数でも組込みコマンドでもない場合は、通常のプログラムとみなし +コマンドが関数でも組み込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で "#!" となる「マジックナンバ」でファイルが始まっておらず、 .Fn execve 2 が .Er ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新た にシェルが起動されたかのような効果を得るために、子シェルは自分自身を再 初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、マジッ クナンバのないシェルスクリプトのことを「シェルプロシージャ」と呼んでい て、まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを -調べます。次に、その名前の組込みコマンドがあるかどうかを調べます。 +調べます。次に、その名前の組み込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン(``:'')で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 1 個のピリオドを指定することで明示的に 指示することができます。 .El .Ss コマンドの実行ステータス 各コマンドは終了ステータスを持ち、それにより他のシェルコマンドの動作に 影響を与えることができます。基本的な考え方として、終了ステータス 0 は 通常の終了または成功を示します。0 以外の終了ステータスは失敗、エラーを 意味します。各コマンドのマニュアルにそれぞれの終了ステータスがどのよう -な意味を持つかが記述されているはずです。組込みコマンドと(実行された) +な意味を持つかが記述されているはずです。組み込みコマンドと(実行された) 関数も終了ステータスを返します。 .Pp コマンドがシグナルにより終了(terminate)させられた場合、 終了ステータスは 128 にシグナル番号を加えたものになります。 シグナル番号はヘッダファイル .Aq Pa sys/signal.h に定義されています。 .Ss 複合コマンド(Complex Commands) 複合コマンドは、単純コマンドの組み合わせで作ります。 制御演算子または予約語と組み合わせることで、より大きな複合コマンドを生 成します。一般に、コマンドは以下のうちのいずれかです。 .Bl -item -offset indent .It 単純コマンド .It パイプライン .It リストまたは合成リスト(compound-list) .It 合成コマンド(compound command) .It 関数定義 .El .Pp 特に指定のない場合、コマンドの終了ステータスは最後に実行された 単純コマンドの終了ステータスとなります。 .Ss パイプライン パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。 最後のコマンドを除くすべてのコマンドの標準出力は、次のコマンドの標準入力に 接続されます。 最後のコマンドの標準出力は、通常通り、シェルから受け継がれます。 .Pp パイプラインの形式は次のとおりです。 .Bd -literal -offset indent [!] command1 [ | command2 ...] .Ed .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属するリ ダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて下 さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 .Bd -literal -offset indent $ command1 2>&1 | command2 .Ed .Pp は、command1 の標準出力と標準エラー出力の両方を command2 の標準入力に 接続します。 .Pp \&; または改行文字を終端として用いることにより、直前の AND-OR リスト (後述) を 順次実行します。& は、直前の AND-OR リストを非同期に実行します。 .Pp 注: 他のいくつかのシェルと異なり、パイプラインの各プロセスは 起動したシェルの子プロセスとなります (シェルの組み込みコマンドである ときは別です。その場合は現在のシェルで実行されます --- ただし 環境に対して行った操作は取り消されます)。 .Ss バックグラウンドコマンド -- & コマンドが制御演算子 & で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 .Ss リスト -- 一般的な話 リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいず れかで終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始しま す。その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開 始します。 .Ss 短絡リスト演算子(Short-Circuit List Operators) ``&&'' と ``||'' は AND-OR リスト演算子です。 ``&&'' は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 ``||'' も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 ``&&'' と ``||'' の優先順位は 同じです。 .Ss 制御構造 -- if, while, for, case if コマンドの文法は以下のとおりです。 .Bd -literal -offset indent if list then list [ elif list then list ] ... [ else list ] fi .Ed .Pp while コマンドの文法は以下のとおりです。 .Bd -literal -offset indent while list do list done .Ed .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し 実行します。until コマンドも同様に実行しますが、 単語 while の代わりに単語 until を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp for コマンドの文法は以下のとおりです。 .Bd -literal -offset indent for variable in word... do list done .Ed .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを 繰り返し実行します。do と done は ``{'' と ``}'' で置き換えることができます。 .Pp break と continue コマンドの文法は以下のとおりです。 .Bd -literal -offset indent break [ num ] continue [ num ] .Ed .Pp break は内側から num 個の for ループまたは while ループを終了します。 continue は、 num 個目のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. -これらのコマンドは組込みコマンドとして実装されています。 +これらのコマンドは組み込みコマンドとして実装されています。 .Pp case コマンドの文法は以下のとおりです。 .Bd -literal -offset indent case word in pattern) list ;; ... esac .Ed .Pp pattern は、1 つあるいは複数のパターン (後述の「シェルパターン」を参照 のこと) を ``|'' で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 -(list) のなかの組込みコマンドは、現在のシェルには影響を与えません。 +(list) のなかの組み込みコマンドは、現在のシェルには影響を与えません。 2 つめの形式では新たなシェルを fork しないので、やや効率が良くなります。 このようにして複数コマンドをグループ化することで、 あたかも単一プログラムであるかのように、それらの出力をまとめて リダイレクトすることができます。 .Bd -literal -offset indent { echo -n "hello"; echo " world"; } > greeting .Ed .Ss 関数 関数定義の構文は以下のとおりです。 .Bd -literal -offset indent name ( ) command .Ed .Pp 関数定義は実行可能文の一種です。実行されると、名前 name の関数 が定義され、終了ステータスとして 0 を返します。command は 通常、``{'' と ``}'' で囲まれたリストです。 .Pp local コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 .Bd -literal -offset indent local [ variable | - ] ... .Ed .Pp -local コマンドは、組込みコマンドとして実装されています。 +local コマンドは、組み込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名 前の変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ を用います。すなわち、関数 f に局所的な変数 x を作成し、関数 f から関 数 g を呼び出した場合、関数 g 内部での変数 x に対する操作は大域変数 x ではなく、関数 f で宣言された変数 x への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは ``-'' だけです。 ``-'' を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp return コマンドの文法は以下のとおりです。 .Bd -literal -offset indent return [ exitstatus ] .Ed .Pp -return は現在実行中の関数を終了させます。return は組込みコマンドとして +return は現在実行中の関数を終了させます。return は組み込みコマンドとして 実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp ユーザが設定する変数は、アルファベット、数字、アンダースコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ 位置パラメータは、数字 (n > 0) によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 -組込みコマンド +組み込みコマンド .Xr set 1 により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang .It * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 される場合、展開結果は各位置パラメータの間を変数 IFS の先頭の文字 (IFS が設定されていない場合は空白文字) で区切った単一の文字列になります。 .It @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 @ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が ``abc''、$2 が ``def ghi'' であっ た場合、"$@" は次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed .It # 位置パラメータの数に展開されます。 .It ? 最後に実行したパイプラインの終了ステータスに展開されます。 .It - (ハイフン) 現在のオプションフラグ (1文字オプション名をつないだ文字列) -に展開されます。起動時に指定されたもの、組込みコマンド set で指定した +に展開されます。起動時に指定されたもの、組み込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .It $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 .It ! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 .It 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の パラメータ @ の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It 変数 IFS の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It パス名展開 (-f オプションが無効の場合) .It クォート削除 .El .Pp 文字 $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) 引用されていないチルダ文字 (~) で始まる単語は、チルダ展開の対象になります。 チルダ文字からスラッシュ文字または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合(たとえば ~/foobar)、チルダ文字は変数 HOME の値(現在のユーザ のホームディレクトリ)に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp ここで、expression は対応した `}' までのすべての文字です。対応する`}' を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に 狭まれた `}' や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧({})で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It パラメータが @ の場合を除き、フィールド分割は適用されません。 .El .Pp さらに、以下の形式を用いることにより、パラメータ展開の結果に修正を加える ことができます。 .Bl -tag -width Ds .It Li ${parameter:-word} デフォルト値への置換: パラメータ parameter が設定されていないか空の値 を持つ場合、word を展開した結果に置換されます。さもなければ、パラメー タ parameter の値に置換されます。 .It Li ${parameter:=word} デフォルト値の代入: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果が parameter に代入されます。最終的にパラメータ parameter の値 に置換されます。位置パラメータや特殊パラメータは、この方法で代入すること はできません。 .It Li ${parameter:?[word]} 空か設定されていないときにエラーとする: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果 (word が省略された場合にはパラメータが設定されていないことを表す デフォルトのメッセージ) が標準エラー出力に書き出され、 シェルは非 0 の終了ステータスで終了します。 それ以外の場合、パラメータ parameter の値に置換されます。対話的シェルの場合は 必ずしも終了しません。 .It Li ${parameter:+word} 代替値の使用: パラメータ parameter が設定されていないか空の値を持つ場合、空の値に 置換されます。さもなければ、word を展開した結果に置換されます。 .Pp 以上のパラメータ展開において、`:' を用いた場合はパラメータが設定されていない かまたは空の値であることが検査され、`:' を省略するとパラメータが 設定されていないことのみを検査します。 .It Li ${#parameter} 文字列の長さ: パラメータの値の(文字列としての)長さに置換されます。 .Pp 以下の 4 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 において、パターンは正規表現ではなく、パターンマッチ記法 (シェルパターン の項を参照) が用いられます。パラメータが` * 'または` @ 'の場合、展開の結果 がどうなるかは規定しません (unspecified)。 パラメータ展開全体をダブルクォートで囲んでも パターンは引用されません。中括弧のなかで引用することにより パターンを引用することができます。 .It Li ${parameter%word} 最短後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter%%word} 最長後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .It Li ${parameter#word} 最短前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter##word} 最長前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .El .Ss コマンド置換 コマンド置換により、コマンド名自身をコマンドの出力で置き換えることができます。 コマンド置換は、以下のように、コマンド command を囲った場合、 .Bd -literal -offset indent $(command) .Ed .Pp または(``バッククォート'' バージョン)、 .Bd -literal -offset indent `command` .Ed .Pp とした場合に行なわれます。 シェルは、コマンド command をサブシェルの環境で実行し、command が標準出力 に出力したものから最後の改行文字を削除した結果で置換します (最後以外の 改行は削除しません。ただし、フィールド分割の際に、IFS の値や引用のされかたに よっては、ここで残った改行文字が結局は空白に置換されることもあります)。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 +.Pp +あるいは、数式評価は組み込みの +.Xr let 1 +で実行可能です。この文法は +.Xr expr 1 +のものと同じです。 +.Xr exp 1 +は +.Xr let 1 +の別名です。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) -f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Xr case 1 コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは ``!''、 ``*''、 ``?''、 ``['' です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 (``*'') は、どのような文字列とも一致します。 クエスチョンマーク文字 (``?'') は、任意の文字 1 文字と一致します。 左大括弧 (``['') は文字クラスを開始します。 文字クラスの最後は右大括弧 (``]'') です。``]'' がない場合 は、``['' は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク (``!'') を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 ``]'' を含めるには、 ``]'' を文字クラスの最初 (``!'' を 置く場合はそのあと) に置きます。 文字クラスにマイナス記号を含めるときも同様で、 リストの最初もしくは最後に置きます。 -.Ss 組込みコマンド +.Ss 組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 -さらに、効率を上げるために組込みされているコマンド (例えば -test(1) +さらに、効率を上げるために組み込まれているかもしれないコマンド (例えば .Xr printf 1 , .Xr echo 1 , .Xr test 1 , 等) もあわせて列挙します。 .Bl -tag -width Ds .It : 終了ステータス 0 (真) を返すヌルコマンドです。 .It \&. file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に .Ql / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 .It alias [ name[=string] ... ] name=string が指定されている場合、シェルは名前 ``name'' を持つ値 ``value'' のエイリアスを定義します。単に ``name'' だけが指定された場合、 エイリアス ``name'' の値が表示されます。引数が指定されない場合、定義さ れているすべてのエイリアスの名前と値を表示します (unalias も参照)。 .It bg [ job ] ... 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 .It command command arg ... -指定された組込みコマンドを実行します (組込みコマンドと同じ名前のシェル関数 +指定された組み込みコマンドを実行します (組み込みコマンドと同じ名前のシェル関数 がある場合に使います)。 .It cd [ directory ] 指定されたディレクトリに移動します (directory 無指定時は $HOME に移動します)。 cd コマンドの 環境に CDPATH 変数があるか、シェル変数 CDPATH が設定されていて、かつ 指定されたディレクトリ directory がスラッシュ文字から始まっていないなら、 CDPATH に列挙されたディレクトリ以下に 指定されたディレクトリ directory がないか検索されます。 CDPATH の形式は PATH と同様です。対話的シェルでは、ユーザ が指定したディレクトリと異なる場所に移動した場合、移動先のディレクトリ名 を表示します。これは、CDPATH の機構が動作した場合と、シンボリックリンクを 辿った場合に発生します。 .It eval string ... 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 .It exec [ command arg ... ] コマンドが省略されない場合、そのシェルプロセスは指定されたプログラムに -置き換えられます (command は、シェル組込みコマンドや関数ではない、本物の +置き換えられます (command は、シェル組み込みコマンドや関数ではない、本物の プログラムでなければなりません)。exec コマンドにおけるリダイレクトは、 永久性を持つと見なされ、 exec コマンド完了後にも引き続き効力を持ちます。 .It exit [ exitstatus ] シェルを終了します。指定された exitstatus は、シェルの終了ステータスに なります。exitstatus が省略された場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 .It export name ... それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 変数のエクスポートを取り消す唯一の方法は、変数を unset することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 .It fc [-e editor] [first [last]] .It fc -l [-nr] [first [last]] .It fc -s [old=new] [first] fc は、対話的シェルにそれ以前に入力されたコマンドの内容を 表示、編集、再実行します。 .Bl -tag -width Ds .It -e editor 編集に際し、指定されたエディタ editor を使用します。 editor は変数 PATH を通して検索できるコマンド名です。 -e が指定されなかった場合は、変数 FCEDIT の値が 用いられます。FCEDIT が設定されていないか空に設定されている場合は EDITOR の値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 .It -l (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に (出力の順番は -r オプションの影響を受けます)出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 .It -n -l で一覧出力する際にコマンド番号を付加しません。 .It -r -l オプションでの一覧や、 編集時 (-l も -s も指定されなかった場合) の順序を反転します。 .It -s エディタを起動せずにコマンドを再実行します。 .It first .It last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド の数は変数 HISTSIZE の値で決まります。 first、last の値は以下のいずれかの形式で指定します。 .It [+]number 正の数で、コマンド番号を指定します。コマンド番号は -l オプションで表示させて 調べることができます。 .It -number 負の数で、指定された数だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 .It string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 もし -s オプションが指定されて ``old=new'' が指定されていなければ、 最初のオペランドにイコール記号(``='')を含めることはできません。 .El .\" 次の行の .Pp はもともとコメントアウトされていた .Pp fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds .It Va FCEDIT 使用するエディタ名 .It Va HISTSIZE アクセス可能なコマンド数 .El .It fg [ job ] 指定されたジョブまたは現在のジョブをフォアグラウンドに移動します。 .It getopts optstring var POSIX に準拠した getopts コマンドです。 この getopts コマンドにより、以前の getopt コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 見つかったオプションの次の引数のインデックスはシェル変数 OPTIND に格納されます。 あるオプションが引数をとる場合、その引数はシェル変数 OPTARG に置かれます。 有効でないオプションに出くわすと、変数 var には `?' がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 .It hash -rv command ... シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 最後に cd コマンドが実行されてから参照されていない項目には アスタリスク文字 (``*'') が表示されます。 この項目は無効になっているかもしれません。 .Pp 引数を指定した場合、hash コマンドは指定したコマンドをハッシュテーブル から削除し (command が関数ではない場合)、その後でそのコマンドを検索します。 -v オプションを指定した場合、発見したコマンドの位置を表示します。-r オ プションを指定した場合、関数以外のすべてのエントリをハッシュテーブルから 削除します。 .It jobid [ job ] ジョブ job 中の各プロセスのプロセス ID を表示します。引数 job が 省略された場合、現在のジョブに対して処理を行います。 .It jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 .It pwd -カレントディレクトリを表示します。組込みコマンドの pwd は +カレントディレクトリを表示します。組み込みコマンドの pwd は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 -組込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 +組み込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 .It Li "read [ -p prompt ] [ -e ] variable ... -p オプションが指定され、かつ標準入力が端末の場合、 prompt をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の 単語分割の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に 残りの単語すべて (IFS の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp -t オプションが指定され、かつ入力がなされる前にタイムアウトすると、 read コマンドは値を割当てずに戻ります。 タイムアウト値の後にはオプションで 's', 'm', 'h' のいずれかの一文字 を付けることが出来、それぞれ秒, 分, 時間を陽に指定します。 どれも指定しない場合には 's' であるものとします。 .Pp -e オプションを指定すると、入力中のバックスラッシュ文字を特別扱いします。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 文字が IFS に含まれていても、IFS の文字でないかのように扱われます。 .It readonly name ... 指定された名前の変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp 引数が指定されない場合、読み出し専用になっている変数の名前の一覧が表示され ます。 .It Li "set [ { -options | +options | -- } ] arg ... set コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It 引数を指定しなかった場合、すべてのシェル変数の名前と値の一覧を表示します。 .It options が指定された場合、「引数リスト処理」の節で説明した方法で、 指定されたオプションフラグを設定あるいは解除します。 .It 第 3 の用法は、シェルの位置パラメータを変更する際に使用します。オプションの 設定を変更せずに位置パラメータのみを変更したい場合は set コマンドへの最初 の引数として ``--'' を指定します。arg が指定されない場合、 すべての位置パラメータはクリアされます (``shift $#'' を実行することと 等価です)。 .El .Pp .It setvar variable value 変数に値を代入します。(一般に、setvar を使うよりも variable=value と書くほう が望ましいといえます。setvar は、関数内で、パラメータとして渡された名前を持つ 変数に値を代入するためのものです。) .It shift [ n ] 位置パラメータを n 回シフトします。1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 .It trap [ action ] signal ... シェルが指定されたシグナル signal を受けとったときに、action を解析し実行する ように設定します。シグナルはシグナル番号で指定します。action は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して trap コマンドを使用しても効果はありません。 .It type [name] ... 各 name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル -の組込みコマンド、コマンド、痕跡つきエイリアス(tracked alias)、最後に +の組み込みコマンド、コマンド、痕跡つきエイリアス(tracked alias)、最後に not found (見つからず)があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマ ンドの完全なパス名が印刷されます。 .It ulimit [ -HSacdflmnust ] [ limit ] リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 ``limit'' が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp ``-H'' が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション ``-S'' を指定した場合はソフトリミットになります。 リミット値を表示する場合、``-S'' か ``-H'' のいずれか一方だけしか 指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション ``-a'' を指定すると全リソースの設定値が表示されます。 この場合、パラメータ ``limit'' は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds .It -c coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 .It -d datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 .It -f filesize ファイルの最大サイズ。512 バイトブロック単位。これがデフォルトです。 .It -l lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 .It -m memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 .It -n nofiles あるプロセスがオープンできるファイル記述子の最大数。 .It -s stacksize スタックセグメントサイズの最大値。キロバイト単位。 .It -t time 各プロセスで消費できる CPU 時間の最大値。秒単位。 .It -u userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El .It umask [ mask ] umask の値 ( .Xr umask 2 を参照) を、指定された 8 進数の値に設定します。引数が 省略された場合、現在の umask の値が表示されます。 .It unalias [-a] [name] ``name'' が指定された場合、指定された名前のエイリアスを削除します。 ``-a'' オプションが指定された場合、すべてのエイリアスを削除します。 .It unset name ... 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 .It wait [ job ] 指定されたジョブ job が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび -コマンド履歴 (組込みコマンド fc 参照) を vi モードのコマンド行編集機能 +コマンド履歴 (組み込みコマンド fc 参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 キー によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja_JP.eucJP/man/man1/soelim.1 b/ja_JP.eucJP/man/man1/soelim.1 index 14375193a0..742568f8d8 100644 --- a/ja_JP.eucJP/man/man1/soelim.1 +++ b/ja_JP.eucJP/man/man1/soelim.1 @@ -1,86 +1,86 @@ .\" Copyright (c) 1980, 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. .\" .\" @(#)soelim.1 8.1 (Berkeley) 6/6/93 .\" jpman %Id: soelim.1,v 1.2 1997/05/04 13:39:07 horikawa Stab % .\" .Dd June 6, 1993 .Dt SOELIM 1 .Os BSD 3 .Sh 名称 .Nm soelim .Nd nroff への入力ファイルに \&.so が含まれないようにする .Sh 書式 .Nm .Op Ar .Sh 解説 .Nm は、指定したファイルまたは標準入力を読み込み、次の形式の .Xr ntoff 1 テキスト組み込みディレクティブを処理します: .Pp .Dl \&.so somefile .Pp ディレクティブは、入力ファイルの行頭に出現する必要があります。 .Xr tbl 1 と言ったプログラムは通常ディレクティブ行を処理しないので、便利です; 別々のファイルに分かれた表を 1 つのドキュメントにまとめることができます。 .Pp 単一のマイナス .Ql Fl で構成される引数は、標準入力に対応するファイル名とされます。 .Pp -組込みは +組み込みは .Ql \e. の代わりに .Ql \e' を使用して抑える事ができます。 例: .Pp .Dl \'so /usr/lib/tmac.s .Pp .Nm の使用例 .Pp .Bd -literal -offset indent -compact soelim exum?.n \&| tbl \&| nroff \-ms \&| col \&| lpr .Ed .Sh 関連項目 .Xr colcrt 1 , .Xr more 1 .Sh バグ 組み込みコマンドの形式に疑問が残ってはなりません \- ファイル名の前には唯 1 つの空白があり、後には空白を付けてはなりません。 .Sh 歴史 .Nm は .Bx 3.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/startslip.1 b/ja_JP.eucJP/man/man1/startslip.1 index 789d4e7464..81d65dd5cb 100644 --- a/ja_JP.eucJP/man/man1/startslip.1 +++ b/ja_JP.eucJP/man/man1/startslip.1 @@ -1,208 +1,211 @@ .\" Copyright (c) 1990, 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. .\" .\" @(#)startslip.1 8.1 (Berkeley) 6/5/93 +.\" %Id: startslip.1,v 1.10.2.2 1998/08/12 06:37:07 charnier Exp % +.\" .\" jpman %Id: startslip.1,v 1.3 1997/08/19 03:06:09 h-nokubi Stab % -.\" %Id: startslip.1,v 1.10.2.1 1997/03/03 07:01:52 mpp Exp % .\" .Dd June 5, 1993 .Dt STARTSLIP 1 .Os BSD 4.4 .Sh 名称 .Nm startslip .Nd 電話をかけ、slip サーバにログインする .Sh 書式 .Nm startslip .Op Fl d .Op Fl b Ar speed [ .Fl s Ar string1 .Op Fl s Ar string2 Op Ar ... ] .Op Fl h .Op Fl l .Op Fl L .Op Fl A Ar annexname .Op Fl U Ar upscript .Op Fl D Ar downscript .Op Fl t Ar script_timeout .Op Fl W Ar maxtries .Op Fl w Ar retry_pause .Op Fl K Ar keepalive .Op Fl O Ar outfill .Op Fl S Ar unit .Ar device user passwd .Sh 解説 .Pp .Nm startslip は指定された .Ar device をオープンします。 ひとたびキャリアが確認されると(モデム制御が有効にされている場合)、 .Nm startslip は指定された .Ar user および .Ar password でのログインを試みます。 Annex オプション ( .Fl A 参照) が指定されない限り、 標準的な login: および Password: の方式を想定します。 成功すると、 .Nm はその device を slip の回線規約に設定し、 .Ar upscript を呼び出してウェイトモードに入ります。 キャリアが落ちる (モデム制御有効の場合) あるいは .Dv SIGHUP シグナルがに送られると、 .Nm startslip は device をクローズし、 .Ar downscript を呼び出し、ダイアルアップとログインのシーケンスを繰り返し試みます。 .Dv SIGTERM シグナルが送られると、 .Nm startslip は device をクローズし、 .Ar downscript を呼び出し、そして終了します。 同一 device に対して .Nm startslip が 2 回呼び出されると、処理を行う前に ひとつめの .Nm startslip が .Dv SIGTERM シグナルによって kill されます。 .Pp 利用可能オプション: .Bl -tag -width Ar .It Fl d 行おうとしている処理に関するデバッグ情報を出力します。 .It Fl b Ar speed .Ar device に用いるボーレートを決定します。デフォルトは 9600 です。 .It Fl t Ar script_timeout ログインスクリプトのタイムアウトを秒単位で指定します。デフォルトは 90 です。 .It Fl w Ar retry_pause 接続再試行の間の待ち時間を秒単位で指定します(再試行のたびに長くなります)。 デフォルトは 60 です。 .It Fl W Ar maxtries 一つのセッション内で接続再試行する最大回数を設定します。 デフォルトは 6 回です。0 を指定すると無限回という意味になります。 .It Fl s Ar stringN オプション文字列 .Ar stringN を .Ar device に書き出します。改行は自動的に付加されます。 ダイアルアップモデムの場合、 この文字列を用いてダイアルシーケンスを指定します。 デフォルトでは文字列は全く書き出しません。 複数個の .Fl s Ar stringN 引数を指定して、例えばいくつかのホストの電話番号を 接続試行毎に切り替えるように指定できます。 .It Fl A Ar annexname Xylogics の Annex box に接続しているものとみなし、引数 .Ar user および .Ar passwd を用いて適切なダイアログを行います。引数 .Ar annexname は Annex プロンプトとマッチさせて接続が確立したことを判断するのに 用いる文字列です。 .It Fl h .Ar device に対してハードウェアフロー制御 (CTS/RTS) を用います。 デフォルトではフロー制御は行いません。 .It Fl l .Ar device に対してのモデム制御 (キャリアを待つ およびキャリアドロップの検出) を 無効化します。 デフォルトではモデム制御は有効になっています。 .It Fl U Ar upscript SLIP インタフェースが接続されたときに実行するスクリプトを指定します。 このスクリプトには ifconfig, route その他適切なコマンドを含めることが できます。 スクリプトには "slX up" が引数として渡されます。 -デフォルトは "/sbin/ifconfig" です。 +デフォルトは +.Pa /sbin/ifconfig +です。 ダイアルシーケンス番号 ( .Fl s 参照) は環境変数 -.Dv LINE +.Ev LINE を通じて渡されます。 .It Fl D Ar downscript SLIP インタフェースが切断されたときに実行するスクリプトを指定します。 スクリプトには引数として "slX down" が渡されます。 デフォルトは "/sbin/ifconfig" です。 ダイアルシーケンス番号 ( .Fl s 参照) は環境変数 .Dv LINE を通じて渡されます。 .It Fl K Ar keepalive SLIP の "keep alive" タイムアウトの秒数を設定します。 この時間内に FRAME_END を受信しなければ、再接続が行われます。 向こう側からのアクティブな "out fill" タイムアウトを期待します。 デフォルトではタイムアウトなしです。 .It Fl O Ar outfill SLIP の "out fill" タイムアウトの秒数を設定します。 この時間内に FRAME_END を少なくとも 1 回送信するようにします。 向こう側で "keep alive" タイムアウトが設定されている必要があります。 デフォルトではタイムアウトなしです。 .It Fl S Ar unit SLIP ユニットナンバを直接設定します。 2 つのインタフェースが同一のナンバを使っていることはチェックしないので、 注意して使用して下さい。 デフォルトではダイナミックな割り当てを行います。 .It Fl L UUCP 形式のデバイスロックを行います。 既に UUCP ロックを行っている外部プログラムから .Nm startslip を実行する場合以外は、これが必要です。 デフォルトの場合、そのようなプログラムを満足させる UUCP ロックは行いません。 .El .Sh 関連ファイル .Bl -tag -width /var/run/startslip..pid -compact .It Pa /var/run/startslip..pid PID がここに格納されます。 .Sh 関連項目 .Xr uustat 1 , .Xr slattach 8 , .Xr sliplogin 8 , /usr/share/examples/startslip .Sh 歴史 .Nm startslip は .Bx 4.4 で登場しました。 diff --git a/ja_JP.eucJP/man/man1/tconv.1 b/ja_JP.eucJP/man/man1/tconv.1 index 5c1060c24f..2dbbc2023a 100644 --- a/ja_JP.eucJP/man/man1/tconv.1 +++ b/ja_JP.eucJP/man/man1/tconv.1 @@ -1,168 +1,168 @@ .\" @(#) mytinfo tconv.1 3.2 92/02/01 public domain, By Ross Ridge -.\" jpman %Id: tconv.1,v 1.3 1997/09/21 06:56:54 konuma Stab % .\" %Id: tconv.1,v 1.5.2.1 1997/08/14 06:37:58 charnier Exp % .\" +.\" jpman %Id: tconv.1,v 1.3 1997/09/21 06:56:54 konuma Stab % .Dd February 1, 1992 .Dt TCONV 1 .Os .Sh 名称 .Nm tconv .Nd termcap, terminfo ソースと terminfo バイナリを相互変換する .Sh 書式 .Nm tconv .Op Fl b .Op Fl c Op Fl OUGd .Op Fl i .Op Fl B Op Fl D Ar dir .Op Fl I .Op Fl k .Op Fl V .Op Fl t Ar term .Op Ar file .Nm tic .Op Ar file .Nm captoinfo .Op Fl t Ar term .Op Fl OUGdk .Op Ar file .Sh 解説 .Nm tconv は、termcap、terminfo ソースと .Em tinfo ライブラリが使用する terminfo バイナリ の 3 つの端末記述を互いに変換します。 このプログラムは System V の .Xr captoinfo 1 および .Xr tic 1 と同じ機能を提供します。 また、System V の .Xr infocmp 1 の機能の 1 つと同じく、terminfo バイナリから terminfo ソース リスティングを出力するのに使うこともできます。 .Pp 翻訳オプション .Bl -tag -width indent .It Fl c termcap から変換します。 .It Fl i terminfo ソースから変換します。 .It Fl b terminfo バイナリから変換します。 .It Fl B terminfo バイナリに変換します。 .It Fl I terminfo ソースに変換します。 .El .Pp ファイルを指定する場合、 .Fl c または .Fl i オプションのどちらか一方と、翻訳されるファイルの完全な名前 を指定する必要があります。 ファイル名を指定しなかった場合、入力オプションは単に、 翻訳されるべき端末がある、要求された型の記述がありそうな場所を 検索するのを制限するだけに用いられます。 (すなわち、 .Fl c オプション指定時には .Ev TERMCAP 環境変数と .Pa /usr/share/misc/termcap を、 .Fl i オプション指定時には .Ev TERMINFO 環境変数と .Pa /usr/lib/terminfo を検索します。) それ以外の時は .Nm は全ての利用可能なデータベースを検索します。 もし、 .Fl I と .Fl B のどちらのオプションも指定していない場合は、 .Fl I オプションを指定したものと仮定します。 .Fl B オプションを指定した場合、コンパイル結果の出力は terminfo データベースに 出力され、指定していない場合は標準出力に出力されます。 .Pp terminfo バイナリから terminfo バイナリへの翻訳はできません。 terminfo ソースから terminfo ソースへの翻訳は可能ですが、 .Em use= フィールドで参照している記述が、出力される端末記述に展開されるような場合を 除いては、ほとんどの場合あまり役に立ちません。 .Pp .Nm は標準 termcap の全てのパラメータ化された文字列を terminfo フォーマットに 翻訳できるはずですが、GNU の %a コードを使った複雑な文字列は難しすぎて 翻訳できません。 もし、 .Nm が、termcap 文字列が 既に terminfoフォーマットに翻訳されていると見なした場合 (%p コードが文字列に含まれている場合)、 それを翻訳しようと試みることはありません。 パラメータを持たない文字列型機能記述は翻訳されません。 .Pp -Termcap オプション +termcap オプション: 以下のオプションは、termcap エントリを翻訳するとき ( .Fl c オプションを指定したとき) に利用可能です。 .Bl -tag -width indent .It Fl d 欠けている機能記述を、一切デフォルトで補いません。 .It Fl O 時代遅れの termcap 機能記述を含めます。 .It Fl G GNU の機能記述を含めます。 .It Fl U UW の機能記述を含めます。 .El .Pp その他のオプション .Bl -tag -width indent .It Fl k ファイルを翻訳する時にコメントを保存します。 .It Fl V バージョン情報を表示して終了します。 .It Fl D Ar dir terminfo バイナリを置くディレクトリ。 .It Fl t Ar term 翻訳の対象となる端末の名前。 .El .Pp もし .Fl t オプションで端末名を指定しなかった場合、翻訳の対象となる端末名は環境変数 .Ev TERM から取られます。 .Sh 関連ファイル .Bl -tag -width /usr/lib/terminfo/terminfo.src -compact .It Pa /usr/lib/terminfo terminfo バイナリを読み書きするデフォルトの場所。 .It Pa /usr/lib/terminfo/terminfo.src terminfo ソースファイルのデフォルトのファイル名。 .It Pa /etc/termcap termcap データベースのデフォルトのファイル名。 .El .Sh 関連項目 .Xr curses 3 , .Xr termcap 3 , .Xr term 5 , .Xr termcap 5 , .Xr terminfo 5 . .Sh 診断 ファイルを翻訳しているときの警告メッセージの行番号は エントリ内の警告の原因となった行ではなく、そのエントリの最後の行の番号です。 .Sh バグ もっと多くの警告を出力できるはずです。 .Nm は termcap を翻訳できません。 生成されたバイナリはキャンセルされた機能記述をキャンセルされた 物とマークしたうえで含めていますが、これは System V Release 2.0 の terminfo と非互換です。 diff --git a/ja_JP.eucJP/man/man1/top.1 b/ja_JP.eucJP/man/man1/top.1 index 1c7a156823..2010490cf4 100644 --- a/ja_JP.eucJP/man/man1/top.1 +++ b/ja_JP.eucJP/man/man1/top.1 @@ -1,373 +1,381 @@ .\" NOTE: changes to the manual page for "top" should be made in the .\" file "top.X" and NOT in the file "top.1". .\" jpman %Id: top.1,v 1.3 1997/08/19 03:06:41 h-nokubi Stab % .nr N %topn% .nr D %delay% .TH TOP 1 Local .UC 4 .SH 名称 top \- CPU プロセスの上位リストに関する情報を表示/更新する .SH 書式 .B top [ -.B \-SbiInqu +.B \-SbiInqut ] [ .BI \-d count ] [ .BI \-s time ] [ .BI \-o field ] [ .BI \-U username ] [ .I number ] .SH 解説 .\" This defines appropriate quote strings for nroff and troff .ds lq \&" .ds rq \&" .if t .ds lq `` .if t .ds rq '' .\" Just in case these number registers aren't set yet... .if \nN==0 .nr N 10 .if \nD==0 .nr D 5 .I top はシステム内の上位 .if !\nN==-1 \nN プロセスを表示し、その情報を定期的に更新します。 .if \nN==-1 \ \{\ 標準出力がインテリジェント端末 (以下を参照) なら、 デフォルトでは端末画面に合わせて表示プロセス数を決定します。 それ以外の場合、適切な数のプロセス (約 20 プロセス) が表示されます。 .\} 生の CPU パーセンテージを用いてプロセス順位を決めます。もし .I number が指定されると、デフォルト値に代えて、上位 .I number プロセスが表示されます。 .PP .I top の動作は高機能端末とそうでない端末とで異なります。 この差異によって、いくつかのオプションのデフォルト値も変わってきます。 以下の部分では、\*(lqインテリジェント\*(rq 端末とは、 カーソルアドレシング、画面クリアおよび行末までのクリアをサポートしている 端末のことを指します。 逆に \*(lqダム\*(rq 端末とは、そのような機能をサポートしていないものを いいます。 .I top の出力をファイルにリダイレクトすると、 あたかもダム端末上で動作しているように振る舞います。 .SH オプション .TP .B \-S システムプロセスも画面に表示します。 pager や swapper といったシステムプロセスは通常、表示されませんが、 このオプションによりそれらも見えるようになります。 .TP .B \-b \*(lqバッチ\*(rq モードにします。 バッチモードでは、端末からの入力は全て無視されます。 ただし割り込みキャラクタ (^C や ^\e など) は有効です。 ダム端末上で実行する場合や出力先が端末以外の場合は、これがデフォルトです。 .TP .B \-i \*(lq対話的実行\*(rq モードにします。 対話的実行モードでは、あらゆる入力は直ちに読み込んで処理されます。 どのキーがどういう機能をもっているかについては、 \*(lq対話的実行モード\*(rq のセクションを参照して下さい。 コマンドが処理されると、そのコマンドが理解されなかった場合でも、 画面は直ちに更新されます。 出力先がインテリジェント端末の場合は、これがデフォルトです。 .TP .B \-I アイドル状態のプロセスを表示しません。 デフォルトでは、 top はアクティブプロセスもアイドルプロセスも両方とも表示します。 .TP +.B \-t +.I top +プロセスを表示しないようにします。 +.TP .B \-n \*(lq非対話的実行\*(rq モードにします。 これは \*(lqバッチ\*(rq モードと同じです。 .TP .B \-q .I top を -20 に renice し、より高速に実行されるようにします。 この機能は、システムが大変重い場合に、問題箇所を発見する可能性を高めるために 用いられます。 このオプションは root のみ使用可能です。 .TP .B \-u uid 値をユーザ名に変換する時間を割かないようにします。 通常、 .I top は必要に応じてファイル \*(lq/etc/passwd\*(rq を読み、 出現する全てのユーザ id 値をログイン名に変換します。 このオプションはその変換を全て止め、できるだけ実行時間を低減させます。 ログイン名の代わりに uid 値が表示されます。 .TP .BI \-d count .I count 回だけ表示し、その後終了します。 1 回の表示とは、1 回の画面更新のことです。 このオプションにより、ユーザは希望する回数だけ状況を表示し、 その後自動的に .I top を終了させることができます。 インテリジェント端末では、表示回数の上限は設定されていません。 ダム端末ではデフォルト値は 1 回です。 .TP .BI \-s time 画面更新間隔を .I time 秒に設定します。デフォルトの画面更新間隔は \nD 秒です。 .TP .BI \-o field プロセス表示領域を指定したフィールドによってソートします。 フィールド名には出力で示されているカラム名を用いますが、小文字で指定します。 しばしば用いられる値は \*(lqcpu\*(rq, \*(lqsize\*(rq, \*(lqres\*(rq, \*(lqtime\*(rq ですが、これは OS によっても異なります。 必ずしも全ての OS でこのオプションがサポートされているわけではないことに 注意して下さい。 .TP .BI \-U username ユーザ .IR username が所有しているプロセスのみ表示します。 現在のところ、このオプションはユーザ名指定のみ可能で、uid 値は指定できません。 .PP .I count と .I number はいずれも \*(lq無限\*(rq を指定でき、 その場合、それらは可能な限り引き延ばされます。 これは、キーワード \*(lqinfinity\*(rq, \*(lqmaximum\*(rq, \*(lqall\*(rq のいずれかの、 一意に識別可能な先頭からの部分文字列を指定することで行われます。 実際、インテリジェント端末での .I count のデフォルト値は .BI infinity となっています。 .PP コマンドラインのオプションを調べる前に、 環境変数 .B TOP が調べられます。これによりユーザ自身のデフォルト値を設定できます。 表示プロセス数も環境変数 .BR TOP で指定可能です。 オプション .BR \-I , .BR \-S , -.B \-u +.BR \-u , +.B \-t は実際はトグルオプションです。これらのオプションを 2 回指定すると、 最初の指定を無効にします。 ですから、環境変数 .B TOP を \*(lq\-I\*(rq と設定しているユーザは、 \*(lqtop \-I\*(rq とすることでアイドルプロセスの状況を見ることができます。 .SH 対話的実行モード \*(lq対話的実行モード\*(rq で動作している場合、 .I top は端末からコマンドを読み込み、それに応じて動作を行います。 このモードでは端末は \*(lqCBREAK\*(rq モードに設定され、 入力文字が速やかに処理されるようになります。 .I top の表示と表示の間、 つまり .I top が .I time 秒が経過するのを待っている間、ほとんどいつでもキー入力可能です。 実際キーが押されると、そのコマンドは直ちに処理され、 画面が更新されます (そのコマンドが指示した変更も反映されます)。 これはコマンドが正しくない場合にも行われます。 画面を更新している最中にキーが押されると、 .I top は画面更新を終らせて、そのコマンドを処理します。 コマンドによっては更に情報の指定が必要になるものもありますが、 その場合、それに応じてユーザに入力が求められます。 その情報を入力する間、ユーザの削除キーと行削除キー ( .IR stty コマンドで設定される) が利用でき、改行により入力が完了します。 .PP 現在のところ、以下のコマンドが利用可能です (^L は control-L を表します): .TP .B ^L 画面を再描画します。 .IP "\fBh\fP\ or\ \fB?\fP" コマンド一覧 (ヘルプ画面) を表示します。 .TP .B q .I top を終了します。 .TP .B d 表示する画面数を変更します (新しい数値入力が求められます)。 次回の表示が 1 回目となります。ですから .B d1 と入力すると、 .I top は 1 回表示して直ちに終了します。 .TP .B n or # 表示するプロセス数を変更します (新しい数値入力が求められます)。 .TP .B s 表示間隔の秒数を変更します (新しい数値入力が求められます)。 .TP .B k プロセスリストにシグナル (デフォルトでは \*(lqkill\*(rq) を送ります。 .IR kill (1) コマンドと同様の働きをします。 .TP .B r プロセスリストの優先度 (\*(lqnice\*(rq 値) を変更します。 .IR renice (8) コマンドと同様の働きをします。 .TP .B u 指定したユーザ名のユーザが所有するプロセスのみ表示します (ユーザ名入力 が求められます)。 ユーザ名として単に \*(lq+\*(rq が指定された場合、 全ユーザのプロセスが表示されます。 .TP .B e 前回の .BR k ill または .BR r enice コマンドで生じたシステムエラーがあれば、そのリストを表示します。 .TP .B i (または .BR I ) -アイドルプロセスの表示有無を切替えます。 +アイドルプロセスの表示有無を切り替えます。 +.B t +.I top +の表示有無を切り替えます。 .SH 表示 実際の表示画面は、そのマシンで動作している Unix の種類によって異なります。 ここでの説明は、この特定マシンで動作する top コマンドの出力と 厳密には合っていないかもしれません。 相違点はこのマニュアルの終りに示してあります。 .PP 表示画面の先頭数行にはシステム状態に関する情報として、 プロセスに割り当てられた最終プロセス ID (ほとんどのシステム)、 3 種のロードアベレージ、現在時刻、存在するプロセス数、 各状態 (sleep 中、実行中、実行開始中、ゾンビ、停止中) のプロセス数、 各プロセッサ状態 (ユーザ, nice, システム, アイドル) で消費した時間の割合 等が表示されます。 物理メモリおよび仮想メモリの割り当てに関する情報も表示されます。 .PP 画面の残りの部分には各プロセスに関する情報が表示されます。 表示項目は、内容的には .IR ps (1) に似ていますが、正確には同じではありません。 PID はプロセス id、USERNAME はプロセス所有者名 ( .B \-u 指定時は UID カラムが USERNAME に取って替わる)、 PRI は現在のプロセス優先度、 NICE は nice 値 (\-20 から 20 までの範囲)、 SIZE はプロセスサイズの合計 (text, data, stack)、 RES は現在のメモリ常駐量 (SIZE と RES はいずれもキロバイト単位)、 STATE は現在の状態 (\*(lqsleep\*(rq, \*(lqWAIT\*(rq, \*(lqrun\*(rq, \*(lqidl\*(rq, \*(lqzomb\*(rq, \*(lqstop\*(rq のいずれか)、 TIME はプロセスが消費したシステム時間およびユーザ時間の秒数、 WCPU は (もしあれば) 重み付き CPU パーセンテージ (これは .IR ps (1) が CPU として表示するものと同じ)、 CPU は生のパーセンテージで、プロセス順序を決めるソート処理に用いられるもの、 そして COMMAND はプロセスが現在実行しているコマンド名です (もしプロセスが スワップアウト中なら、このカラムには \*(lq\*(rq という印がつく)。 .SH 注意 \*(lqABANDONED\*(rq 状態 (カーネル中では \*(lqSWAIT\*(rq 状態として 知られています) は捨て去られたものゆえ、この名称がついています。 プロセスはこの状態で終るべきではありません。 .SH 作者 William LeFebvre, EECS Department, Northwestern University .SH 環境変数 .DT TOP ユーザが設定できるオプションのデフォルト値 .SH 関連ファイル .DT /dev/kmem カーネルメモリ .br /dev/mem 物理メモリ .br /etc/passwd uid 値をユーザ名に変換するのに使用 .br /kernel システムイメージ .SH バグ .B \-I のデフォルト値が もう一度変更されましたが、私を責めないで下さい。 .I top が全プロセスを表示するわけではないことで大変多くの人が混乱したため、 バージョン 2 の頃と同様、デフォルトでアイドルプロセスも表示することに 決めました。 しかしこの動作に耐えられない人々のために、環境変数 .B TOP に \*(lqデフォルト\*(rq オプションを設定しておく機能を 追加しました (オプションのセクションを参照)。 バージョン 3.0 が持っている振る舞いが必要な人は、環境変数 .B TOP に値 \*(lq\-I\*(rq を設定するだけで OK です。 .PP スワップされたプロセスに対するコマンド名は追跡すべきですが、 それを行うとプログラムの動作が遅くなるでしょう。 .PP .IR ps (1) と同様、 .I top が更新情報を収集している間に事態が変化する可能性があります。 表示内容は現実に近い近似値に過ぎません。 .SH 関連項目 kill(1), ps(1), stty(1), mem(4), renice(8) .SH FreeBSD 2.x 版 .SH メモリに関する説明 Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out .B K: キロバイト。 .TP .B M: メガバイト。 .TP .B %: 1/100。 .TP .B Active: アクティブなページ数。 .TP .B Inact: アクティブでないページ数。 .TP .B Wired: 固定されているページ数。キャッシュされたファイルデータページを含む。 .TP .B Cache: VM レベルのディスクキャッシュに使用しているページ数。 .TP .B Buf: BIO レベルのディスクキャッシュに使用しているページ数。 .TP .B Free: 未使用ページ数。 .TP .B Total: 使用可能なスワップ合計。 .TP .B Free: 未使用スワップ合計。 .TP .B Inuse: 使用中スワップ。 .TP .B In: (直前の表示間隔において) スワップデバイスからページインしたページ数 .TP .B Out: (直前の表示間隔において) スワップデバイスにページアウトしたページ数 diff --git a/ja_JP.eucJP/man/man5/cvs.5 b/ja_JP.eucJP/man/man5/cvs.5 index 9cf0c1a3d9..83c2613596 100644 --- a/ja_JP.eucJP/man/man5/cvs.5 +++ b/ja_JP.eucJP/man/man5/cvs.5 @@ -1,365 +1,365 @@ .\" jpman %Id: cvs.5,v 1.2 1998/06/13 12:32:50 horikawa Chk % .\" WORD: concurrent version system: コンカレントバージョンシステム [cvs.1,cvs.5] .\" WORD: repository: (CVS の)リポジトリ [cvs.1,cvs.5] .\" WORD: commit: (通常の文中では)コミット [cvs.1,cvs.5] .\" WORD: check out: (通常の文中では)チェックアウト [cvs.1,cvs.5] .\" WORD: wrapper: ラッパ .\" WORD: newsgroup: ニュースグループ [limits.1,patch.1,init.8 のニュース] .\" WORD: history: (CVS の) ヒストリ [cvs.1,cvs.5] .\" WORD: template: テンプレート .TH cvs 5 "12 February 1992" .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. -.SH NAME +.SH 名称 cvs \- コンカレントバージョンシステムのサポートファイル .SH 書式 .hy 0 .na .TP .B $CVSROOT/CVSROOT/commitinfo,v .TP .B $CVSROOT/CVSROOT/cvsignore,v .TP .B $CVSROOT/CVSROOT/cvswrappers,v .TP .B $CVSROOT/CVSROOT/editinfo,v .TP .B $CVSROOT/CVSROOT/history .TP .B $CVSROOT/CVSROOT/loginfo,v .TP .B $CVSROOT/CVSROOT/modules,v .TP .B $CVSROOT/CVSROOT/rcsinfo,v .TP .B $CVSROOT/CVSROOT/taginfo,v .ad b .hy 1 .SH 解説 .B cvs は、ソースディレクトリの階層的な集合を 管理するシステムです。 \fBcvs\fP を使う際のコマンドと手続きは .BR cvs ( 1 ) に記述されています。 .SP .B cvs は、リビジョン管理されたファイルのマスタコピーを含むディレクトリである \fIソースリポジトリ\fP を管理し、 ここから開発者の個人的な \fI作業ディレクトリ\fP へ特定のリビジョンの ファイルをコピーしたり、作業ディレクトリから修正を採り入れたりします。 -ファイルの構造という点から見ると、各ソースリポジトリは +ファイルの構成という点から見ると、各ソースリポジトリは \fB$CVSROOT\fP の直下のサブディレクトリになります。 .SP ここで示すファイルは補助的なファイルであり、 -\fBcvs\fP を利用するにあたってなくてはならないものではありませんが、 -\fBcvs\fP をより柔軟に操作することができるようになります。 +\fBcvs\fP を利用するにあたって必須ではありませんが、 +\fBcvs\fP をより柔軟に操作できるようになります。 .SP \fBcvs\fP により管理されているソースの集合に分かり易い 名前をつけるために、`\|modules\|' を利用できます。 `\|modules\|' が存在しなければ、開発者は \fBcvs\fP コマンドで ファイルを操作する際に完全なパス名 (絶対パスもしくは \fB$CVSROOT\fP からの相対パス) を指定しなければなりません。 .SP `\|\fBcvs commit\fP\|' が実行される際に常に実行されるプログラムを 定義するために、`\|commitinfo\|' ファイルを利用できます。 これらのプログラムは、修正、追加、削除されたファイルが本当に コミットされる準備ができているかどうかをチェックする「コミット前の」 チェックとして用いられます。 このチェックを、ソースリポジトリの一部 (もしくは全体) から 特定の人やグループを除外するために利用している人もいます。 また、変更されたファイルがそのサイトのコーディング規約に 沿っているかどうかを確かめるためにも利用されるでしょう。 .SP ファイルがリポジトリにチェックインされる時や、リポジトリから チェックアウトされる時に使われるラッパコマンドを .B cvs に登録するために、 `\|cvswrappers\|' ファイルを利用できます。 ラッパは CVS に入ってくる、もしくは CVS から出ていくファイルや ディレクトリを加工することができます。 使い方はいろいろありますが、一例としては、 ファイルがチェックインされる前に C ファイルを整形し、 リポジトリ内の全てのコードの見栄えを揃えるという用法があります。 .SP .BR commit 後に常に実行される、 リポジトリ内の変更に関するログエントリを書き込むプログラムを定義するために、 `\|loginfo\|' ファイルを利用できます。 これらのプログラムは、ファイルにログメッセージを追加したり、 電子メールを通じて開発者のグループにログメッセージを送ったり、 特定のニュースグループにログメッセージを投稿したりするために使われます。 .SP .BR tag 操作や .BR rtag 操作の後で実行されるプログラムを定義するために、 `\|taginfo\|' ファイルを利用できます。 これらのプログラムは、 新しいタグ名とそのタグを作成したプログラマ名の一覧ファイルに メッセージを追加したり、 開発者のグループにメールを送ったり、 特定のニュースグループにメッセージを投稿したりするために使われます。 .SP ログメッセージの書式を定義するために、 `\|rcsinfo\|' ファイルを利用できます。 .SP `\|\fBcvs commit\fP\|' のログエントリを編集・確認する際に実行する プログラムを定義するために、 `\|editinfo\|' ファイルを利用できます。 これは `\|rcsinfo\|' の書式指定と共に用いると非常に便利であり、 変更をコミットするユーザが、書式の適切な欄を埋めていることを チェックすることができます。 .SP -\fBupdate\fP の時に無視するファイルのデフォルトの一覧を指定するために、 +\fBupdate\fP の時に無視するデフォルトのファイル一覧を指定するために、 `\|cvsignore\|' ファイルを利用できます。 .SP リポジトリに影響を及ぼす \fBcvs\fP コマンドを記録するために、 - `\|history\|' ファイルを利用できます。 +`\|history\|' ファイルを利用できます。 このファイルを作成するとヒストリが記録されるようになります。 .SH 関連ファイル .TP .B modules `\|modules\|' ファイルは、あなたがソースコードの集合に付けた名前を記録します。 \fBcvs\fP を使って、正しい書式でファイルを `\|\fB$CVSROOT/CVSROOT/modules,v\fP\|' にチェックインすると、 \fBcvs\fP はこれらの定義を利用するようになります。 .SP `\|modules\|' ファイルは、モジュール定義以外にも、空行やコメント (`\|\fB#\fP\|' から始まる行) を含むことができます。 長い行は、行の最後の文字にバックスラッシュ (``\e'') を置くことで 次の行に続けることができます。 .SP \fIモジュール定義\fP は `\|modules\|' ファイルの単一行で、 2 つの書式があります。どちらにおいても \fImname\fP はモジュール名を 表し、行の残りはその定義になります。 .SP \fImname\fP \fB\-a\fP \fIaliases\fP\|.\|.\|. .br これはモジュール \fImname\fP を定義する最も簡単な方法です。 `\|\fB\-a\fP\|' はこの定義が単なる別名 (alias) であることを示します。 \fBcvs\fP は (コマンドの引数として) \fImname\fP が使われると、 代わりに \fIaliases\fP の名前のリストが指定されたものとして扱います。 \fIaliases\fP には、他のモジュール名もしくはパスを指定します。 \fIaliases\fP にパスを指定すると、 \fBcvs\fP の引数に明示的にパスが指定した場合と同様、 `\|\fBcvs checkout\fP\|' は 作業ディレクトリへの全ての中間ディレクトリを作成します。 .SP .nf \fImname\fP [ \fIoptions\fP ] \fIdir\fP [ \fIfiles\fP\|.\|.\|. ] [ \fB&\fP\fImodule\fP\|.\|.\|. ] .fi .SP もっとも単純な場合、この形式のモジュール定義は `\|\fImname dir\fP\|' となります。 これはディレクトリ \fIdir\fP 内のすべてのファイルをモジュール \fImname\fP として定義します。 \fIdir\fP は (\fB$CVSROOT\fP から、ソースリポジトリ内にある) ソースファイルのディレクトリへの相対パスです。 この場合、\fBcheckout\fP 時には作業ディレクトリとして \fImname\fP という単一のディレクトリのみが作成され、 \fIdir\fP が複数ディレクトリ階層を含むパスであろうと、 中間のディレクトリはデフォルトでは作成されません。 .SP モジュール定義の \fIdir\fP の後で \fIfiles\fP を明示的に指定することで、 \fIdir\fP 内の特定のファイルを選択することができます。 \fBmodules\fP にあるサンプル定義は、あるディレクトリの 単一のファイルから定義されるモジュールの例となっています。 ここでは別の例を示します: .SP .nf .ft B m4test unsupported/gnu/m4 foreach.m4 forloop.m4 .ft P .fi .SP この定義では、`\|\fBcvs checkout m4test\fP\|' を実行すると、 単一階層の作業ディレクトリ `\|m4test\|' が作成され、 \fBcvs\fP ソースリポジトリ内の深い階層のディレクトリにある、 指定された 2 つのファイルが置かれます。 .SP モジュール定義中に `\|\fB&\fP\fImodule\fP\|' と書くことによって、 他のモジュールを参照することができます。 \fBcheckout\fP 時には、作業ディレクトリ内に各 \fImodule\fP 毎の ディレクトリが作成されます。 .br .I \fBcvs\fP 1.3 の新機能; モジュール定義ファイルを古いバージョンの \fBcvs\fP と共有する場合は、 この機能は使わないでください。 .SP そして、モジュール定義に以下の \fIoptions\fP を加えることができます: .SP \&`\|\fB\-d\fP \fIname\fP\|', モジュール名ではなく、他の名前を 作業ディレクトリの名前として用います。 .br .I \fBcvs\fP 1.3 の新機能; モジュール定義ファイルを古いバージョンの \fBcvs\fP と共有する場合は、 この機能は使わないでください。 .SP \&`\|\fB\-i\fP \fIprog\fP\|' を用いると、モジュール内のファイルが コミットされたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、ソースリポジトリ内の影響を受けるディレクトリへの フルパスを単一引数として受け取ります。 \fBコミット\fP 時にプログラムを実行するためには、 `\|commitinfo\|', `\|loginfo\|', `\|editinfo\|' ファイルを使う方法もあります。 .SP `\|\fB\-o\fP \fIprog\fP\|' を用いると、モジュール内のファイルが チェックアウトされたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、モジュール名を単一引数として受け取ります。 .SP `\|\fB\-e\fP \fIprog\fP\|' を用いると、モジュール内のファイルが エクスポート (export) されたときに実行される プログラム \fIprog\fP を指定できます。 \fIprog\fP は、モジュール名を単一引数として受け取ります。 .SP `\|\fB\-t\fP \fIprog\fP\|' を用いると、モジュール内のファイルに タグが付けられたときに実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、 モジュール名と \fBrtag\fP で指定されたシンボリックタグの 2 つを 引数として受け取ります。 .SP `\|\fB\-u\fP \fIprog\fP\|' を用いると、チェックアウトされたモジュールの トップディレクトリにて `\|\fBcvs update\fP\|' が用いられたときに 実行されるプログラム \fIprog\fP を指定できます。 \fIprog\fP は、このモジュールのソースリポジトリへのフルパスを 単一引数として受け取ります。 .TP \&\fBcommitinfo\fP, \fBloginfo\fP, \fBrcsinfo\fP, \fBeditinfo\fP これらのファイルは全て、`\|\fBcvs commit\fP\|' 処理の間の 様々な場面で呼び出されるプログラムを指定します。 これらのファイルは共通の構造を持ちます。 各行は、次の 2 つのフィールドを持ちます: すなわち、 正規表現と、 空白の後にファイル名かコマンド行のテンプレートです。 正規表現の 1 つがリポジトリ内のディレクトリ名にマッチすると、 行の残りが使われます。 行が文字 \fB#\fP で始まっている場合、コメントとして無視されます。 フィールド間の空白も無視されます。 .SP `\|loginfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 引数リストのどこかに `\|\fB%s\fP\|' を指定すると、 \fBcvs\fP はその場所に \fBコミット\fP により影響を受ける ファイルリストを列挙します。 リストの最初のエントリは、 ソースリポジトリ内の変更が行われる位置への相対パスです。 リストの残りは、この \fBコミット\fP により修正・追加・削除される ファイルとなります。 .SP `\|taginfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 コマンドに渡される引数は、順番に .I タグ名 、 .I 操作 (すなわち、 .B add は `tag' を、 .B mov は `tag -F' を、 .B del は `tag -d` をそれぞれ意味します)、 .I リポジトリ となり、残りは全て .B ファイル名 と .B リビジョン の組となります。 フィルタプログラムが 0 以外を返して終了すると、タグ処理は中断されます。 .SP `\|commitinfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 テンプレートには現在のソースリポジトリへのフルパスが付け加えられ、 コミットにより (追加・削除・修正など) 影響をおよぼされる ファイルのファイル名が続きます。 .SP `\|rcsinfo\|' では、行の残りはログメッセージ用のテンプレートへ 読み込まれるファイルへのフルパスです。 .SP `\|editinfo\|' では、行の残りは実行されるコマンド行の テンプレートとなります。 テンプレートはプログラム名だけでなく、 好きなだけ引数を付けることもできます。 -現在のログメッセージ用のテンプレートファイルへのフルパスが +現在のログメッセージ用テンプレートファイルへのフルパスが 最後に追加されます。 .SP 正規表現の代わりに、以下の 2 つのうちどちらかの特殊文字列 を使うことができます: -`\|\fBALL\fP\|' では常に実行されるべきコマンド行テンプレート +`\|\fBALL\fP\|' では常に実行されるコマンド行テンプレート を指定し、 `\|\fBDEFAULT\fP\|' ではどの正規表現にもマッチしなかったときに 用いられるコマンド行テンプレートを指定します。 .SP `\|commitinfo\|' ファイルには、 他の \fBコミット\fP 操作が行われる \fI前に\fP 実行されるコマンドを指定し、 \fBコミット\fP が行われる前に満たすべき状況をチェックするために 利用できます。 \fBコミット\fP 操作の残りは、このファイルで指定されたコマンド全てが 終了ステータス \fB0\fP で終了したときにのみ続行されます。 .SP `\|rcsinfo\|' ファイルにより、\fBコミット\fP のログ作成の際の \fIログ用テンプレート\fP を指定できます。 このテンプレートの書式を埋めていくだけで、\fBコミット\fP ログを 作成できるようになります。 このファイルでは、正規表現より後のフィールドはコマンドテンプレートではなく、 ログ用テンプレート書式ファイル (複数可) のファイル名となります。 .SP `\|editinfo\|' ファイルにより、\fIコミットが開始する前\fP で ログ情報が記録された後の段階で実行されるスクリプトを指定できます。 これらの「編集」スクリプトは、 ログファイルに記録された情報を確認することができます。 編集スクリプトが 0 以外の終了ステータスを返した場合、コミットは中断されます。 .SP `\|loginfo\|' ファイルにより、コミットの \fI最終段階\fP で実行される コマンドを指定できます。 コミットログメッセージとして指定されたテキストはコマンドにパイプされます: よくある用法としては、メールを送る、ニュースグループの記事とする、 中央ファイルに追加書き込みするというものがあります。 .TP \&\fBcvsignore\fP, \fB.cvsignore\fP `\|\fBcvs update\fP\|' 中に無視されるデフォルトのファイル (もしくは .BR sh ( 1 ) のファイル名パターン) のリストです。 まず最初に、\fBcvs\fP はコンパイル時に組み込まれたデフォルトの ファイル名パターンのリストを読み込みます ( .BR cvs ( 1 ) を参照)。 その後、\fB$CVSROOT/CVSROOT/cvsignore\fP ファイルが存在すれば、 その中のリポジトリ毎のリストを読み込みます。 そして、`\|$HOME/.cvsignore\|' にあるユーザ毎のリストを読み込みます。 最後に、\fBcvs\fP はディレクトリを辿る時に ディレクトリ中に `\|.cvsignore\|' ファイルがあれば、それを読み込みます。 これらのディレクトリ毎のファイルは、それを含むディレクトリにのみ 有効で、サブディレクトリには作用しません。 .TP .B history ヒストリを記録するには \fB$CVSROOT/CVSROOT\fP にこのファイルを作成します (詳細は `\|\fBcvs history\fP\|' の記述を参照)。 .SH 関連項目 .BR cvs ( 1 ), .SH 著作権 Copyright \(co 1992 Cygnus Support, Brian Berliner, and Jeff Polk .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja_JP.eucJP/man/man5/exports.5 b/ja_JP.eucJP/man/man5/exports.5 index 87fb725151..4734f49a94 100644 --- a/ja_JP.eucJP/man/man5/exports.5 +++ b/ja_JP.eucJP/man/man5/exports.5 @@ -1,256 +1,257 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)exports.5 8.3 (Berkeley) 3/29/95 -.\" %Id: exports.5,v 1.3.2.1 1997/03/12 15:07:13 mpp Exp % +.\" %Id: exports.5,v 1.3.2.2 1998/08/12 06:44:25 charnier Exp % +.\" .\" jpman %Id: exports.5,v 1.3 1998/07/02 14:10:07 horikawa Stab % .\" .Dd March 29, 1995 .Dt EXPORTS 5 .Os .Sh 名称 .Nm exports .Nd .Tn NFS マウント要求に対するリモートマウント点を定義する .Sh 書式 .Nm exports .Sh 解説 .Nm exports ファイルは .Tn NFS サーバの指定 1 つについて .Tn NFS マウントプロトコルに対するリモートマウント点を指定します。 .%T "Network File System Protocol Specification \\*(tNRFC\\*(sP 1094, Appendix A" および .%T "NFS: Network File System Version 3 Specification, Appendix I" を参照してください。 .Pp .Nm exports ファイルの各行 (# で始まる注釈行以外) は、1 つ以上のホスト向けに、 1 つのローカルサーバファイルシステム内の マウント点 (複数) とエクスポートフラグを指定します。 あるホストは、 サーバの各ローカルファイルシステムに関して唯 1 度だけ指定可能です。 また他の全てのホストに適用されるデフォルトエントリは、 各サーバファイルシステムに関して唯 1 つだけ指定できます。 後者は ``世界'' に対しそのファイルシステムを公開することになるので、 そのファイルシステムが公の情報を含むときにのみ用いるべきです。 .Pp マウントエントリ内の最初の欄 (複数) には、 対応するクライアント (複数) がマウント可能である サーバファイルシステム内ディレクトリパス (複数) を指定します。 この指定には 2 つの形式があります。 最初の指定形式は、 全マウント点のリストであり、絶対ディレクトリパスを空白で区切ったものです。 次の指定形式は、そのファイルシステムのルートパス名に続いて .Fl alldirs フラグを指定するものです。この形式は、そのファイルシステム内の任意の点を ホスト (複数) がマウントすることを可能にします。mountd で .Fl r オプションを用いれば、任意の点には通常ファイルを含むことができます。 パス名中には、シンボリックリンクを含んではなりませんし、また "." または ".." を含んではなりません。 1 つのファイルシステムに対するマウント点を複数指定することが可能であり、 それぞれ異ったホストとエクスポートオプションの組を指定することができます。 .Pp 行の 2 番目の部分には、そのファイルシステムがホストの組にどのように エクスポートされているかを指定します。 オプションフラグは、 そのファイルシステムを読み取り専用でエクスポートしているのか それとも読み書き可でエクスポートしているのかを指定したり、 クライアントの UID がサーバ上のユーザ資格にどのように マップされているのかを指定します。 .Pp エクスポートオプションは以下のとおりです。 .Pp .Sm off .Fl maproot No = Sy user .Sm on 指定されたユーザの資格を、root によるリモートアクセスに対して使用します。 その資格には、ローカルマシン上でユーザが属する全てのグループを含みます ( .Xr id 1 参照)。ユーザは名前または数字です。 .Pp .Sm off .Fl maproot No = Sy user:group1:group2:... .Sm on コロンによって区切られたリストは、 root によるリモートアクセスに対して使用する正確な資格を指定するために 使用します。 リストの要素は名前または数字です。 グループを含まない資格をユーザに関する完全な資格と区別するためには、 user: を使用すべきであることに注意してください。 .Pp .Sm off .Fl mapall No = Sy user .Sm on または .Sm off .Fl mapall No = Sy user:group1:group2:... .Sm on .Fl maproot と同じ指定方法で、 (root を含む) 全てのクライアントの UID に対するマッピングを指定します。 .Pp .Fl r オプションは .Fl maproot と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。 .Pp .Fl maproot および .Fl mapall オプションのない場合には、 root によるリモートアクセスは -2:-2 という資格を用いることになります。 その他の全てのユーザはそれぞれのリモート資格にマップされます。 .Fl maproot オプションを指定すると、root によるリモートアクセスは -2:-2 の代りに 指定した資格にマップされます。 .Fl mapall オプションを指定すると、root を含む全てのユーザはそれら自身の資格の代りに 指定した資格にマップされます。 .Pp .Fl kerb オプションを指定すると、Kerberos 認証サーバを使用して 認証とクライアント資格のマップを行います。 このオプションを利用するには、カーネルを NFSKERB オプション付きで 構築してある必要があります。 .Pp .Fl ro オプションは、ファイルシステムが読み取り専用としてエクスポートされることを 指定します (デフォルトは読み書き可)。 .Fl o オプションは .Fl ro と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。 .Pp 行の 3 番目の部分には、その行が適用されるホストの組を指定します。 この組は 3 つの方法で指定できます。 最初の方法はホスト名 (複数) を空白で区切って並べる方法です。 (名前の代りに、標準的なインターネット ``ドット'' アドレスを用いることも できます)。2 番目の方法はネットグループファイル ( .Xr netgroup 5 参照) の中で定義した ``netgroup'' を指定する方法です。 3 番目の方法は、 1 つのネットワークとネットワークマスクを用いることにより、 1 つのインターネットサブネットワークを指定する方法です。 これは、 そのサブネットワーク内のアドレスを持つ全てのホストの組として定義されます。 この最後の方法はカーネルのオーバヘッドを低く押えられるため、 1 つの管理サブネット内の多くのクライアントを エクスポートの行が参照する場合に推奨されます。 .Pp 最初の 2 つの指定方法では、単に空白で区切られた名前 (複数) を並べて指定します。 全ての名前は、まずそれらが ``netgroup'' 名であるかチェックされ、 そうでなければホスト名であると仮定されます。 ホスト名に完全ドメイン指定をすれば、 ネットグループと同じ名前を持つホストの問題を通常避けることができます。 3 番目の指定方法は、 .Sm off .Fl network No = Sy netname .Sm on フラグとオプションの .Sm off .Fl mask No = Sy netmask .Sm on フラグによって指定します。マスクが指定されないと、そのネットワーククラス (A, B, C のどれかです。 .Xr inet 4 を参照してください) に対するマスクとなります。 .Pp 例: .Bd -literal -offset indent /usr /usr/local -maproot=0:10 friends /usr -maproot=daemon grumpy.cis.uoguelph.ca 131.104.48.16 /usr -ro -mapall=nobody /u -maproot=bin: -network 131.104.48 -mask 255.255.255.0 /u2 -maproot=root friends /u2 -alldirs -kerb -network cis-net -mask cis-mask .Ed .Pp .Sy /usr , .Sy /u , .Sy /u2 がローカルファイルシステムマウント点とすると、上の例は以下を指定します: .Sy /usr はネットクグープファイルで指定されるホスト群 .Em friends にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は UID 0 およびグループ 10 にマップされます。 このファイルシステムは読み書き可でエクスポートされ、 ``friends'' 内のホストは /usr と /usr/local のどちらもマウントできます。 このファイルシステムは .Em 131.104.48.16 および .Em grumpy.cis.uoguelph.ca にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は ``daemon'' に結び付けられたユーザおよびグループにマップされます。 このファイルシステムは残りの世界へ読み出しのみでエクスポートされ、 この際全てのユーザは ``nobody'' に結び付けられたユーザおよびグループに マップされます。 .Pp .Sy /u はサブネットワーク .Em 131.104.48 上の全てのホストにエクスポートされ、 この際 root は ``bin'' の UID にマップされてグループアクセスを持ちません。 .Pp .Sy /u2 は ``friends'' 中のホストにエクスポートされ、 その際 root は ``root'' に結び付けられた UID とグループにマップされます。 このファイルシステムは ``cis-net'' ネットワーク上の全てのホストへ エクスポートされ、 この際 /u2 内のどんなディレクトリへもマウントを許し、 Kerberos 許可書によって認証される principal についての資格に 全 UID をマップします。 .Sh 関連ファイル .Bl -tag -width /etc/exports -compact .It Pa /etc/exports デフォルトリモートマウント点ファイル .El .Sh 関連項目 .Xr netgroup 5 , .Xr mountd 8 , .Xr nfsd 8 , .Xr showmount 8 .Sh バグ エクスポートオプションはカーネル内ではローカルマウント点に結び付けられます。 ローカルサーバマウント点のサブディレクトリでエクスポートされたものに、 エクスポートオプションの矛盾があってはいけません。 同じファイルシステム内の全てのエクスポートされたディレクトリは、 木を下る順に隣り合った行で指定されることが推奨されます。 ネットグループ名と同じ名前のホスト名は指定できません。 完全ドメイン指定でホスト名を指定すれば通常は問題ありません。 diff --git a/ja_JP.eucJP/man/man5/passwd.5 b/ja_JP.eucJP/man/man5/passwd.5 index f3867f3da7..39620cd015 100644 --- a/ja_JP.eucJP/man/man5/passwd.5 +++ b/ja_JP.eucJP/man/man5/passwd.5 @@ -1,678 +1,678 @@ .\" Copyright (c) 1988, 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. .\" .\" From: @(#)passwd.5 8.1 (Berkeley) 6/5/93 .\" %Id: passwd.5,v 1.6.2.8 1998/07/19 06:52:11 jkh Exp % .\" .\" jpman %Id: passwd.5,v 1.3 1998/07/30 15:26:15 horikawa Stab % .\" .\" WORD: NIS/YP INTERACTION NIS/YP との相互作用 [yppasswd.1] .\" WORD: accounting アカウンティング (パスワード期限等の意味) .\" WORD: epoch 基準時点 .Dd September 29, 1994 .Dt PASSWD 5 .Os .Sh 名称 .Nm passwd .Nd パスワードファイルのフォーマット .Sh 解説 .Nm passwd ファイルは改行で区切られたレコードから成ります。 ユーザごとに 1 レコードが対応し、 コロン(``:'')で区切られた 10 個の欄が含まれます。 これらの欄は以下の通りです: .Pp .Bl -tag -width password -offset indent .It name ユーザのログイン名。 .It password ユーザの .Em 暗号化された パスワード。 .It uid ユーザのid。 .It gid ユーザのログイングループid。 .It class ユーザのログインクラス。 .It change パスワードの変更時間。 .It expire アカウントの有効期限。 .It gecos ユーザについての一般的な情報。 .It home_dir ユーザのホームディレクトリ。 .It shell ユーザのログインシェル。 .El .Pp 最初の空白文字でない文字がポンド記号(#)であるような行は注釈であり、無視 されます。スペース、タブ、改行だけからなる空行もまた無視されます。 .Pp .Ar name 欄はコンピュータアカウントにアクセスするのに用いられるログインであり、 .Ar uid 欄はそれに結び付けられた数字です。これらはファイルアクセスを制御するので、 両方共そのシステム(またしばしば複数のシステムにわたる1つのグループ)の中 で一意であるべきです。 .Pp 同じログイン名や同じユーザidのエントリを複数持つことは可能で すが、普通それは誤りです。これらのファイルを取り扱うルーチンはしばしばそ の複数エントリの 1 つだけを返しますし、 そしてそれはランダムな選択によるものです。 .Pp ログイン名は決してハイフン(``-'')で始めてはいけません。また、メーラを 混乱させる傾向にあるので、大文字やドット(``.'')も絶対に名前の一部にしな いことを強く推奨します。コロン(``:'')は歴史的にユーザデータベース中の欄 を分けるために用いられてきたので、いかなる欄にも含まれません。 .Pp password欄はパスワードの .Em 暗号化された 形です。 .Ar password 欄が空ならば、そのマシンへアクセスするのに何のパスワードも必要としないで しょう。これはほとんど恒常的に誤りです。これらのファイルは暗号化された ユーザパスワードを含んでいるので、 適当な権利無しにはいかなる人によっても可読であっ てはいけません。管理上のアカウントは1個のアスタリスク .Ql \&* を含むパスワード欄を有しており、これは通常のログインを許しません。 .Pp group欄はユーザがログインした上で位置付けられるグループです。このシステムは マルチグループ( .Xr groups 1 参照) をサポートしますが、この欄はユーザの1次グループを指名します。2次グループの メンバは .Pa /etc/group の中で選ばれます。 .Pp .Ar class 欄はユーザのログインクラスに対するキーです。ログインクラスは .Xr login.conf 5 の中で定義されます。 .Xr login.conf 5 は、ユーザの属性、アカウンティング、リソース、環境設定に関する .Xr termcap 5 形式のデータベースです。 .Pp .Ar change 欄は .Dv GMT における基準時点からの秒数を表したものであり、 この時までにアカウントに対するパスワードを変更する必要があります。 パスワードエージング機能をなくすには、 この欄を空欄にしておくか0をセットしておけば良いです。 .Pp .Ar expire 欄は .Dv GMT における基準時点からの秒数を表したものであり、 その時にアカウントが消滅します。 アカウント再設定機能をなくすには、 この欄を空にセットしておくか0をセットしておけば良いです。 .Pp .Ar gecos 欄はコンマ(``,'')で区切られた以下のような副欄を通常含んでいます: .Pp .Bd -unfilled -offset indent fullname ユーザのフルネーム office ユーザの職場の位置 wphone ユーザの職場の電話番号 hphone ユーザの自宅の電話番号 .Ed .Pp この情報は フィンガープログラム .Xr finger 1 によって利用され、最初の欄はシステムのメーラ によって使われます。fullname 欄内にアンパサンド文字 .Ql \&& が現われると、この欄を使うプログラムはそれをそのアカウントのログイン名の 大文字版に置き換えます。 .Pp ユーザのホームディレクトリは、ユーザがログインして位置付けられる完全な .Tn UNIX パス名です。 .Pp shell欄はユーザの好むインタプリタです。 .Ar shell 欄になにも無ければ Bourne シェル .Pq Pa /bin/sh が仮定されます。セキュリティ上の理由により、シェルがシステムへのアクセス を許さないスクリプト(例えば .Xr nologin 8 スクリプト)に設定されている場合、いかなる環境変数も渡されないように配慮さ れるべきです。 .Xr sh 1 については、これは .Fl p フラグを指定することで可能です。これが他のシェルでどのように行なわれるか は、特定のシェルの文書を調べてください。 .Sh YP/NIS との相互作用 .Ss NISパスワードデータへのアクセスを可能にする システム管理者は .Pa /etc/master.passwd ファイルに特別なレコードを付け加えることによって、パスワード情報について NIS/YPを用いるように .Tn FreeBSD を設定できます。ハッシュされたパスワードデータベースおよび .Pa /etc/passwd ファイル( .Pa /etc/passwd は絶対に手動で編集してはいけません)に変更が適切にマージされるように、 エントリは .Xr vipw 8 で付加するべきです。別の方法としては、なんらかの方法で .Pa /etc/master.passwd を修正した後、 .Xr pwd_mkdb 8 を用いてパスワードデータベースを手動で更新することができます。 .Pp NISを活性化するための最も簡単な方法は、名前欄にプラス符号(`+')だけを持つ、 以下のような空のレコードを付け加えることです。 .Bd -literal -offset indent +::::::::: .Ed `+' は、 .Tn FreeBSD の標準Cライブラリの .Xr getpwent 3 ルーチンに対し、 検索において NIS パスワードマップを使用開始するよう指示します。 .Pp 上記のエントリは .Em ワイルドカード エントリとして知られていることに注意してください。なぜなら、それは全ての ユーザと一致し (他に情報を持たない `+' は、全員に一致します)、 全 NIS パスワードデータを無変更にて引き出すことを許します。 一方、 NIS エントリで `+' の次にユーザ名やネットグループ名を指定することによって、 どのようなデータが NIS パスワードマップから展開されるのか、 およびそれがどのように解釈されるのかについて、 管理者が影響を与えることができます。 この特徴を示す、少数のレコード例を挙げます(1 つの .Pa master.passwd ファイル中には複数の NIS エントリを持つことが可能であることに注意): .Bd -literal -offset indent -mitnick::::::::: +@staff::::::::: +@permitted-users::::::::: +dennis::::::::: +ken:::::::::/bin/csh +@rejected-users::32767:32767::::::/bin/false .Ed 特定のユーザ名は明示的にリストされますが、ネットグループは `@' を前に付け て表されます。 上の例では、``staff'' および ``permitted-users'' ネットグループ のユーザは、NIS から読まれ無変更で使用されるパスワード情報を持ちます。 言い換えれば、それらのユーザはそのマシンに通常のアクセスを許される ということです。ユーザ ``ken'' および ``dennis'' は、 ネットグループを通じてではなく明示的に名前が指定されており、 NIS から読まれるパスワード情報を持ちます。 例外は、ユーザ ``ken'' のシェルが .Pa /bin/csh に再マップされることです。 これは、NISパスワードマップで指定されたシェルの値が、ローカル .Pa master.passwd ファイルの特別なNISエントリで指定された値によって上書きされることを意味します。 ユーザ ``ken'' は csh シェルを割り当てておいても良いかも知れません。 なぜなら、 政治的あるいは技術的な理由でクライアントマシンにインストールされていない 別のシェルを、彼の NIS パスワードエントリに指定されているかもしれないためです。 他方、``rejected-users''ネットグループのユーザは、そのUID、 GID、シェルが不正な値で上書きされているのでログインできなくなります。 .Pp ユーザ ``mitnick'' は、そのエントリが `+' ではなく `-' で指定されているので、 完全に無視されることになります。 マイナスエントリは、 ある NIS エントリを完全に遮断するために用いることができます。 このような方法でパスワードデータが除外されたユーザは、 システムから全く認識されません。(マイナスエントリで指定された 上書き情報は無視されます。 なぜなら、システムが最初に認識しないことにしたユーザの上書き情報を処理 することは無駄だからです。) 一般にマイナスエントリは、 ある権限のあるネットグループのメンバとなってアクセスを許されるかもしれない ユーザを特別に除外するために使用します。 例えば ``mitnick'' が ``permitted-users'' ネットグループのメンバであり、 いかなる理由があってもそのネットグループ内に留まることを許す必要がある場合 (おそらくそのドメイン内の他のマシンにアクセスすることを保証するため)、 管理者はマイナスエントリを使用することにより、 特定のシステムへのアクセスを拒否し続けるこ とができます。また、アクセスを許されたユーザおよびその残りを削除したよう なよくありそうな混み入ったユーザのリストを生成するよりは、むしろアクセスを 許されないユーザを明示的にリストする方が容易なことが多いです。 .Pp プラスおよびマイナスエントリは、先行一致優先で最初から最後の順で評価されま す。これはシステムが特定のユーザに一致する最初のエントリだけを使用するこ とを意味します。例えば、``staff'' ネットグループと ``rejected-users'' ネットグループの両方のメンバとなっているようなユーザ ``foo'' は、 上の例では ``rejected-users'' のエントリの前に ``staff'' のエントリがありますので、 システムに許可されます。もし順序が逆なら、今度はユーザ ``foo'' は ``rejected-users'' として認識され、アクセスは拒否されます。 .Pp 最後に、 .Pa /etc/master.passwd ファイルの NIS アクセスエントリで指定されたユーザまたはネットグループ のどれとも一致しないNISパスワードデータベースレコードは、(マイナスエントリ を使って指定した全てのユーザと共に)全て無視されます。先に示した例 ではリストの最後にワイルドカードエントリが無いので、 ``ken'' と ``dennis'' と ``staff'' ネットグループと ``permitted-users'' ネットグループとを除く全てのユーザを システムは権限があるユーザとして認識しないでしょう。 ``rejected-users'' ネットグループは認識されますが、 全メンバのシェルは再マップされますので、 アクセスは拒否されるでしょう。他の全てのNISパスワードレコードは無視され るでしょう。 管理者は以下のようなワイルドカードエントリをリストの最後に 付けても良いでしょう。 .Bd -literal -offset indent +:::::::::/usr/local/bin/go_away .Ed このエントリは他の全てのエントリと一致しない全てのユーザを一挙にとらえる 働きをします。 .Pa /usr/local/bin/go_away は、システムにアクセスを許可されないユーザに伝えるメッセージを出力する短か いスクリプトまたはプログラムでしょう。 必ずしもログインアクセスを許可せずに、 特定のNISドメイン内の全ユーザをシステムが認識可能であることが望ましいときには、 このテクニックが有効なことがあります。 ログインシェルとシェルスクリプトを使用するときのセキュリティに関する事柄 について、上記のシェル欄の記述を参照してください。 .Pp この .Pa 上書き 機能の主な用途は、 管理者がNISクライアント上でアクセス制限を強化可能とすることです。 単に特定のネットグループに対してユーザを追加したり削除したりするだけで、 そのユーザにあるマシン群へのアクセスを許可し、 かつ他のマシン群へのアクセスを拒否することができます。 ネットグループデータベースもまた NIS 経由でアクセスできるので、 1 個所すなわち NIS マスタサーバからアクセス制限を管理できます。 一旦ホストのアクセスリストが .Pa /etc/master.passwd に設定されると、新にネットグループが作られない限りそれは再度変更する必要 はありません。 .Sh 注釈 .Ss NIS経由のシャドウパスワード .Tn FreeBSD はシャドウパスワード法を採用しており、 ユーザの暗号化されたパスワードはスーパユーザだけが読み書き可能な .Pa /etc/master.passwd および .Pa /etc/spwd.db にのみに記憶されます。 暗号化されたパスワードをパスワード推測プログラムに通すことにより、 ユーザが他のユーザアカウントに対して不正アクセスすることを防ぐためです。 NIS にはパスワード隠蔽のための標準的な方法がありません。 これは、 パスワードデータを全てNISパスワードマップに置き換えることは、 .Tn FreeBSD のパスワード隠蔽システムのセキュリティを無効にしてしまうことを意味します。 .Pp .Tn FreeBSD にはこの問題を回避するのに役立つ少数の特別な特徴が備わっています。 .Tn FreeBSD NIS クライアントと .Tn FreeBSD NIS サーバとの間でパスワード隠蔽を実装することは可能です。 .Xr getpwent 3 ルーチンは .Pa /etc/master.passwd と同じデータを含む .Pa master.passwd.byname と .Pa master.passwd.byuid マップを検索します。マップが存在すれば .Tn FreeBSD は標準の .Pa passwd.byname および .Pa passwd.byuid マップの代りにそれらをユーザ認証に利用しようとします。 .Tn FreeBSD の .Xr ypserv 8 はまたクライアントの要求をチェックして、 クライアントの要求が特権ポートから来たことを確認します。 スーパユーザのみが特権ポートにアクセスすることが許されるので、 要求しているユーザがスーパユーザであるか否か判断可能です。 .Pa master.passwd マップにアクセスする権限の無いユーザからの全ての要求は拒否されるでしょう。 全てのユーザ認証プログラムはスーパユーザの権限で実行されるので、 ユーザの暗号化されたパスワードデータへの必要なアクセスを持ちますが、 通常ユーザはパスワード情報を含まない標準 .Pa passwd マップへのアクセスのみ許されます。 .Pp この特徴は .Tn FreeBSD 以外のシステムがある環境では利用できないことに注意してください。 また、ネットワーク に無制限にアクセスできる真に限定されたユーザは依然 .Pa master.passwd マップを危うくすることにも注意してください。 .Ss NISの上書きに伴なうUIDおよびGIDの再マップ .Tn SunOS や Sun の NIS コードを利用しているオペレーティングシステムとは異なり、 .Tn FreeBSD ではユーザがNIS .Pa passwd エントリ中の .Pa 全て の欄を上書きすることを許しています。例えば以下のような .Pa /etc/master.passwd エントリを考えてみましょう。 .Bd -literal -offset indent +@foo-users:???:666:666:0:0:0:Bogus user:/home/bogus:/bin/bogus .Ed このエントリにより、`foo-users' ネットグループ中の全てのユーザは、 UID、GID、パスワードを含めて .Pa 全て のパスワード情報を上書きされます。この結果、彼等のパスワードは不正な 値に再マップされるので、全ての `foo-users' はシステムから締め出さ れることになるでしょう。 .Pp 以下のようにNISワイルドカードエントリを使う習慣のある人が多いので、 このことは覚えておくべき重要なことです。 .Bd -literal -offset indent +:*:0:0::: .Ed これはしばしば新米の .Tn FreeBSD 管理者が以下のように .Pa master.passwd ファイルのNISエントリを選んでしまうことにつながります。 .Bd -literal -offset indent +:*:0:0:::::: .Ed 更に悪く、以下のようにしてしまうこともあります。 .Bd -literal -offset indent +::0:0:::::: .Ed .Sy Pa master.passwd .Sy ファイルには「絶対に」このようなエントリは入れないでください!! 最初のものは、 全てのパスワードを `*' に再マップし (これは誰もログインできなくします)、 全ての UID および GID を 0 に再マップする (これは皆をスーパユーザにします) ことを .Tn FreeBSD に指示します。 2 番目のものは全 UID および GID をちょうど 0 にマップします が、これは .Pa 全てのユーザがrootになってしまう ことを意味します! .Pp .Ss NIS上書き評価の互換性 Sunが最初に .Xr getpwent 3 ルーチンにNISサポートを追加したとき、 .Tn SunOS のパスワードファイル .Pa /etc/passwd はプレーン .Tn ASCII フォーマットであるということが考慮されていました。 .Tn SunOS のドキュメントによれば、パスワードファイルに '+' エントリを付け加えると、 パスワードファイル中の '+' エントリがある位置に NIS パスワードデータベースの内容が「挿入」されます。例えば 管理者が .Pa /etc/passwd の中央に +:::::: エントリを置いた場合、 NIS パスワードマップの全体の内容が パスワードファイルの中央にコピーされたかのように現われるでしょう。 管理者が +:::::: エントリを .Pa /etc/passwd の中央と最後の両方に置けばNISパスワードマップは2度現われることになるでしょ う。すなわち 1 度目はそのファイルの中央に現れ、もう 1 度は最後に現れます (単純なワイルドカードの代りに上書きエントリを用いることで、 他の組合せが可能です)。 .Pp これに対し .Tn FreeBSD では単一の .Tn ASCII パスワードファイルを持つというわけではありません。 .Tn FreeBSD ではハッシュ化されたパスワードデータベースを持ちます。このデータベースで は最初や中央や最後を容易に定義できませんので、 .Tn SunOS に 100% 互換の手法を設計することは非常に困難です。例えば .Tn FreeBSD の .Fn getpwnam 関数と .Fn getpwuid 関数は、線形検索ではなくハッシュデータベースに直接問い合わせするように設計さ れています。パスワードデータベースが大きいシステムでは、 このアプローチの方が高速です。 しかしデータベースへ直接問い合わせを利用するとき、 システムは元のパスワードファイルの順序を知り得ませんし気にしませんので、 .Tn SunOS が使用するものと同じ上書き論理は容易に適用できません。 .Pp 代りに .Tn FreeBSD では全ての NIS 上書きエントリを一緒のグループにまとめ、それらから 1 つ のフィルタを作ります。各 NIS パスワードエントリはちょうど 1 回上書きフィルタ に対して比較され、それに応じて取り扱われます。フィルタがエントリを変更せ ずに通すことを許すならエントリは変更されないものとして取り扱われ、フィルタ が欄の再マップを要求するなら欄は再マップされ、フィルタが明白な除外を要求 するなら(すなわちエントリが '-' 上書きと一致するなら)エントリは無視され、 エントリがフィルタ指定のどれとも一致しないならエントリは捨てられます。 .Pp また、NIS の '+' および '-' エントリ自身は、 .Pa /etc/master.passwd の中で指定された順序で取り扱われることに再度注意してください。 それ以外の方法で取り扱うと、予測不可能な振舞いとなってしまうからです。 .Pp 結局のところ、データベースのパラダイムを保ちつつ .Tn FreeBSD では .Tn SunOS と非常によく似た動作を行いますが、 .Xr getpwent 3 関数は .Tn SunOS のものとはいくぶん異なった振舞いをします。主な違いは以下の通りです。 .Bl -bullet -offset indent .It NIS パスワードマップの各々のレコードは、ローカルパスワード空間のパスワードに 1 度だけマップすることができます。 .It NIS の '+' および '-' のエントリの位置は、 NIS パスワードレコードがパスワード空間にマップされる場所に 必ずしも影響を与えません。 .El .Pp あらゆる .Tn FreeBSD の構成のうち99%においてはNISクライアントの振舞いは .Tn SunOS や他の同種のシステムのそれと区別できないものとなるでしょう。それでもこれ らのアーキテクチャ的な違いを知っておくことは必要です。 .Pp .Ss NIS上書きに関しネットグループの代りにグループを用いる .Tn FreeBSD はネットグループではなくユーザグループに基づいた上書き照合を行なう能力 を提供します。例えば NIS エントリが以下のように指定されたとき、 .Bd -literal -offset indent +@operator::::::::: .Ed システムはまず `operator' と呼ばれるネットグループに対してユーザを 照合しようとします。 `operator' ネットグループが存在しないとき、 システムは代りに通常の `operator' グループに対して照合しようとします。 .Ss FreeBSDの古いバージョンからの動作の変遷 .Tn FreeBSD のNIS/YPの取り扱いについてはいくつかのバグフィックスと改善がありました。 そのいくつかは動作上の変化をもたらしました。動作上の変化は一般に良い方向 にありますが、ユーザおよびシステム管理者がそれらについて知っておくことは 重要です。 .Bl -enum -offset indent .It 2.0.5 以前のバージョンでは、逆方向検索 (つまり .Fn getpwuid を用いる) には上書きは適用されませんでした。つまり、 .Fn getpwuid は .Fn getpwnam が認識しないログイン名を返すことがありました。 これは現在では .Pa /etc/master.passwd で指定された上書きを全ての .Xr getpwent 3 関数に適用することで解決されました。 .It .Fx 2.0.5 以前では、ネットグループの上書きは全く動作しませんでした。 これは主に .Tn FreeBSD が NIS を通してネットグループを読むことをサポートしなかったことが原因です。 これもまた修正され、 .Tn SunOS や同種の NIS を使用可能なシステムと全く同様に、 ネットグループを指定可能となりました。 .It .Tn FreeBSD は現在NISサーバの能力を持っており、標準第6版形式の .Pa passwd マップに加え .Pa master.passwd NIS マップの使用もサポートしています。このことは、NIS サーバとして .Tn FreeBSD システムを利用するなら、変更情報、有効期限の情報、クラス情報を指定可能であ るということを意味しています。 .El .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/passwd パスワードを除いた .Tn ASCII パスワードファイル .It Pa /etc/pwd.db パスワードを除いた .Xr db 3 形式のパスワードデータベース .It Pa /etc/master.passwd パスワードの入った .Tn ASCII パスワードファイル .It Pa /etc/spwd.db パスワードの入った .Xr db 3 形式のパスワードデータベース .El .Sh 関連項目 .Xr chpass 1 , .Xr login 1 , .Xr passwd 1 , .Xr getpwent 3 , .Xr login.conf 5 , .Xr login_getclass 3 , .Xr yp 4 , .Xr login.conf 5 , .Xr adduser 8 , .Xr pwd_mkdb 8 , .Xr vipw 8 , .Xr pw 8 .Sh バグ ユーザ情報は他のどこか に入れるべき(そして結局は入れることになる)でしょう。 .Pp YP/NISパスワードデータベースでは、 普通のユーザには暗号化されたパスワードが見えてしまいます。したがって .Pa master.passwd マップのシャドウパスワードおよび .Tn FreeBSD の .Xr ypserv 8 サーバを利用しないと、 簡単にパスワードクラッキングを許してしまうことになります。 .Pp .Pa master.passwd タイプのマップの使用をサポートする .Tn FreeBSD の .Xr ypserv 8 を使用しないと、 YP/NIS パスワードデータベースは 古いスタイル (第 6 版) のフォーマットになります。これは、 .Tn FreeBSD システムを標準 NIS サーバのクライアントとして利用するとき、 ユーザのログインクラスやパスワード期限等の 現在のフォーマットにある欄の値については サイトワイドな値が利用できなくなることを意味します。 .Sh 互換性 パスワードファイル形式は .Bx 4.3 以降で変更されました。以下の awk スクリプトは、古いスタイルの パスワードファイルを新しいスタイルのパスワードファイルに 変換するのに利用できます。 .Dq class , .Dq change , .Dq expire 欄が追加されましたが、デフォルトでは無効になっています。 これらの欄を設定するには .Xr vipw 8 もしくは .Xr pw 8 を使用してください。 .Bd -literal -offset indent BEGIN { FS = ":"} { print $1 ":" $2 ":" $3 ":" $4 "::0:0:" $5 ":" $6 ":" $7 } .Ed .Sh 歴史 .Nm ファイルは .At v6 で現われました。YP/NISの機能は .Tn SunOS を雛型として .Fx 1.1 で初めて現われました。上書き機能は .Fx 2.0 -において新しく組込まれました。上書き機能はネットグループを適切に +において新しく組み込まれました。上書き機能はネットグループを適切に サポートするために .Fx 2.0.5 で更新されました。注釈のサポートは .Fx 3.0 で初めてサポートされました。 diff --git a/ja_JP.eucJP/man/man5/syslog.conf.5 b/ja_JP.eucJP/man/man5/syslog.conf.5 index d3ada4ba97..a4ef1a8edf 100644 --- a/ja_JP.eucJP/man/man5/syslog.conf.5 +++ b/ja_JP.eucJP/man/man5/syslog.conf.5 @@ -1,340 +1,358 @@ .\" Copyright (c) 1990, 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. .\" .\" From: @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93 -.\" %Id: syslog.conf.5,v 1.3.2.6 1998/07/18 11:37:22 jkh Exp % +.\" %Id: syslog.conf.5,v 1.3.2.7 1998/08/06 01:43:46 jkoshy Exp % .\" .\" jpman %Id: syslog.conf.5,v 1.3 1998/07/16 01:34:25 yohta Stab % .\" .Dd June 9, 1993 .Dt SYSLOG.CONF 5 .Os .Sh 名称 .Nm syslog.conf .Nd .Xr syslogd 8 設定ファイル .Sh 解説 .Nm ファイルは .Xr syslogd 8 プログラムの設定ファイルです。 このファイルは .Em program 指定によって分けられた行ブロックから構成されています。 それぞれの行は 2つのフィールドを含みます。 その行が適用されるメッセージのタイプと優先度を指定する .Em selector フィールドと、 .Xr syslogd が選んだ基準とマッチしたマッチしたメッセージを受けとった場合の動作を指定する .Em action フィールドです。 .Em selector フィールドと .Em action フィールドは 1 つ以上のタブ文字で区切られています。 .Pp -.Em selectors -機能は +.Em selector +機能は、 .Em facility とピリオド -.Pq Dq \&. +.Pq Dq \&. +とオプションの比較フラグ +.Pq Bq <=> そして .Em level で符合化され、間に空白は含みません。 .Em facility と .Em level の双方とも、大文字小文字の違いはありません。 .Pp .Em facility はシステムが発するメッセージの一部を表し、次にあげるキーワード群の 1 つで表されます : auth, authpriv, cron, daemon, ftp, kern, lpr, mail, -mark, news, ntp, syslog, user, uucp と local0 から local7. +mark, news, ntp, syslog, user, uucp と local0 から local7。 これらのキーワード(markを除く)は .Xr openlog 3 と .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 +.Em 比較フラグ +を使用して、何を記録するのかを正確に指定できます。 +比較フラグのデフォルト組は +.Dq => +(またはあなたが好むのなら +.Do >= +.Dc ) であり、 +指定した +.Em facility +リストからの +.Em level +以上のレベルのメッセージを記録することを意味します。 +.Pp .Pp .Em level はメッセージの重要度を表し、以下のキーワードの順に高から低になります: emerg, alert, crit, err, warning, notice, info, debug。 これらのキーワードは .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 .Pp それぞれの行ブロックはタグによって前のブロックと区別されます。 タグは行の先頭が .Em #!prog または .Em !prog (前者は以前の syslogd との互換性のためのものです。 例えば syslog.conf ファイルを共有したい時などに便利です) で始まり、それぞれのブロックは syslog を呼び出す特定のプログラムと 関連付けられています。 また、タグ ``foo'' は、 ``foo: '' というプレフィックスを持つ カーネルログメッセージにもマッチします。 .Pp .Em facility と .Em level の両方のキーワードとその意味のより詳細な説明を知りたい場合は .Xr syslog 3 を見てください。 選択は .Em facility で行なう方が .Em program で行なうよりも好まれています。 なぜなら、後者はネットワーク環境の中では 簡単に変化してしまう場合があるからです。しかし、適切な .Em facility が本当に存在しない場合もあります。 .Pp もし .Em facility 指定に一致したメッセージを受けとり、なおかつそれが 指定した .Em level .Em (もしくはそれ以上の level) だった場合、またはメッセージ中の日付の後ろの最初の単語が .Em program と一致した場合、 .Em action フィールドで指定された動作が選択されます。 .Pp 複数の .Em selector を、セミコロン .Pq Dq \&; によって区切ることにより、1 つの .Em action に対して指定することができます。 しかしそれぞれの .Em selector はその前にある指定を上書き修正できてしまいますので注意してください。 .Pp 複数の .Em facility は、コンマ .Pq Dq \&, によって区切ることにより 1 つの .Em level を指定することができます。 .Pp アスタリスク .Pq Dq * は、全ての .Em facility 、全ての .Em levels 、または全ての .Em programs を指定するのに使用できます。 .Pp 特別な .Em facility である .Dq mark は、20分毎に .Dq info の優先度を持つメッセージを受け取ります ( .Xr syslogd 8 を参照 )。これは アスタリスクを含む .Em facility フィールドには適用されません。 .Pp 特別な .Em level である .Dq none は、特定の .Em facility を無効にします。 .Pp それぞれの行の .Em action フィールドは、 .Em selector フィールドに指定されたメッセージを受け取った際の動作を指定します。 動作指定には次の 5つの形式があります: .Bl -bullet .It パス名 (先頭がスラッシュで始まります)。 該当するメッセージは、そのファイルに追加されます。 .It ホスト名 ( .Pq Dq @ 文字から始まる必要があります)。 該当するメッセージは、指定されたホストの .Xr syslogd プログラムに転送されます。 .It コンマで区切られたユーザのリスト。 該当するメッセージは、指定されたユーザがログインしていれば、 そのユーザの画面に出力されます。 .It 1 つのアスタリスク。 該当するメッセージは、ログイン中の全てのユーザの画面に出力されます。 .It 垂直バー .Pq Dq \&| とそれに続くコマンド。該当したメッセージをパイプを使って コマンドに渡すことができます。 このコマンドは、 .Pa /bin/sh によって評価されるので、通常のシェルメタキャラクタや入力/出力 リダイレクトを利用できます。 (しかし実行されたコマンドからの .Xr stdio 3 バッファされた出力のリダイレクトは余計な遅延を引き起こしたり、 あるいはシグナルによってロギング中のサブプロセスが終了した場合など 出力データを失うことがあるかもしれないことに注意してください) コマンドそれ自身は .Em stdout と .Em stderr を .Pa /dev/null にリダイレクトして動作します。 .Dv SIGHUP を受け取ると、 .Nm はそのプロセスとのパイプを閉じます。もしそのプロセスが自発的に終了しない 場合は、60秒の猶予期間の後 .Dv SIGTERM を送ります。 .Pp コマンドはパイプでつながれるデータが到着した際に 1 度だけ起動されます。 その後、コマンドが終了した場合には必要に応じて再起動されます。 そのため、1行の入力だけをサブプロセスが手に入れるよう望んでいるなら、 (もし多くのメッセージが速く流れる場合には、 資源を大量に消費する可能性がありますが) 1行の入力があった後に終了する事によって達成する事ができます。 必要ならば、この効果のためにラッパスクリプトを書くこともできます。 .Pp そのコマンドが完全なパイプラインでない場合、コマンドを .Em exec で起動すると、起動したシェルプロセスがコマンドの完了を待たなくなるので 便利かもしれません。 警告: このプロセスは .Xr syslogd 8 の UID のもとで動きます。通常はスーパユーザです。 .El .Pp 空行と最初の空白でない文字がハッシュ .Pq Dq # 文字である行は無視されます。 .Sh 使用例 .Pp 設定ファイルは次のようになります: .Bd -literal # err レベル以上の全てのメッセージ、全てのレベルの kernel メッセージ、 # notice レベルの auth メッセージをコンソールに出力します。 # プライベートな認証メッセージは記録をとりません! *.err;kern.*;auth.notice;authpriv.none /dev/console # info 以上のレベルを持つ(mail を除く)全てのメッセージを記録します。 # プライベートな認証メッセージは記録をとりません! *.info;mail.none;authpriv.none /var/log/messages +# debug レベルのみの daemon メッセージを記録します +daemon.=debug /var/log/daemon.debug + # authpriv ファイルはアクセス制限を持ちます。 .\" /var/log/secure の read permission を限定するということ? .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 8 1998) authpriv.* /var/log/secure # 全てのレベルの mail メッセージを一箇所にまとめて記録します。 mail.* /var/log/maillog # emerg(非常事態)レベルの全てのメッセージは全員が受け取ります。 *.emerg * *.emerg @arpa.berkeley.edu # alert レベル以上のメッセージを root と eric の画面に表示されます。 .\" 原文は Root and Eric get alert and higher messages を意訳 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) *.alert root,eric # err レベル以上の mail と news の エラーを特別なファイルに保存します。 mail;news.err /var/log/spoolerr .\" 原文は uucp,news.crit / send-pr 予定 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) # 全てのレベルの認証メッセージをフィルタにパイプします。 auth.* |exec /usr/local/sbin/authfilter # ftpd のトランザクションを mail と news にあわせて保存します。 !ftpd *.* /var/log/spoolerr # カーネルのファイヤウォールレポートを別のファイルに保存します。 !ipfw *.* /var/log/ipfw .Ed .Sh 関連ファイル .Bl -tag -width /etc/syslog.conf -compact .It Pa /etc/syslog.conf .Xr syslogd 8 設定ファイル .El .Sh バグ 複数のセレクタ指定は、時々思ったように効果を発揮しない事があります。 例えば、 .Dq mail.crit,*.err と設定すると、 .Dq mail ファシリティのメッセージのレベルは .Dq err かそれ以上となり、 .Dq crit かそれ以上のレベルにはなりません。 .Pp ネットワーク環境においては、全てのオペレーティングシステムが 同じ facility 名のセットを実装しているわけではない点に注意してください。 authpriv, cron, ftp, ntp といったこの実装において知られた facility が、 目的のシステムには存在しないかもしれません。更に悪い事に、 DEC UNIX は AdvFS ファイルシステムのログイベントに facility 番号 10 (この実装では authpriv です) を使っています。 .Sh 関連項目 .Xr syslog 3 , .Xr syslogd 8 diff --git a/ja_JP.eucJP/man/man8/amd.8 b/ja_JP.eucJP/man/man8/amd.8 index 47f6159ce6..65e9c66d4f 100644 --- a/ja_JP.eucJP/man/man8/amd.8 +++ b/ja_JP.eucJP/man/man8/amd.8 @@ -1,287 +1,287 @@ .\" .\" Copyright (c) 1989 Jan-Simon Pendry .\" Copyright (c) 1989 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Jan-Simon Pendry at Imperial College, London. .\" .\" 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. .\" .\" @(#)amd.8 5.10 (Berkeley) 4/19/94 .\" .\" %Id: amd.8,v 1.2.2.3 1998/07/18 11:08:35 jkh Exp % .\" .\" jpman %Id: amd.8,v 1.2 1997/04/15 00:24:08 mutoh Stab % .\" .Dd April 19, 1994 .Dt AMD 8 .Os .Sh 名称 .Nm amd .Nd 自動マウントファイルシステム .Sh 書式 .Nm amd .Op Fl nprv .Op Fl a Ar mount_point .Op Fl c Ar duration .Op Fl d Ar domain .Bk -words .Op Fl k Ar kernel-arch .Ek .Op Fl l Ar logfile .Op Fl t Ar interval.interval .Bk -words .Op Fl w Ar interval .Ek .Op Fl x Ar log-option .Op Fl y Ar YP-domain .Bk -words .Op Fl C Ar cluster-name .Ek .Op Fl D Ar option .Oo .Ar directory mapname .Op Fl map-options .Oc .Ar ... .Sh 解説 .Nm amd は、ファイルシステムがアクセスされたときに自動的にそのファイルシステムを マウントするデーモンです。マウントされたファイルシステムは、アクセスがな ければ自動的にアンマウントされます。 .Pp .Nm amd は、自分自身をNFSサーバとして、指定された .Ar directory に結び付けます。 その指定ディレクトリ内でのファイルアクセスは .Nm amd によって処理されます。 .Nm amd は、 .Ar mapname で定義されたマップを使って、あるディレクトリ にどのファイルシステムを割り当てるかを決定します。 一般に .Ar mapname は、ホスト名やファイルシステムの情報、 マウントオプションから構成されます。 .Sh オプション .Bl -tag -width Ds .It Fl a Ar temporary-directory 実際にファイルシステムをマウントする位置を指定します。 デフォルトは .Pa /a です。 .It Fl c Ar duration ディレクトリが使われないときに、探索に使われた名前をキャッシュ して保持する秒数を指定します。デフォルトは5分です。 .It Fl d Ar domain ローカルドメイン名を指定します。もしこのオプションが与 えられなければ、ドメイン名はホスト名から決定されます。 .It Fl k Ar kernel-arch カーネルアーキテクチャを指定します。これは単に ${karch} セレクタ を指定するだけです。 .It Fl l Ar logfile マウントおよびアンマウントのイベントを記録するログファイル を指定します。 もし、 .Ar logfile が ``syslog'' という文字列なら、ログメッセージは .Xr syslog 3 によってシステムログデーモンに送られます。 .It Fl n ホスト名を正規化します。${rhost}で参照される名前は、使わ れる前にホストデータベースに関連づけて正規化されます。 これは、エイリアスを `` 公式 (official)'' ホスト名に変換する効果があります。 .It Fl p プロセスIDを表示します。 .Nm amd のプロセス ID を標準出力に出力して、ファイルに保存することができます。 .It Fl r 存在するマウントをリスタートします。 .Nm amd はマウントファイルテーブルをスキャンして、 現在マウントされているファイルシステムを判断します。 ファイルシステムが自動マウントされたものであれば、 .Nm amd は、その情報を継承します。 .It Fl t Ar interval.interval NFS/RPC/UDPのリトライの間隔を、10分の1秒単位で指定します。 デフォルト値は0.8秒です。2番目の値は再送カウンタを変更します。 どちらか一方か、両方の値が設定されていなければ、 適当なデフォルト値が設定されます。 .It Fl v バージョンを表示します。標準エラー出力に設定情報を表示します。 .It Fl w Ar interval キャッシュする時間を超えたファイルシステムのマウントを解除する時間を 秒単位で指定します。デフォルト値は2分です。 .It Fl y Ar domain NISマップをとってくる際に用いるNISドメインを指定します。 デフォルトはシステムのドメイン名です。このオプションは、NIS を動かしていないときには無視されます。 .It Fl x Ar options 実行時に何をログに記録するかを指定します。 .Ar options -には以下のものをカンマで区切って使用できます: +には以下のものをコンマで区切って使用できます: fatal, error, user, warn, info, map, stats, all .\" 次の文は原文に表記無し (Feb 1997 jpman J.Sakai) .\" .Ar options .\" の最初に``no''をつけたもの(たとえば``noinfo'')は、記録されません。 .It Fl D Ar option デバッグオプションの種類を選択することができます。 .Ar option の頭に .Ar no をつけると、そのオプションの逆の影響を与えます。 オプションは並べて指定することができます。もっとも役に立つのは .Ar all です。 .El .Pp .Fl D はデバッグのときにだけ使うものであるため、ここでは他のオプションに ついては説明しません。サポートされているオプションは .Fl v オプションで表示されますが、詳細はソースコードに記述されています。 .\" 以下の使用例は FreeBSD の英語マニュアルには載ってない。 .\" 内容の正しさを完全には吟味できないので、ここではコメントアウトした。 .\" (Feb 1997 jpman J.Sakai) .\" .Pp .\" .Ss 使用例 .\" .Pp .\" .Pa /etc/netstart .\" で以下の部分を記述します。 .\" テンプレートがすでに用意されています。 .\" .Pp .\" .Bd -literal -offset indent .\" amd=YES .\" amd_dir=/am # AMD's mount directory .\" amd_master=/etc/amd/master # AMD 'master' map .\" .Ed .\" .Pp .\" .Pa /etc/amd .\" というディレクトリを作成します。 .\" .Pp .\" .Pa /etc/amd/master .\" ファイルを作成します。 .\" .Pa /etc/amd/master .\" の内容: .\" .Pp .\" .Bd -literal -offset indent .\" /home /etc/amd/am-home -cache:=inc .\" .Ed .\" .Pp .\" amdマップとして、am-homeを指定しています。 .\" .Pp .\" .Pa /etc/amd/am-home .\" を作成します。 .\" .Pa /etc/amd/am-home .\" の内容: .\" .Pp .\" .Bd -literal -offset indent .\" /default opts:=rw,intr,soft,bg,grpid,timeo=30;\\ .\" type:=nfs;fs:=${autodir}/home/${key};rfs:=/home .\" .Ed .\" .Pp .\" .Bd -literal -offset indent .\" mizuno host==mercury;type:=ufs;dev:=/dev/sd0a .\" * type:=error .\" .Ed .\" .Pp .\" このような設定を行い、リブートしてください。 .\" .Pa /home/mizuno .\" をアクセスすると、 .\" .Pa /dev/sd0a .\" が .\" .Pa /am/mercury/home/mizuno .\" としてマウントされ、 .\" .Pa /home/mizuno .\" が .\" .Pa /am/mercury/home/mizuno .\" へのシンボリックリンクとなります。 .\" .Pa /home/mizuno .\" 以外がアクセスされるとエラーとなります。 .\" .Pp .\" .Pp .Sh 関連ファイル .Bl -tag -width /axx .It Pa /a 動的にファイルシステムがマウントされるディレクトリ .El .Pp .Sh 注意 マウントマップを作成する場合には注意が必要です。 .Pp .Tn NFS ファイルシステム上のシンボリックリンクは、信じられないほど 非効率的です。 .Tn NFS を実装した多くのシステムでは、 シンボリックリンクの展開結果はカーネルがキャッシュせずに、 .Em lookuppn (パス名変換)時にシンボリックリンクに出会うたびに NFSサーバに対してRPCコールを行うようになっています。 キャッシュをどこかに加えることによって、かなり大きな性能の向上が 得られるはずです。 上手に実現したオートマウントシステムで .Xr symlink 2 を置き換えれば大きくスピードアップすることができますが、 同時に多くのコンテキストスイッチも起こします。 .Pp .Nm amd のすべての機能を駆使できれば非常に便利ですが、 それにはかなりの想像力が必要になります。 .Pp .Sh 関連項目 .Xr hostname 1 , .Xr amq 8 , .Xr mount 8 , .Xr umount 8 .Rs .%T Amd \- The 4.4 BSD Automounter. .\" 以下の参考文献の節も原文にはない。 .\" しかし参考にはなるだろうから この節は残すことにした。(Feb 1997 jpman Sakai) .Sh 参考文献 .Bl -bullet -offset indent -compact .It アスキー UNIX MAGAZINE 1991 4, 5月号: UNIX Communication Notes --- amd .It アスキー NUTSHELL HANDBOOKS: Managing NFS \& NIS --- 自動マウンタ .El .Pp .Re .Sh 作者 .An Jan-Simon Pendry Aq jsp@doc.ic.ac.uk , Department of Computing, Imperial College, London, UK. .Sh 歴史 .Nm amd は 4.4BSD にはじめて導入されました。 diff --git a/ja_JP.eucJP/man/man8/dump.8 b/ja_JP.eucJP/man/man8/dump.8 index 4e07d3aa8e..a04a63485b 100644 --- a/ja_JP.eucJP/man/man8/dump.8 +++ b/ja_JP.eucJP/man/man8/dump.8 @@ -1,376 +1,376 @@ .\" Copyright (c) 1980, 1991, 1993 .\" 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 acknowledgment: .\" 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. .\" .\" @(#)dump.8 8.1 (Berkeley) 6/16/93 .\" %Id: dump.8,v 1.5.2.9 1998/07/17 20:13:04 jkh Exp % .\" jpman %Id: dump.8,v 1.2 1997/06/12 05:57:09 yugawa Stab % .\" .Dd June 16, 1993 .Dt DUMP 8 .Os BSD 4 .Sh 名称 .Nm dump .Nd ファイルシステムのバックアップ .Sh 書式 .Nm dump .Op Fl 0123456789acknu .Op Fl B Ar records .Op Fl b Ar blocksize .Op Fl d Ar density .Op Fl f Ar file .Op Fl h Ar level .Op Fl s Ar feet .Op Fl T Ar date .Ar filesystem .Nm dump .Op Fl W Li \&| Fl w .Pp .in -\\n(iSu ( .Bx 4.3 形式のオプションは後方互換性のために実装されていますが、 ここでは説明していません。) .Sh 解説 .Nm は、ファイルシステムを調べて バックアップする必要のあるファイルを決定します。 これらのファイルは、指定されたディスク、テープや、 その他の記憶メディアへ保存のためコピーされます (リモートバックアップについては、 .Fl f オプションを参照)。 ダンプの大きさが記録メディアの容量より大きい場合は、 複数ボリュームに分割します。 たいていのメディアの容量は、メディアの終りを通知されるまで 書き込んでみることで決定します。 この方法は、 .Fl a オプションにより強制的に使用することもできます。 .Pp メディアの終りを正しく通知できないメディア (一部の カートリッジ・テープドライブ等) の容量は、 テープ長と記録密度やブロック数のオプションから求め、 各ボリュームはすべて同じ容量を持つものとします。 デフォルトでは、 オペレータにメディア交換を要求した後の各ボリュームにも 同じ出力ファイル名を使用します。 .Pp .Nm は、次のオプションをサポートしています。 .Bl -tag -width Ds .It Fl 0\-9 ダンプレベル。 レベル 0 はフルバックアップを意味し、ファイルシステム全体をコピー することを保証します (ただし以下の .Fl h オプションにも注意して下さい)。 0 より大きなレベル番号はインクリメンタルバックアップを意味し、 前回のダンプ (今回指定したものより低いレベルのダンプ) 以降に作られたか修正されたすべてのファイルをコピーします。 デフォルトのレベルは 0 です。 .It Fl B Ar records ボリュームあたりの 1 KB ブロック数です。 このオプションは、テープ長と記録密度を基にしたテープ容量より 優先されます。 .It Fl a .Dq オートサイズ 全てのテープ長の考慮をせず、メディアの終了を通知されるまで、強制的に 書き込みを続けます。現在のほとんどのテープドライブでは、この方法により もっとも良い結果が得られます。特に、使いかけのテープに追加したり、 ハードウェア圧縮機能のあるテープドライブ(圧縮率がどの程度になるか不確かな もの)を使用したりする場合にこのオプションを使用することをお薦めします。 .It Fl b Ar blocksize ダンプレコードあたりのブロックサイズを K バイト単位で指定します。 .It Fl c カートリッジテープドライブ用に、記録密度とテープ長のデフォルトをそれぞれ 8000 bpi、1700 feet に変更します。 .It Fl h Ar level ダンプレベルが .Ar level 以上の時に、ユーザが指定した .Dq nodump フラグ .Dp Dv UF_NODUMP に従います (h: honor the flag)。 デフォルトの honor レベルは 1 ですから、 そのようなファイルは、インクリメンタルダンプからは省かれますが、 フルバックアップには含まれます。 .It Fl d Ar density テープの記録密度を .Ar density に設定します。デフォルトは 1600BPI です。 .It Fl f Ar file バックアップの出力先ファイルを指定します。 出力先ファイルとしては、 .Pa /dev/rst0 (テープドライブ)や .Pa /dev/rfd1 (フロッピーディスクドライブ)のようなデバイスファイル、 通常ファイル、 .Ql Fl (標準出力)を指定することができます。 -複数のファイル名を、カンマで区切って一つの引数として指定する +複数のファイル名を、コンマで区切って一つの引数として指定する ことができます。 各ファイルは、リストされた順に一つのダンプボリュームに使用されます。 指定した名前の数より多くのボリュームが必要な場合、 メディアの交換を要求した後、最後のファイル名を残りのすべての ボリュームに使用します。 ファイル名が、 .Dq host:file または、 .Dq user@host:file の形式である場合、 .Nm は、 .Xr rmt 8 を使用してリモートホスト上の指定されたファイルに書き込みます。 リモートの .Xr rmt 8 のデフォルトのパス名は .Pa /etc/rmt ですが、環境変数 .Ev RMT の値が優先されます。 .It Fl k リモートのテープサーバとの通信でケルベロス認証を使います。 (このオプションが有効な状態で .Nm がコンパイルされた場合にのみ利用できます。) .It Fl n .Nm がオペレータに注意を促す時に、 .Xr wall 1 に似た方法で .Dq operator グループに属するすべてのユーザにメッセージを送ります。 .It Fl s Ar feet テープの容量を計算する時に記録密度とともに使います。 この容量を超えた場合に、 .Nm は新しいテープを要求します。 このオプションはやや控え目に指定することをお勧めします。 デフォルトのテープの長さは、2300 フィートです。 .ne 1i .It Fl T Ar date .Pa /etc/dumpdates から得られた日時の代わりに、指定された date をダンプの起点として 使います。date の形式は .Xr ctime 3 のそれと同じです。このオプションは期間を指定してバックアップを 取るダンプスクリプトで有用です。 .Fl T オプションは .Fl u オプションと同時には指定できません。 .It Fl u ダンプが成功した後で、 .Pa /etc/dumpdates ファイルを更新します。 .Pa /etc/dumpdates は人が読めるファイルであり、各行に以下のレコードが フリーフォーマットで記録されています : ファイルシステム名、インクリメントレベル、 .Xr ctime 3 形式のダンプ日付。 各レベルとファイルシステムごとにエントリが一つだけ存在します。 必要なら、 .Pa /etc/dumpdates の各フィールドを編集しても構いません。 .It Fl W .Nm は、ダンプの必要があるファイルシステムをオペレータに表示します。 この情報は .Pa /etc/dumpdates と .Pa /etc/fstab ファイルから集められます。 .Nm は、 .Pa /etc/dumpdates の中の各ファイルシステム毎に最新のダンプ日付とレベルを示し、 ダンプするべきファイルシステムを明らかにします。 .Fl W オプションが指定された場合、その他のすべてのオプションは無視され、 .Nm は直ちに終了します。 .It Fl w W と同様ですが、ダンプの必要のあるファイルシステムのみを表示します。 .El .Pp .Nm は、以下に示す場合にオペレータの介入を要求します : テープの終了、 ダンプの終了、 テープ書き込みエラー、 テープオープンエラー、 ディスク読み込みエラー (32 回を越えた場合)。 処理を続けられない時や何か大変まずい事態になった場合には、 .Nm は、 .Fl n オプションがあればすべてのオペレータへ警告したうえで、 .Em dump の制御端末上でオペレータとやりとりします。 .Nm コマンドからのすべての質問には、 .Dq yes または .Dq no で適切に答えなければなりません。 .Pp フルダンプの実施には多くの時間と労力がかかるので、 .Nm は各テープボリュームの先頭にチェックポイントを設定します。 何らかの理由により、あるボリュームの書き込みを失敗した場合には、 テープの巻き戻し、排出、新しいテープのマウントの後で、 .Nm はオペレータの許可の下でチェックポイントから実行を再開します。 .Pp .Nm は処理の進行を定期的にオペレータに報告します。 報告には、少なめに推定される書き込みブロック数、 必要なテープ数、完了までの時間、テープ交換までの時間、 を含みます。 .Nm に使っている端末が使用中であることが他人にも分かるように、 このメッセージは冗長になっています。 .Pp ディスクに壊滅的なトラブルが起きた時に、 バックアップテープやファイルからディスクを復元するために 必要な時間は、 インクリメンタルダンプを適当なシーケンスで実行する事によって 最小にする事ができます。 最小のテープ数でこれを行なう効果的な方法を示します。 .\" staggering .Bl -bullet -offset indent .It 常にレベル 0 のバックアップから開始します。例えば以下の通りです。 .Bd -literal -offset indent /sbin/dump -0u -f /dev/nrst0 /usr/src .Ed .Pp これを一ヵ月か二ヵ月毎に新しいテープに対して実施し、 ずっと保存します。 .It 0 レベルのダンプの後は、アクティブなファイルシステムのダンプを、 修正ハノイの塔アルゴリズムによる 次の様なダンプレベルシーケンスによって、毎日行います。 .Bd -literal -offset indent 3 2 5 4 7 6 9 8 9 9 ... .Ed .Pp 毎日のダンプには、一週間毎に繰り返し使われる事になる 一定の数のテープを使う事ができます。 週毎にレベル 1 ダンプを行ない、毎日のハノイ・シーケンスは レベル 3 から開始します。 週毎のダンプには、ダンプするファイルシステム毎に、これも繰り返し 使われる事になる一定数のテープを使います。 .El .Pp 何ヵ月かの後、毎日と毎週のテープはダンプサイクルから順に外し、 新品のテープを導入すべきです。 .Sh 環境変数 環境変数 .Ev RMT は、リモートの .Xr rmt 8 プログラムのパス名を決定するのに用いられます。 .Sh 関連ファイル .Bl -tag -width /etc/dumpdates -compact .It Pa /dev/rst0 デフォルトのダンプテープユニット .It Pa /etc/dumpdates ダンプの日付を記録するファイル .It Pa /etc/fstab ダンプテーブル : ファイルシステムと頻度を決めるファイル .It Pa /etc/group .Em operator グループを検索する .El .Sh 関連項目 .Xr fstab 5 , .Xr ft 8 , .Xr restore 8 , .Xr rmt 8 .Sh 診断 詳しいメッセージがたくさん出ます。 .Pp 正常時は終了コード 0 で終了します。 開始時のエラーは終了コード 1 で、 異常終了は終了コード 3 で表されます。 .Sh バグ 32 個未満のファイルシステムからの読み取りエラーは無視されます。 .Pp 各リール (ボリューム) ごとに新たなプロセスが作られ、 リールを書き終った親プロセスは テープ全体の書き込みが終るまで待っています。 .Pp 現状では、 .Xr physio 9 スライスのリクエストは 64 KB の塊になります。したがって、それより大きな テープのブロックサイズを使用することはできず、 .Nm はこれが発生するのを防ぎます。 .Pp .Nm の .Fl W や .Fl w オプションは、 .Pa /etc/fstab にリストされていても、 .Pa /etc/dumpdates に記録のないファイルシステムについては報告しません。 .Pp .Nm コマンドが、 ダンプシーケンスについて知っていて、 使い散らかしたテープの使用履歴を管理でき、 どのテープをマウントすれば良いかオペレータに教えてくれ、 .Xr restore を実行するオペレータをもっと助けてくれたら、 もっと使いやすいでしょうね。 .Pp セキュリティ的な歴史により、 .Nm は、root 以外のユーザでリモートバックアップを行うことはできません。 これは、 .Bx Free の今後のバージョンでは修正されるでしょう。 現状では、(従来通り) setuid されていれば正常に動作しますが、 セキュリティ的なリスクを伴います。 .Sh 歴史 .Nm コマンドは、 .At v6 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/fsdb.8 b/ja_JP.eucJP/man/man8/fsdb.8 index a3c283274c..ac0d71858d 100644 --- a/ja_JP.eucJP/man/man8/fsdb.8 +++ b/ja_JP.eucJP/man/man8/fsdb.8 @@ -1,248 +1,255 @@ .\" %NetBSD: fsdb.8,v 1.2 1995/10/08 23:18:08 thorpej Exp % .\" .\" Copyright (c) 1995 John T. Kohl .\" 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. 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. .\" -.\" %Id: fsdb.8,v 1.3.2.1 1997/03/03 07:01:25 mpp Exp % +.\" %Id: fsdb.8,v 1.3.2.2 1998/08/12 06:15:16 charnier Exp % .\" jpman %Id: fsdb.8,v 1.3 1997/06/23 15:01:41 horikawa Stab % .\" .Dd September 14, 1995 .Dt FSDB 8 .Os FreeBSD .Sh 名称 .Nm fsdb .Nd FFS デバッグ/編集ツール .Sh 書式 .Nm .Op Fl d .Op Fl f .Ar fsname .Sh 解説 .Nm は .Ar fsname (通常は raw ディスクパーティション) を open し、そのファイルシステムの inode データを操作するためのコマンドを受け付けます。コマンドは .Ic "fsdb (inum X)>" のプロンプトに対して入力します。ここでの .Va X は現在選択されている i-number となります。最初に選択されている inode はファイルシステムのルート (i-number 2) となります。 コマンドプロセッサには .Xr libedit 3 ライブラリを使用しており、コマンド行を編集することによってタイピングの 量を減らすことができます。 コマンドループから抜けて終了する時には、ファイルシステムのスーパブロック が dirty とマークされ、バッファリングされているブロックがあれば ファイルシステムに書き込まれます。 .Pp .Fl d オプションを指定すると、デバッグ情報 (元は .Xr fsck 8 のコードに由来するもの) を出力します。 .Pp .Fl f オプションは歴史的な理由により残されているもので、特に意味は持ちません。 .Sh コマンド 組み込みの .Xr libedit 3 のコマンドの他に .Nm は以下のコマンドをサポートしています: .Pp .Bl -tag -width indent -compact .It Cm help 入力できるコマンドのリストを表示します。 .Pp .It Cm inode Ar i-number 新しい現在の inode として inode .Ar i-number を選択します。 .Pp .It Cm back 以前の inode に戻ります。 .Pp .It Cm clri 現在の inode をクリアします。 .Pp .It Cm lookup Ar name .It Cm cd Ar name .Ar name を現在のディレクトリの中で探し、その inode を現在の inode に設定します。 .Ar name はマルチコンポーネントの名前か、スラッシュで始めて検索をルートの inode から始めることを指定できます。パス名の中のコンポーネントが見 つからない場合、最後に有効であったディレクトリがアクティブな inode と して使われます。 .br このコマンドは開始する inode がディレクトリの場合のみ有効です。 .Pp .It Cm active .It Cm print アクティブな inode を表示します。 .Pp .It Cm uplink アクティブな inode のリンク数をインクリメントします。 .Pp .It Cm downlink アクティブな inode のリンク数をデクリメントします。 .Pp .It Cm linkcount Ar number アクティブな inode のリンク数を .Ar number に設定します。 .Pp .It Cm ls 現在の inode のディレクトリエントリをリストします。このコマンドは現在 の inode がディレクトリである場合のみ有効です。 .Pp .It Cm rm Ar name .It Cm del Ar name 現在のディレクトリ inode からエントリ .Ar name を取り除きます。このコマンドは現在の inode がディレクトリで ある場合のみ有効です。 .Pp .It Cm ln Ar ino Ar name 現在のディレクトリ inode に inode .Ar ino へのリンクを .Ar name の名前で作成します。このコマンドは現在の inode がディレクトリである場 合のみ有効です。 .Pp .It Cm chinum Ar dirslot Ar inum ディレクトリエントリ .Ar dirslot 中の i-number を .Ar inum に変更します。 .Pp .It Cm chname Ar dirslot Ar name ディレクトリエントリ .Ar dirslot 中の名前を .Ar name に変更します。 このコマンドではディレクトリエントリを拡張することはできません。名前が 現在存在するディレクトリスロットに収まる場合にのみ、エントリの名前の変 更が可能です。 .Pp .It Cm chtype Ar type 現在の inode のタイプを .Ar type に変更します。 .Ar type には .Em file , .Em dir , .Em socket , .Em fifo のいずれかが指定できます。 .Pp .It Cm chmod Ar mode 現在の inode のモードビットを .Ar mode に変更します。 このサブコマンドではファイルのタイプを変更することはできません。その場 合は .Ic chtype を使ってください。 .Pp .It Cm chflags Ar flags 現在の inode のファイルフラグを .Ar flags に変更します。 .Pp .It Cm chown Ar uid 現在の inode の所有者を .Ar uid に変更します。 .Pp .It Cm chgrp Ar gid 現在の inode のグループを .Ar gid に変更します。 .Pp .It Cm chgen Ar gen 現在の inode の世代番号 (generation number) を .Ar gen に変更します。 .Pp .It Cm mtime Ar time .It Cm ctime Ar time .It Cm atime Ar time それぞれ、現在の inode の修正時間、変更時間、アクセス時間を .Ar time に変更します。 .Ar time は .Em YYYYMMDDHHMMSS[.nsec] の形式でなければなりません。ここで、 .Em nsec はオプションで指定できるナノ秒の値となります。もし、ナノ秒が指定されて いないと、 .Va mtimensec , .Va ctimensec , .Va atimensec のそれぞれのフィールドにはゼロがセットされます。 .Pp .It Cm quit, Cm q, Cm exit, Em プログラムを終了します。 .El .Sh 関連項目 .Xr libedit 3 , .Xr fs 5 , .Xr clri 8 , .Xr fsck 8 .Sh バグ ``short'' のシンボリックリンクの操作は動作しません。(特に、 シンボリックリンクのタイプは変更しないでください。) .br モードはシンボル名ではなく数字で指定してください。 .br 多分 .Nm に実装されていないことで、もっとやりたいことが沢山あるでしょう。 .br .Xr libedit 3 のリファレンスページはまだ書かれていません。 .Sh 歴史 .Nm は .Xr fsck 8 のソースコードを使ってファイルシステムの操作のコードのほとんどを実装し ています。 .Nm -の残りの部分は NetBSD において John T. Kohl によって最初に書かれました。 +の残りの部分は、最初 +.Bx Net +において +.An John T. Kohl +によって書かれました。 .br -FreeBSD へは Peter Wemm によって移植されました。 +.Bx Free +への移植は +.An Peter Wemm +によって行われました。 .Sh 警告 このツールは最大限に注意を払って使って下さい。 .Xr fsck 8 を使っても修復できないほど FFS ファイルシステムを壊す恐れがあります。 diff --git a/ja_JP.eucJP/man/man8/ipfw.8 b/ja_JP.eucJP/man/man8/ipfw.8 index 8f898d52d9..fcb4c37871 100644 --- a/ja_JP.eucJP/man/man8/ipfw.8 +++ b/ja_JP.eucJP/man/man8/ipfw.8 @@ -1,510 +1,516 @@ .Dd July 20, 1996 .\" jpman %Id: ipfw.8,v 1.4 1997/05/19 17:19:51 horikawa Stab % .Dt IPFW 8 SMM .Os FreeBSD .Sh 名称 .Nm ipfw .Nd IPファイアウォール制御ユーティリィティ .Sh 書式 -.Nm +.Nm ipfw +.Oo +.Fl q +.Oc .Ar file .Nm ipfw .Oo .Fl f | .Fl q .Oc flush .Nm ipfw .Oo .Fl q .Oc zero .Op Ar number ... .Nm ipfw delete .Ar number ... .Nm ipfw .Op Fl aftN list .Op Ar number ... .Nm ipfw .Oo .Fl ftN .Oc show .Op Ar number ... .Nm ipfw .Oo .Fl q .Oc add .Op Ar number .Ar action .Op log .Ar proto from .Ar src to .Ar dst .Op via Ar name | ipno .Op Ar options .Sh 解説 書式の 1 行目のようにファイル名を指定した場合は、 .Ar file を 1 行ずつ、引数として読み込みます。 .Pp .Nm はパケットごとに、マッチするルールが見つかるまでルールリストを調べます。 各ルールにはパケット数とパケットサイズの 2 つのカウンタが用意されていて、 パケットがマッチするとカウンタ値は更新されます。 .Pp 全ルールは 1 から 65534 の範囲の行番号で順序付けられます。この番号によって ルールの並べ変えと削除を行ないます。 ルールのマッチングは昇順で行なわれ、最初にマッチしたものが適用されます。 複数のルールが同じ番号を共有することも可能です。この場合はルールが追加された 順序でマッチングが行なわれます。 .Pp 番号を指定せずにルールを追加した場合は、直前のルールの番号に 100 を加えたものと なります。 ルールの番号が 65434 より大きい場合は、新しいルールは最後のルールに追加されます 。 .Pp delete 操作は .Ar number で指定された番号を持つ最初のルールを、もし有れば、削除します。 .Pp list 操作は現在のルール一覧を出力します。 .Pp show 操作は `ipfw -a list' と同じ結果を出力します。 .Pp zero 操作は .Ar number で指定された番号を持つルールのカウンタをクリアします。 .Pp flush 操作は全ルールを削除します。 .Pp 記号 `#' で始まる行および空行は無視されます。 .Pp どんな場合でも次のルールは存在します: .Bd -literal -offset center 65535 deny all from any to any .Ed .Pp 全パケットを拒否するのがデフォルトのポリシーです。 これを修正し、必要なルールを設定して下さい。 .Pp オプションは以下のものが利用可能です。 .Bl -tag -width flag .It Fl a list 操作の時、カウンタの値を表示します。 show の項を参照のこと。 .It Fl f 操作を実行する際に確認メッセージを表示しません。 flush 操作も無条件に実行されます。 .Ar (注意) プロセスに tty が関連付けられていない場合には、 このオプションが指定されているものとして実行されます。 .It Fl q -ルールを add, zero, flush する際に、メッセージの出力を抑制します -('-f' も含まれます)。 +ルールを add, zero, flush する際に、メッセージの出力を抑制します ( +.Fl -f +も含まれます)。 このオプションは、リモートログインセッションでルールを調整する際に、 (例えば sh /etc/rc.firewall のようにして)スクリプトの中から複数の ipfw コマンド を 実行する場合や、 多数の ipfw ルールを記述したファイルを用いる場合に 便利です。 flush 操作が通常の(冗舌な)状態で実行されると、メッセージが出力されます。 ここで、すべてのルールは削除されるので、メッセージをログインセッションに 送ることができず、ログインセッションがクローズされてしまうので、 残りのルールセットは実行されません。 この状態を修復するにはコンソールへのアクセスが必要となります。 .It Fl t list 操作の時に、最後にマッチしたパケットのタイムスタンプを表示します。 .It Fl N IPアドレスとサービス名をリゾルブしてホスト名で表示します。 .El .Pp .Ar action : .Bl -hang -offset flag -width 1234567890123456 .It Ar allow マッチするパケットを通過させ、マッチングを終了します。 .Ar pass , .Ar permit , .Ar accept と同じです。 .It Ar deny マッチするパケットを破棄し、マッチングを終了します。 .Ar drop は .Ar deny と同じです。 .It Ar reject (パケットを送らないよう嘆願) マッチするパケットを破棄し、 ICMP の host unreachable を送信して、終了します。 .It Ar unreach code パケットを破棄し、ICMP の unreachable に .Ar code を付けて送信します。 .Ar code は、 0 から 256 までの数字、もしくは、以下に列挙する別名のいずれかです: .Ar net, .Ar host , .Ar protocol , .Ar port , .Ar needfrag , .Ar srcfail , .Ar net-unknown , .Ar host-unknown , .Ar isolated , .Ar net-prohib , .Ar host-prohib , .Ar tosnet , .Ar toshost , .Ar filter-prohib , .Ar host-precedence , .Ar precedence-cutoff 。送信後、終了します。 .It Ar reset TCP パケットのみに対応。 パケットを破棄し、TCP の (RST) を送信し、終了します。 .It Ar count マッチするパケットのカウンタを更新し、引続きマッチングを行ないます。 .It Ar divert port マッチするパケットを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、マッチングを終了します。 .It Ar tee port マッチするパケットのコピーを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、引続きマッチングを行ないます。 .It Ar skipto number .Ar number より小さな番号のルールを飛び越して、 .Ar number 以上の番号のルールで最初に存在するものから、マッチングを継続します。 .El .Pp パケットが .Ar divert や .Ar tee のどちらかひとつ以上、もしくは両方の組合せの、複数のルールにマッチした場合、 最後のものを除き、無視します。 .Pp カーネルが .Dv IPFIREWALL_VERBOSE オプション付きでコンパイルされている場合に、``log'' が指定されているルールと マッチした時は、メッセージをコンソールに表示します。 もし、 .Dv IPFIREWALL_VERBOSE_LIMIT オプション付きでコンパイルされている場合、一連のルールに対し指定されたパケット 数を受信した後、メッセージの表示を中止します。 パケットのカウンタをクリアすれば再びメッセージを出力します。 .Pp コンソールへの表示とその制限数は、 .Xr sysctl 8 を通し、直接設定できます。 .Pp .Ar proto : .Bl -hang -offset flag -width 1234567890123456 .It Ar ip 全パケットがマッチします。別名 .Ar all も使えます。 .It Ar tcp TCP パケットのみマッチします。 .It Ar udp UDP パケットのみマッチします。 .It Ar icmp ICMP パケットのみマッチします。 .It Ar 指定されたプロトコルのパケットのみマッチします ( .Pa /etc/protocols のリストを参照の事) .El .Pp .Ar src と .Ar dst : .Pp .Bl -hang -offset flag .It Ar
.Op Ar ports .El .Pp .Em
は以下のように指定できます。 .Bl -hang -offset flag -width 1234567890123456 .It Ar ipno IP番号を 1.2.3.4 の形式で指定します。指定されたアドレスのみがマッチします。 .It Ar ipno/bits IP番号とネットマスクの幅を 1.2.3.4/24 の形式で指定します。 この場合は 1.2.3.0 から 1.2.3.255 のアドレスがマッチします。 .It Ar ipno:mask IP番号とネットマスクの幅を 1.2.3.4:255.255.240.0 の形式で指定します。 この場合は 1.2.0.0 から 1.2.15.255 のアドレスがマッチします。 .El .Pp アドレスの前に ``not'' を付けることによって、マッチの意味を反転させる ことができます(指定されたアドレス以外の総てのアドレスがマッチします)。 これはポート番号には影響しません。 .Pp TCP と UDP ではさらに、 .Em ports を以下のように指定できます。 .Pp .Bl -hang -offset flag .It Ns {port|port-port} Ns Op ,port Ns Op ,... .El .Pp ポート番号の代わりに(ファイル .Pa /etc/services から取った)サービス名を使用できます。 port-port の書式で、最初の値に限り範囲指定できます。 列挙出来るポート数は .Pa /usr/src/sys/netinet/ip_fw.h で .Dv IP_FW_MAX_PORTS として定義されています。 .Pp 断片化されたパケットでオフセットが非 0 のもの (すなわち、最初の断片ではないもの) は、 一つ以上のポート仕様を持つルールにはマッチしません。? 断片化されたパケットへのマッチングに関する詳細は .Ar frag オプションを参照してください。 .Pp マッチングのルールは、入ってくるパケットか、出ていくパケット、もしくはその両方 に対し適応されます。 .Ar in を指定すれば、入ってくるパケットのみにルールを適応します。 .Ar out を指定すれば、出ていくパケットのみに適応します。 .Pp 特定のインタフェースを通過するパケットには、 .Ar via を用いてインタフェースを指定します: .Bl -hang -offset flag -width 1234567890123456 .It Ar via ifX .Ar ifX を通過するパケットを指定します。 .It Ar via if* .Ar ifX を通過するパケットを指定します。X はいずれかのユニットの番号です。 .It Ar via any .Em いずれか のインタフェースを通過するパケットを指定します。 .It Ar via ipno IP アドレスが .Ar ipno のインタフェースを通過するパケットを指定します。 .El .Pp .Ar via を用いると、常時指定されたインタフェースがチェックされます。 .Ar recv や .Ar xmit を、 .Ar via の代わりに指定すると、 受信、もしくは送信インタフェースのみが(各々に)チェックされます。 両方を指定すれば、 受信と送信の両方のインタフェースを通るパケットを指定できます。 例 : .Pp .Dl "ipfw add 100 deny ip from any to any out recv ed0 xmit ed1" .Pp .Ar recv で指定したインタフェースでは、受信と送信、両方のパケットをチェックできます。 それに対し、 .Ar xmit で指定したインタフェースでは、送信パケットのみとなります。 それゆえに、 .Ar xmit を指定すると .Ar out が、必須です( .Ar in は不可)。 .Ar via と共に .Ar xmit もしくは、 .Ar recv を指定する事はできません。 .Pp 個々のパケットは、受信用ないし送信用インタフェースを持たないかもしれません。 ローカルホストで発生したパケットには受信用のインタフェースはないし、 ローカルホスト内宛のパケットは、送信用インタフェースが有りません。 .Pp 追加用 .Ar options : .Bl -hang -offset flag -width 1234567890123456 .It frag パケットが断片(フラグメント)化されたデータグラムの一部で、かつデータグラムの 先頭の断片でない場合にマッチします。 .Ar frag を、 .Ar tcpflags や TCP/UDP ポート仕様と共に使用することはできません。 .It in ネットワークから受信したパケットのみマッチします。 .It out ネットワークへ送信するパケットのみマッチします。 .It ipoptions Ar spec IP ヘッダが、 .Ar spec に指定されたコンマで区切られたオプションのリストを含む場合にのみマッチします。 サポートされている IP オプションは .Ar ssrr (strict source route), .Ar lsrr (loose source route), .Ar rr (record packet route), .Ar ts (timestamp) です。 ``!'' によって、特定のオプションを含めないよう指定できます。 .It established RST または ACK ビットがセットされているパケットのみマッチします。 このビットがセットされることがあるのは TCP のパケットのみです。 .It setup SYN ビットがセットされ ACK がセットされていないパケットのみマッチします。 このビットがセットされることがあるのは TCP のパケットのみです。 .It tcpflags Ar spec TCP ヘッダが .Ar spec に指定されたコンマで区切られたフラグのリストを含む場合にのみマッチします。 サポートされているフラグは、 .Ar fin , .Ar syn , .Ar rst , .Ar psh , .Ar ack , .Ar urg です。 ``!'' によって、特定のフラグを含めないよう指定できます。 .Ar tcpflags 仕様を含むルールは非 0 のオフセットを持つ断片化されたパケットに マッチすることはありません。 断片化されたパケットに関するマッチについての詳細は .Ar frag オプションを参照してください。 .It icmptypes Ar types ICMP タイプが .Ar types で指定されたリスト中に存在する場合にのみ適用されるルールとなります。 リストはレンジの組み合わせでも、各タイプをコンマで区切ったものでもどちらでも かまいません。 .El .Sh チェックリスト ルールを構成する際に考慮すべき重要な点を述べます。 .Bl -bullet -hang -offset flag .It かならず送信パケットと受信パケットの両方のパケットをフィルタリングします。 ほとんどのネットワークコネクションではパケットが双方向に流れることが必要です。 .It テストは細心の注意を払って行ないます。テストの際にはコンソールの近くにいる のがよいでしょう。 .It ループバックインタフェースのことを忘れてはなりません。 .El .Sh 長所 ファイアウォールが常に破棄するパケットが 1 種類あります。 フラグメントオフセットが 1 のフラグメントパケットです。 これはパケットとしては有効なものですが、利用目的はファイアウォールを かいくぐることしかありません。 .Pp ネットワーク越しにログインしている場合、LKM 版の .Nm をロードすることはそれほど単純なことではありません。 以下のコマンドを奨めます。 .Bd -literal -offset center modload /lkm/ipfw_mod.o && \e ipfw add 32000 allow all from any to any .Ed .Pp これに引続き、同じような状況で .Bd -literal -offset center ipfw flush .Ed .Pp とするのは良くありません。 .Sh パケットの行き先変更 指定されたポートを見ているソケットは、そのポートへ行き先変更されたパケットを、 全部受けとります。 .Xr divert 4 を参照して下さい。ポートを見ているソケットがない場合やカーネルがパケットの行き 先変更をサポートするようにはコンパイルされていない場合、パケットは破棄されます 。 .Sh 使用例 次のコマンドは .Em hacker.evil.org から .Em wolf.tambov.su の telnet ポートへ送られる全ての TCP パケットを拒否するルールを追加します。 .Pp .Dl ipfw add deny tcp from hacker.evil.org to wolf.tambov.su 23 .Pp 次のコマンドはネットワーク hackers からホスト my への全てのコネクションを 拒否します。 .Pp .Dl ipfw add deny all from 123.45.67.0/24 to my.host.org .Pp 次はカウントされている情報とタイムスタンプを見る例です .Pp .Dl ipfw -at l .Pp これはタイムスタンプを省略して次のように指定できます。 .Pp .Dl ipfw -a l .Pp 次のルールは 192.168.2.0/24 からの全ての受信パケットを、5000番のポートに 行き先変更するものです。 .Pp .Dl ipfw divert 5000 all from 192.168.2.0/24 to any in .Sh 関連項目 .Xr ip 4 , .Xr ipfirewall 4 , .Xr divert 4 , .Xr protocols 5 , .Xr services 5 , .Xr reboot 8 , .Xr syslogd 8 , .Xr sysctl 8 .Sh バグ .Pp .Em WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!! .Pp このプログラムはコンピュータをかなり使いにくい状態にしてしまう可能性があります 。 はじめて使用する時はコンソール上で実行し、理解していない操作は .Em 絶対に実行しない ようにして下さい。 .Pp 連続したエントリの操作もしくは追加に際し、サービス名やプロトコル名は使用できま せん。 .Pp 入ってきたパケットの断片(フラグメント)が .Ar divert によって行き先を変更されると、ソケットに配送される前に、組み立て直しをします。 それに対し、 .Ar tee を経由した断片(フラグメント)は、組み立て直しされません。 .Pp ポートの別名でダッシュ (-) を含むものは、リストの最初には書けません。 .Sh 作者 -Ugen J. S. Antsilevich, -Poul-Henning Kamp, -Alex Nash, -Archie Cobbs. -API based upon code written by Daniel Boulet for BSDI. +.An Ugen J. S. Antsilevich , +.An Poul-Henning Kamp , +.An Alex Nash , +.An Archie Cobbs . +API は +.An Daniel Boulet +が BSDI 向けに記述したコードに基づいています。 .Sh 歴史 .Nm は、FreeBSD 2.0 で最初に現れました。 diff --git a/ja_JP.eucJP/man/man8/ldconfig.8 b/ja_JP.eucJP/man/man8/ldconfig.8 index 574fe37113..92d4c443f9 100644 --- a/ja_JP.eucJP/man/man8/ldconfig.8 +++ b/ja_JP.eucJP/man/man8/ldconfig.8 @@ -1,161 +1,161 @@ .\" .\" Copyright (c) 1993 Paul Kranenburg .\" 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 Paul Kranenburg. .\" 3. 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. .\" .\" %Id: ldconfig.8,v 1.9.2.4 1998/03/03 07:00:19 jkh Exp % .\" jpman %Id: ldconfig.8,v 1.3 1997/07/22 16:49:42 horikawa Stab % .\" .Dd October 3, 1993 .Dt LDCONFIG 8 .Os FreeBSD .Sh 名称 .Nm ldconfig .Nd 共有ライブラリのキャッシュを設定する .Sh 書式 .Nm ldconfig .Op Fl Rmrsv .Op Fl f Ar hints_file .Op Ar directory | file Ar ... .Sh 解説 .Nm は、実効時リンカ .Xr ld.so 1 が、複数のディレクトリから利用可能な共有ライブラリを速く捜し出せるよう につかわれる .Dq ヒント の集合を準備するために使われます。 コマンドは、組み込みのシステムディレクトリと コマンドラインで指定された任意の .Ar ディレクトリ (を指定された順番) で共有ライブラリを探し、 その結果を .Pa /var/run/ld.so.hints に保存します。 これは、 .Xr ld.so 1 が要求された共有ライブラリを読み込む際のディレクトリ検索操作 オーバヘッドをあらかじめ払っていることになります。 .Pp コマンドラインにて指定するファイル名は共有ライブラリを検査するディクトリ を含むことが期待されます。 各ディレクトリのパス名は改行文字から始まる必要があります。 空行およびコメント文字 .Ql \&# から始まる行は無視されます。 このファイルの標準の名前は、 .Xr /etc/ld.so.conf. です。 .Pp 共有ライブラリは、実行されようとするプログラムによって必要とされる ならば、利用可能なものが自動的に読み込まれることになります。 これは、実行形式に検索パスを保存する必要性を無くします。 .Pp .Ev LD_LIBRARY_PATH 環境変数は、キャッシュから使用するディレクトリ (や、その順序関係) を 上書きしたり、共有ライブラリを探す追加のディレクトリを 指定するために使われます。 .Ev LD_LIBRARY_PATH は、共有ライブラリを読み込む必要がある時、 .Xr ld.so 1 によって検索されるディレクトリパスのリストを コロン .Sq \: で区切って指定します。 これは、 .Xr ld 1 における .Fl L オプションと、実行時点では等価です。 .Pp .Nm ldconfig は典型的にはブート時の手続きのひとつとして実行されます。 .Pp 以下のオプションが .Nm ldconfig で認識されます。 .Bl -tag -width indent .It Fl R 以前に設定したディレクトリを再度検索します。 以前作成したヒントファイルをオープンし、 ヘッダからディレクトリリストを取り出します。 コマンドラインに指定したパス名も処理します。 .It Fl f Ar hints_file .Pa /var/run/ld.so.hints の変わりに、 特定のヒントファイルを読み込んだり、更新したり、その両方を 行ったりします。 このオプションは、テストのために提供されています。 .It Fl m ヒントファイルの内容を指定されたディレクトリで見付かったものに 置き換える代わりに、新しいディレクトリの内容を .Dq 併合 (merge) します。 以前の .Nm の実行によってヒントファイル内に記録されているディレクトリも、 新しい共有ライブラリのために再び検索されます。 .It Fl r 現在のヒントファイルの中身について、標準出力に表示します。 ヒントファイルは変更されません。 -ヒントファイル中のディレクトリリストが組込まれます。 +ヒントファイル中のディレクトリリストが組み込まれます。 .It Fl s 共有ライブラリのために、システムの組み込みディレクトリ .Pq Dq /usr/lib を検索しません。 .It Fl v 冗長モードに切替えます。 .Sh セキュリティ .Ev セット uid (set-user-Id) プログラムのアドレス空間に共有ライブラリを読み込む時には、 特別の注意をしなければなりません。 そのようなプログラムが実行される時はいつでも、 .Nm ld.so はヒントファイルからだけ共有ライブラリを読み込みます。 特に、 .Ev LD_LIBRARY_PATH は、ライブラリを探すためには使われません。 したがって、 ldconfig の役割には二つあります。 素早い検索のためにヒント集合を作成することに加えて、 共有オブジェクトが共有ライブラリを安全に読み込むことができる ディレクトリの集まりを特定することも、その役割です。 .Nm ldconfig によって特定されたディレクトリ集合は、システム管理者の制御下にあること が仮定されています。 .Sh 関連ファイル .Bl -tag -width /var/run/ld.so.hintsxxx -compact .It Pa /var/run/ld.so.hints デフォルトの .Dq ヒント ファイル。 .Sh 関連項目 .Xr ld 1 , .Xr link 5 .Sh 歴史 .Nm ユーティリティーは SunOS 4.0 ではじめに現れました。 現在の形は、 FreeBSD 1.1 からです。 diff --git a/ja_JP.eucJP/man/man8/mixer.8 b/ja_JP.eucJP/man/man8/mixer.8 index 4701cd7c15..5ccef81d7c 100644 --- a/ja_JP.eucJP/man/man8/mixer.8 +++ b/ja_JP.eucJP/man/man8/mixer.8 @@ -1,138 +1,137 @@ .\" Copyright (c) 1997 .\" Mike Pritchard . 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. Neither the name of the author 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 MIKE PRITCHARD 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 AUTHOR 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. .\" .\" jpman %Id: mixer.8,v 1.3 1997/08/16 13:24:56 horikawa Stab % .Dd January 9, 1997 .Dt MIXER 8 .Os .Sh 名称 .Nm mixer .Nd サウンドカードのミキサ値の設定/表示 .Sh 書式 .Nm .Op Fl f Ar device .Oo .Oo Ns .Ar dev Op Ar lvol Ns Op Ar :rvol .Li | recsrc | .Ar {^|+|-|=}rec rdev .Oc .Ar ... \& .Oc .Sh 解説 .Nm コマンドはサウンドカードのミキサデバイスのレベルを変更あるいは表示するのに 用いられます。 サウンドカードからの録音の開始および停止の制御にも用いられます。 変更可能なミキサデバイスは以下の通りです: .Pp .Bd -ragged -offset indent vol, bass, treble, synth, pcm, speaker, mic, cd, mix, pcm2, rec, igain, ogain, line1, line2, line3 .Ed .Pp 必ずしも上記全てのミキサデバイスが設定可能なわけではありません。 .Pp .Nm が引数なしで起動されると、 サポートされている全デバイスが現在の値と共に表示されます。 引数 .Ar dev が指定されると、その .Ar dev の設定値だけが表示されます。 .Pp ミキサの値 .Ar dev を変更する場合、オプションにより .Ar lvol Ns Op Ar :rvol の形式で左右のチャネル設定を指定できます。 .Ar lvol および .Ar rvol 引数の値は 0 から 100 までです。 .Pp 録音デバイスを変更するには以下のいずれかを行ないます: .Bl -tag -width =rec -offset indent .It ^rec .Ar rdev が録音可能デバイスであるかどうかを切り替える .It +rec .Ar rdev を可能な録音デバイスに加える .It -rec .Ar rdev を可能な録音デバイスから取り除く .It =rec 録音デバイスを .Ar rdev と設定する .El .Pp 上記コマンドは内部マスク上で動作します。 全オプションが解析されると、 設定がなされてからサウンドカードのマスクが読まれます。 これにより、サウンドカードが録音デバイスに何を使用しているのかを 「正確」に知ることができます。 .Pp オプション recsrc は現在の録音デバイスを表示します。 .Pp オプション .Fl f .Pa /dev/mixer は .Ar device をミキサデバイスとしてオープンします。 これが動作するのは、 .Fl f オプションが .Nm コマンドの直後の場合「のみ」です。 .Sh 関連ファイル .Bl -tag -width /dev/mixer -compact .It Pa /dev/mixer デフォルトのミキサデバイス .Sh 関連項目 .Xr cdcontrol 1 , .Xr cdplay 1 .Sh 歴史 .Nm コマンドは .Fx 2.0.5 で初めて登場しました。 .Sh 作者 -がオリジナルのソースを .An Craig Metz Aq cmetz@thor.tjhsst.edu と .An Hannu Savolainenl -が作成しました。 +がオリジナルのソースを作成しました。 ほとんどを .An John-Mark Gurney Aq jmg@FreeBSD.org が書き直しました。 このマニュアルページは .An Mike Pritchard Aq mpp@FreeBSD.org -によって記述されました。 +が記述しました。 diff --git a/ja_JP.eucJP/man/man8/mount.8 b/ja_JP.eucJP/man/man8/mount.8 index c90c927426..16800429b4 100644 --- a/ja_JP.eucJP/man/man8/mount.8 +++ b/ja_JP.eucJP/man/man8/mount.8 @@ -1,346 +1,347 @@ .\" Copyright (c) 1980, 1989, 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. .\" .\" @(#)mount.8 8.7 (Berkeley) 3/27/94 -.\" %Id: mount.8,v 1.11.2.4 1998/07/20 02:33:46 jkoshy Exp % +.\" %Id: mount.8,v 1.11.2.5 1998/08/12 06:19:35 charnier Exp % +.\" .\" jpman %Id: mount.8,v 1.2 1997/05/03 11:26:50 horikawa Stab % .\" .Dd March 27, 1994 .Dt MOUNT 8 .Os BSD 4 .Sh 名称 .Nm mount .Nd ファイルシステムをマウントする .Sh 書式 .Nm mount .Op Fl adfpruvw .Op Fl t Ar ufs | lfs | external_type .Nm mount .Op Fl dfpruvw .Ar special | node .Nm mount .Op Fl dfpruvw .Op Fl o Ar options .Op Fl t Ar ufs | lfs | external_type .Ar special node .Sh 解説 -.Nm mount +.Nm コマンドは .Xr mount 2 システムコールを使用して、 .Ar "スペシャルデバイス" かリモートノード (rhost:path) を ファイルシステムツリーの .Ar node へ接合します。 もし .Ar special または .Ar node が指定されなかった場合には、 .Xr fstab 5 ファイルから適切な情報を取得します。 .Pp システムは、現在マウントしているファイルシステムのリストを管理しています。 -.Nm mount +.Nm コマンドを引数を与えずに実行すると、このリストが表示されます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width indent .It Fl a .Pa /etc/fstab に記述されているファイルシステムを (``noauto'' が指定されているものは除いて) すべてマウントします。 通常、これはシステムの起動時に実行されます。 .It Fl d システムコールの実行以外のすべてのことを行ないます。 このオプションを .Fl v とともに指定することで、 -.Nm mount +.Nm コマンドが何をしようとしているのかを確認することができます。 .It Fl f ファイルシステムのマウント状態を読み書き可能から読み込み専用へ 変更しようとするときに、 すでにオープンされているファイルへの書き込み許可を強制的に取り消します。 また、正常かどうか不明なファイルシステムも強制的に読み書き可能に マウントします (危険なため注意して使って下さい)。 .It Fl o オプションは .Fl o -の後にカンマで区切って指定します。 +の後にコンマで区切って指定します。 以下のオプションが指定できます: .Bl -tag -width indent .It async 指定したファイルシステムのすべての .Tn I/O を非同期に行います。 このフラグを指定することは非常に .Em 危険 ですので、 システムクラッシュ時にファイルシステムを 作り直す用意ができていないかぎりは使うべきではありません。 .It force .Fl f オプションと同じです。 ファイルシステムのマウント状態を読み書き可能から読み込み専用へ 変更しようとするときに、 すでにオープンされているファイルへの書き込み許可を強制的に取り消します。 また、正常かどうか不明なファイルシステムも強制的に読み書き可能に マウントします (危険なため注意して使って下さい)。 .It noatime ファイル読み取り時に、ファイルアクセス時刻を更新しません。 このオプションが便利なのは、 多くのファイルを持ち、(ほとんどの場合重要ではない)ファイルアクセス時刻 を更新するよりも性能が重要であるファイルシステムです。 このオプションは現在ローカルファイルシステムでのみサポートされています。 .It nodev ファイルシステム上のキャラクタスペシャルデバイスや ブロックスペシャルデバイスを解釈しません。 このオプションは、サーバが自分自身以外のアーキテクチャ用の スペシャルデバイスを含むファイルシステムを持っている場合に有用です。 .It noexec マウントしているファイルシステム上のバイナリの 実行を許可しません。 このオプションは、サーバが自分自身以外のアーキテクチャ用の バイナリを含むファイルシステムを持っている場合に有用です。 .It nosuid 実効ユーザ ID (set-user-ID) セット、 実効グループ ID (set-group-ID) セットビットの 効果をなくします。 注意: .Xr suidperl 1 のような suid/sgid ラッパが 誰でも使えるようにシステムにインストールされている場合には、価値がありません。 .It rdonly .Fl r と同じく、マウントするファイルシステムを読み込み専用とします (スーパユーザでも書き込みできなくなります)。 .It sync ファイルシステムのすべての .Tn I/O を同期的に行います。 .It update .Fl u と同じく、すでにマウントされているファイルシステムの状態を変化させることを 指示します。 .It union マウントポイント以下の名前空間に、マウントされたファイルシステムのルートと マウントポイントに元から存在するディレクトリの両方が見えるようにします。 名前を検索するときは、マウントしたファイルシステムが先に検索されます。 ファイルが存在しない ために検索が失敗した場合は、既存のディレクトリがアクセスされます。 ファイル等の作成は、すべて マウントしたファイルシステム上に対して行われます。 .El .Pp -.Nm mount +.Nm が内部で知っているファイルシステムタイプ .Pf ( Fl t オプションを参照) 以外の、ファイルシステムタイプに固有のオプションは、 コンマで区切って指定します。このオプションは、オプションの前に .Dq \&- (ダッシュ記号)をつけて区別します。値を持つオプションは、 -option=valueの形で指定します。 たとえば、 .Bd -literal -offset indent mount -t mfs -o nosuid,-N,-s=4000 /dev/dk0b /tmp .Ed .Pp では、 -.Nm mount +.Nm コマンドは以下と同じものを実行します: .Bd -literal -offset indent /sbin/mount_mfs -o nosuid -N -s 4000 /dev/dk0b /tmp .Ed .It Fl p マウント情報を fstab の形式で表示します。暗黙的に .Fl v オプションを指定します。 .It Fl r ファイルシステムをリードオンリーで マウントします(スーパユーザでも書き込みは行えません)。 これは、 .Fl o オプションで .Dq rdonly を指定するのと同じです。 .It Fl t Ar "ufs \\*(Ba lfs \\*(Ba external type" .Fl t のあとの引数にはファイルシステムタイプを指定します。 デフォルトは、 .Ar ufs です。 .Fl t オプションによって、 -.Nm mount +.Nm コマンドの操作が、指定した特定のタイプのファイルシステムに対してのみ 行われるように指示することができます。 2つ以上のタイプを指定するにはコンマで区切ります。 ファイルシステムリスト の先頭に .Dq no という文字をつけることに よって、 -.Nm mount +.Nm コマンドの操作の対象と .Em しない ファイルシステムタイプを指定することができます。 以下に例を示します: .Bd -literal -offset indent mount -a -t nonfs,mfs .Ed .Pp は、 .Tn NFS と .Tn MFS を除いた、すべてのファイルシステムをマウントします。 .Pp type を内部で解釈できない場合、 -.Nm mount +.Nm は .Pa /sbin/mount_ Ns Em XXX というプログラムを実行しようとします。 .Em XXX の部分が type になります。たとえば nfs ファイルシステムは、 .Pa /sbin/mount_nfs というプログラムによってマウント されます。 .Pp ほとんどのファイルシステム用モジュールは カーネル中にない場合、ファイルシステム別のマウントプログラム によって動的に読み込まれます。 そこでは .Xr vfsload 3 サブルーチンが使われます。 この機構には書き込み可能な作業領域が必要なため、 .Pa /tmp があるファイルシステムタイプのモジュールはカーネルに 組み込まれている必要があります。さらに .Pa /etc/fstab において、 .Pa /tmp や .Pa /usr/bin/ld があるファイルシステムは 動的に読み込まれるファイルシステムよりも前に 記述されていなければいけません。 .It Fl u .Fl u フラグは、すでにマウントしているファイルシステム の状態の変更を指示します。 ファイルシステムを読み込み専用から読み書き可能へ、またその逆へも変更することを 含めて、すでに説明したすべてのオプション .Pf ( Fl o オプション) の内容を変更することができます。 読み書き可能なファイルシステムを読み出し専用に変更する場合、 書き込みのためにオープンしているファイルがあるときには、 .Fl f オプションを指定しなければ変更に失敗します。 どのオプションを適用するかを決定する際、最初に .Xr fstab 5 のテーブル を参照し、適用します。その次に .Fl o オプションの引数を適用し、最後に .Fl r 、 .Fl w オプションが適用されます。 .It Fl v 詳細なメッセージを表示します。 .It Fl w ファイルシステムを読み書き可能とします。 .Pp .Tn NFS ファイルシステムに対して指定できるオプションは、 .Xr mount_nfs 8 のマニュアルに記述されています。 .Sh 関連ファイル .Bl -tag -width /etc/fstab -compact .It Pa /etc/fstab ファイルシステムテーブル .El .Sh 診断 多岐に渡りますが、ほぼ全てが自明です。 .Pp .Dl XXXXX filesystem is not available .Pp カーネルはそのファイルシステムタイプをサポートしていません。 ファイルシステムのサポートは、 静的(カーネルコンパイル時)もしくは動的( .Xr modload 8 によってカーネルモジュールとしてロードされる)です。 通常、 .Nm もしくはそのサブプロセスは、 -ファイルシステムモジュールが静的に組込まれていない場合は、 +ファイルシステムモジュールが静的に組み込まれていない場合は、 .Xr vfsload 3 を使用して動的にそのファイルシステムモジュールをロードしようとします。 この場合上記エラーメッセージは、 モジュールをロードするパーミッションを持たないことも意味する場合があります。 .Sh 関連項目 .Xr mount 2 , .Xr vfsload 3 , .Xr fstab 5 , .Xr mount_cd9660 8 , .Xr mount_devfs 8 , .Xr mount_fdesc 8 , .Xr mount_kernfs 8 , .Xr mount_lfs 8 , .Xr mount_mfs 8 , .Xr mount_msdos 8 , .Xr mount_nfs 8 , .Xr mount_null 8 , .Xr mount_portal 8 , .Xr mount_procfs 8 , .Xr mount_umap 8 , .Xr mount_union 8 , .Xr umount 8 .Sh バグ 異常なファイルシステムをマウントすると、 システムクラッシュを引き起こすことがあります。 .Sh 警告 マウントに成功した後にマウントされたファイルシステムから .Pa ".." がアクセス可能かどうかは、 元のマウントポイントのパーミッションが決定します。 全ユーザが双方向にマウントポイントを行き来可能とするために最低限必要な パーミッションは 0111 (全員が実行可能) です。 .Sh 歴史 -.Nm mount +.Nm コマンドは .At v1 から登場しています。 diff --git a/ja_JP.eucJP/man/man8/mount_null.8 b/ja_JP.eucJP/man/man8/mount_null.8 index 24d059c920..214f7b0e4a 100644 --- a/ja_JP.eucJP/man/man8/mount_null.8 +++ b/ja_JP.eucJP/man/man8/mount_null.8 @@ -1,208 +1,210 @@ .\" .\" Copyright (c) 1992, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" John Heidemann of the UCLA Ficus project. .\" .\" .\" 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: @(#)mount_null.8 8.4 (Berkeley) 4/19/94 -.\" %Id: mount_null.8,v 1.5.2.1 1997/10/19 17:23:25 joerg Exp % +.\" %Id: mount_null.8,v 1.5.2.2 1998/08/12 06:28:38 charnier Exp % .\" jpman %Id: mount_null.8,v 1.2 1997/03/31 13:38:01 horikawa Stab % .\" .Dd April 19, 1994 .Dt MOUNT_NULL 8 .Os BSD 4.4 .Sh 名称 .Nm mount_null .Nd 何もしない(null)ファイルシステム層の利用のデモ .Sh 書式 .Nm mount_null .Op Fl o Ar options .Ar target .Ar mount_point .Pp .Sh 解説 .Nm mount_null は、null 層を作ります。これは、 ファイルシステムの名前空間の部分木を、グローバルなファイルシステムの名前空間 の別の場所にエイリアスします。 歴史的な ループバックファイルシステムと異なるのは、次の2つの点です: 1つは、ファイル システムのスタック化可能層(stackable layers)という技術を使って 実装されている点、もう1つはディレクトリの vnode だけでなく、 すべての下位層の vnode の上に ``null-node''が積み重なっているという点です。 .Pp オプションは以下のものがあります: .Bl -tag -width indent .It Fl o .Fl o のあとに、オプション文字列をコンマで区切って指定すること ができます。指定可能なオプションとその意味は .Xr mount 8 を参照してください。 .El .Pp この null 層は2つの目的を持っています。1つは、何もしない層 を提供することでファイルシステムの層の構築のデモを示すことです(実際には 何も行わないというわけではなく、 ループバックファイルシステムが提供することはすべて行います)。 もう1つはプロトタイプ層を提供することで す。層のフレームワークとして必要なことはすべて提供しているので、 ここから新しいファイルシステム層を簡単に作り出すことができます。 .Pp このマニュアルの以下の部分では、新しいファイルシステム層を構築するための 基礎として null 層を調べます。 .\" .\" .Sh 新しい null 層の例示 新しい null 層は .Xr mount_null 8 で作られます。 .Xr mount_null 8 は 2つの引数をとります。 1つは下位層の vfs のパス名(target-pn)で、 もう1つは null 層が現れる名前空間内のパス名(mount-point-pn)です。 null 層が適切な場所に置かれた後、 目的のディレクトリ階層(target-pn)の中身が マウント先(mount-point-pn)にエイリアスされます。 .\" .\" .Sh null 層の操作 null 層は最小のファイルシステム層であり、 すべての操作を下位層に処理させるためにバイパスするだけです。 ほとんどすべてのvnodeに対する操作はパスすることですが、 その動作のほとんどはバイパスルーチンに集中します。 .Pp バイパスルーチンは下位層における任意の vnode に対する操作を受け付けます。 まず、vnodeに対する操作の引数を検査し、 null-node を下位層において等価となるものに置き換えることから始めます。 次に、下位層の操作を起動します。 最後に、引数中の null-node を置き換えます。 もしその操作によってvnodeが返ってきたら、 その返ってきたvnodeの上に null-node を積みます。 .Pp ほとんどの操作をバイパスしますが、 .Em vop_getattr , .Em vop_inactive , .Em vop_reclaim , や .Em vop_print はバイパスしません。 .Em vop_getattr は戻り値の fsid を替えなければなりません。 .Em vop_inactive と vop_reclaim は、null 層特有のデータを解放するためにバイパスしません。 .Em vop_print は過度のデバッグ情報を避けるためにバイパスしません。 .\" .\" .Sh vnodeスタックの概説 マウントは null 層を下位層に関連づけます。 その結果 2 つの VFS が積み重なります。 vnode スタックはファイルがアクセスされるたびに必要に応じて作成されます。 .Pp 最初のマウントでは新しい null 層の根として単一の vnode スタックを作ります。 他のすべての vnode スタックは根の vnode スタックや他の null vnode スタックの 操作の結果として作られます。 .Pp vnode を返す操作の結果として新しい vnode スタックが生まれます。 バイパスルーチンは、呼出し側に vnode を返す前に新しい vnode の上に null-node を積みます。 .Pp 例えば、null 層を以下のようにマウントする例を想像します。 .Bd -literal -offset indent mount_null /usr/include /dev/layer/null .Ed .Pa /dev/layer/null にチェンジディレクトリすると、根の null-node (null 層をマウントした時 に作られたもの) が割り当てられます。 ここで .Pa sys をオープンすることを考えてみます。 vop_lookup は根の null-node で行なわれます。 この操作は下位層にバイパスされ、下位層が UFS の .Pa sys を表す vnode を返します。 それから null_bypass は UFS .Pa sys にエイリアスする null-node を構築し、呼出元にこれを返します。 null-node .Pa sys に対する以降の操作で他のvnodeスタックを構築する時には この処理が繰り返されます。 .\" .\" .Sh 他のファイルシステム層の作成 新しいファイルシステム層を構築する一番簡単な方法は、 null 層のコピーを作り、すべてのファイル、変数の名前を付け直し、 そしてそのコピーを変更することです。 -すべての変数の名前を替えるのにはsedが良く使われます。 +すべての変数の名前を変えるのには +.Xr sed 1 +が良く使われます。 .Pp umap 層は null 層の子孫の 1 例です。 .\" .\" .Sh 下位層の操作の起動 操作が完全にはバイパスできない時に 下位層にある操作を起動するための方法が 2 つあります。 それぞれの方法は違った状況に対して適切に使われます。 両方の場合とも、 その操作の引数を下位層のために正しく作るのはエイリアスする層の責任であり、 vnode 引数を下位層にマッピングします。 .Pp 最初の方法はエイリアスする層のバイパスルーチンを呼ぶことです。 この方法は、下位層で現在扱われている操作を起動したい時に最も適しています。 これはバイパスルーチンがすでにマッピングされているという利点があります。 この例として、 .Em null_getattrs が null 層にあります。 .Pp 2 つ目の方法は、 .Em VOP_OPERATIONNAME インタフェースを用いて下位層のvnodeの操作を直接起動することです。 この方法の利点は、下位層の任意の操作を起動するのが簡単ということにあります。 欠点は、vnode 引数は手動でマッピングされなければならないことです。 .\" .\" .Sh 関連項目 .Xr mount 8 .sp UCLA Technical Report CSD-910056, .Em "Stackable Layers: an Architecture for File System Development" . .Sh 歴史 .Nm mount_null は、 .Bx 4.4 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/mountd.8 b/ja_JP.eucJP/man/man8/mountd.8 index 8c0b0e7262..acd10cb1df 100644 --- a/ja_JP.eucJP/man/man8/mountd.8 +++ b/ja_JP.eucJP/man/man8/mountd.8 @@ -1,156 +1,153 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)mountd.8 8.4 (Berkeley) 4/28/95 -.\" %Id: mountd.8,v 1.5.2.4 1998/07/17 20:13:36 jkh Exp % +.\" %Id: mountd.8,v 1.5.2.5 1998/07/30 02:11:58 alex Exp % +.\" .\" jpman %Id: mountd.8,v 1.3 1997/05/19 17:06:05 horikawa Stab % .\" .Dd April 28, 1995 .Dt MOUNTD 8 .Os .Sh 名称 .Nm mountd .Nd リモートの .Tn NFS マウント要求に対するサービスを行うデーモン .Sh 書式 .Nm mountd -.Op Fl 2dlnr +.Op Fl 2dnr .Op Ar exportsfile .Sh 解説 .Nm は、他のクライアントマシンからの .Tn NFS マウント要求のためのサーバです。 .Nm は、 .Tn NFS サーバの仕様で示されているポート 番号でサービス要求を待ちます。詳細は RFC1094 .%T "Network File System Protocol Specification" の Appendix A と .%T "NFS: Network File System Version 3 Protocol Specification" の Appendix I を参照してください。 .Pp .Nm では、以下のオプションや引数を指定できます: .Bl -tag -width indent このサーバからファイルシステムをマウントするクライアントに対し、 管理者はバージョン 2 .Tn NFS プロトコルのみの使用を強制できます。 .It Fl d デバッグ情報を出力します。 -.It Fl l -成功した -.Nm -要求を全てログします。 .It Fl n 非ルートからのマウント要求を許可します。 このオプションは、 クライアントが PC であるなど、それがどうしても必要な 場合にのみ使うようにしてください。 その場合、自動的に vfs.nfs.nfs_privport sysctl フラグがクリアされます。 このフラグはカーネルが NFS 要求を受け付けるのが、 予約されたポートからのみか否かを制御します。 .It Fl r 通常ファイルに対するマウント RPC 要求を許可します。 これは、マウントプロトコルの仕様によると危険なようですが、 いくつかのディスクレスワークステーションは、スワップファイルをマウント しようとしますし、それが通常ファイルであることを期待しています。 通常ファイルは .Pa /etc/exports で指定できないので、スワップが置かれようとしているファイルシステム全体 が、 .Fl alldirs フラグとともに公開されていなければなりません。 .It Ar exportsfile exports ファイルの置き場所を指定します。 .El .Pp 起動されると、 .Nm は .Xr mount 2 システムコールによって、公開するホストアドレスとオプションを カーネル内にロードします。 公開設定ファイルを変更した場合は、 .Nm に対して回線切断シグナルを送って 公開設定情報を再ロードする必要があります。 .Dv SIGHUP を送ったあと(例: kill \-s HUP `cat /var/run/mountd.pid` )、exports ファイルにエラーがあるかどうか、 .Nm の出力をチェックしてください。 .Pp 動作中のカーネルは .Tn NFS を組み込んでいないものであると判明した場合、 .Nm は、 .Xr vfsload 3 を用いる .Xr modload 8 コマンドを使って、 .Tn NFS を含むローダブルカーネルモジュールのロードを試みます。 これが失敗するか、 .Tn NFS LKM が使用できない場合は、 .Nm はエラー終了します。 .Sh 関連ファイル .Bl -tag -width /var/run/mountd.pid -compact .It Pa /etc/exports 公開設定ファイル(エキスポートファイル) .It Pa /var/run/mountd.pid 現在実行中の .Nm のプロセス id .Tn ID .It Pa /var/db/mountdtab 現在マウントされているリモートファイルシステムのリスト .El .Sh 関連項目 .Xr nfsstat 1 , .Xr exports 5 , .Xr modload 8 , .Xr nfsd 8 , .Xr portmap 8 , .Xr showmount 8 .Sh 歴史 .Nm ユーティリティは .Bx 4.4 から登場しています。 diff --git a/ja_JP.eucJP/man/man8/ntpq.8 b/ja_JP.eucJP/man/man8/ntpq.8 index 11c5fc2578..c18eec4bce 100644 --- a/ja_JP.eucJP/man/man8/ntpq.8 +++ b/ja_JP.eucJP/man/man8/ntpq.8 @@ -1,609 +1,609 @@ ''' $Header ''' .\" jpman %Id: ntpq.8,v 1.3 1997/09/21 12:35:15 seki Stab % .\" .\" 対訳覚え書き (seki@sysrap.cs.fujitsu.co.jp 作成) .\" association アソシエーション .\" association identifier アソシエーション番号 (訳しすぎか?) .\" authentication 認証 .\" clock 時計 .\" dispersion ばらつき .\" fuzzball fuzzball (固有名詞; xntpd ベースでない NTP サーバ) .\" offset ずれ .\" peer peer のまま .\" poll ポーリングする .\" query 問い合わせ .\" reference clock 参照時計 .\" request 要求 .\" status word 状態ワード .\" time out (名詞) 制限時間 .de Sh .br .ne 5 .PP \fB\\$1\fR .PP .. .de Sp .if t .sp .5v .if n .sp .. .de Ip .br .ie \\n.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. ''' ''' Set up \*(-- to give an unbreakable dash; ''' string Tr holds user defined translation string. ''' Greek uppercase omega is used as a dummy character. ''' .tr \(*W-|\(bv\*(Tr .ie n \{\ .ds -- \(*W- .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch .ds L" "" .ds R" "" .ds L' ' .ds R' ' 'br\} .el\{\ .ds -- \(em\| .tr \*(Tr .ds L" `` .ds R" '' .ds L' ` .ds R' ' 'br\} .TH NTPQ 8 LOCAL .SH 名称 ntpq - ネットワークタイムプロトコルの標準問い合わせプログラム .SH 書式 .B ntpq [ .B -inp ] [ .B -c .I command ] [ .I host ] [ .I ... ] .SH 解説 .I ntpq は、 推奨されている NTP モード 6 制御メッセージフォーマットを実装する NTP サーバに、 現在の状態について問い合わせを行なったり、 状態の変更を要求するために使われます。 このプログラムは対話的モードでも、 コマンドラインの引数を使っても走らせることができます。 任意の変数を読み書きする要求を組み立てることができ、 生のまま、または綺麗に整形する出力オプションがあります。 .I ntpq は、サーバに複数の問い合わせを送ることで、共通フォーマットにした peer のリストを得て、出力することができます。 .PP .I ntpq を実行するときに一つ以上の要求オプションがコマンドラインに含まれていれば、 それぞれの要求は、 コマンドラインで指定された各ホストで走っている NTP サーバ、 またはデフォルトでは .I localhost で走っている NTP サーバに送られます。 要求オプションが与えられなかった場合、 .I ntpq は、コマンドを標準入力から読み込み、 コマンドラインで指定された最初のホストで走っている NTP サーバに対して実行しようとします。 このときも、 ホストが指定されていないときは、デフォルトで .I localhost になります。 標準入力が端末装置である場合は、 .I ntpq はコマンドを求めるプロンプトを出します。 .PP .I ntpq は NTP サーバと通信するために、 NTP モード 6 パケットを使います。 それゆえ、許可されていれば、 互換のあるどんなネットワーク上のサーバにでも問い合わせることができます。 NTP は UDP のプロトコルなので、特にネットワークトポロジ的に 遠くにある場合は、この伝達はやや信頼性に欠けるということを覚えておいて 下さい。 .I ntpq は、要求を再送する試みを一度行ない、 適当な制限時間の範囲内でリモートホストから返事がなかったときは、 その要求は時間切れとなります。 .PP コマンドラインオプションは以下の通りです。 .B -i または .B -n 以外のコマンドラインオプションを指定すると、指定したホスト (群) に、 指定した問い合わせ (または複数の問い合わせ) を直ちに送ることになります。 そうでなければ .I ntpq は、標準入力から対話形式のコマンドを読み込もうとします。 .Ip -c 8 後に続く引数は、対話形式のコマンドとして解釈され、 指定されたホスト (群) に対して実行すべきコマンドのリストに 付け加えられます。 複数の .B -c オプションも与えることができます。 .Ip -i 8 .I ntpq の操作を強制的に対話モードにします。標準出力にプロンプトが書き出され、 標準入力からコマンドが読み込まれます。 .Ip -n 8 すべてのホストアドレスを数字四つを点で区切った形式で出力し、 正規のホスト名に変換しません。 .Ip -p 8 そのサーバに知られている peer の一覧を、その状態の概要と共に出力します。 これは、対話コマンド \*(L"peers\*(R" と同等です。 .SH 内部コマンド .PP 対話形式コマンドは、キーワードとそれに続く 0 個から 4 個の 引数からなります。 キーワードの単語のうち、他に同じものがないとわかる数の文字がタイプされ ていれば大丈夫です。コマンドの出力は、通常標準出力に出力されますが、 コマンドラインの後に \*(L">\*(R" とファイル名をつけると、 個々のコマンドの出力をファイルに出力することもできます。 .PP 多くの対話形式コマンドは、 .I ntpq プログラム自身の中で実行されてしまい、 サーバへ送られる NTP モード 6 リクエストとはなりません。 この種のコマンドを以下に挙げます。 .PP .B ? [ .I command_keyword ] .PP 単独の \*(L"?\*(R" は、 現在の .I ntpq のすべてのコマンドキーワードの一覧を出力します。 \*(L"?\*(R" の後にコマンドキーワードが続くときは、関数とコマンドの使いかた を出力します。このコマンドは、 .I ntpq について、多分このマニュアルよりも良い情報源になります。 .PP .B timeout .I millseconds .PP サーバへの問い合わせに対する応答の、制限時間の長さを指定します。 デフォルトは、約 5000 ミリ秒です。 .I ntpq は制限時間が過ぎるとそれぞれの問い合わせを一回リトライするので、 合計の待ち時間は設定された制限時間の値の 2 倍になることを覚えておいて下さい。 .PP .B delay .I milliseconds .PP 認証を必要とする要求に含めるタイムスタンプに追加すべき時間間隔を指定します。 これは、長い遅延のあるネットワーク経路や時計が同期していない マシン間での (信頼性の低い) サーバの再設定を可能にするために 使われます。 実際には、サーバは、今では認証される要求のタイムスタンプを必要としません。 そのため、このコマンドは、すたれているかもしれません。 .PP .B host .I hostname .PP 問い合わせを送るホストをセットします。 .I hostname はホスト名でも数値アドレスでもかまいません。 .PP .B poll [ .I # ] [ .B verbose ] .PP クライアントモードで現在のサーバをポーリングします。最初の引数はポーリングする 回数 (デフォルトは 1) であり、 2 番目の引数は結果の出力をより詳しく 得るために与えることができます。 このコマンドは、今のところ希望的観測でしかありません。 .PP .B keyid .I # .PP このコマンドは、設定要求を認証するために用いるキー番号を指定します。 これは、この目的で使うためにサーバに設定されているキー番号に 対応していなければなりません。 .PP .B passwd .PP このコマンドは、設定要求を認証するために使われるパスワード (画面に表示されません) の入力を求めるプロンプトを出します。 その要求を成功させるためには、 このパスワードが、 NTP サーバがこの目的で使うように設定されたキーに 対応していなければなりません。 .PP .B "hostnames yes|no" .PP \*(L"yes\*(R" が指定されると、情報を表示するときにホスト名が出力されます。 \*(L"no\*(R" が与えられると、代わりに数値アドレスが表示されます。 コマンドラインの .B -n スイッチが使われなければ、 デフォルトは \*(L"yes\*(R" になります。 .PP .B raw .PP 問い合わせコマンドに対するすべての出力を、リモートサーバから受け取った 通りに出力します。 データに対して行なわれる唯一の整形/解釈は、印字できる (しかしめったに理解できない) 形になるように、アスキー文字でないデータを 変換することです。 .PP .B cooked .PP 問い合わせコマンドからの出力を、 \*(L"加工済み (cooked)\*(R" 形にします。 サーバに認識された変数は、人間に使える形に再整形された値に なります。 .I ntpq が、その変数は本来デコードできる値を持っていると判断したのに、 デコードされていないものには、後に \*(L"?\*(R" が付けられます。 .PP .B ntpversion .B 1|2|3 .PP .I ntpq がパケットの中で自称する NTP のバージョン番号をセットします。 デフォルトでは 3 です。 モード 6 制御メッセージ (詳しく言うとモードも) は、 NTP バージョン 1 には存在しなかったことに注意して下さい。 バージョン 1 を必要とするサーバは残っていないようですが。 .PP .B authenticate .B yes|no .PP 通常、 .I ntpq は、 書き込み要求でない限り要求を認証しません。 コマンド .B authenticate yes は、 .I ntpq が生成するすべての要求に認証をつけて送るようにします。 認証された要求は、サーバによっては少し異なって扱われます。 もしも peer 表示を行う前に認証をオンにすると、 時々 fuzzball の CPU を溶かしてしまうかもしれません。 .PP .B addvars .IR [=] [,...] .B rmvars .IR [,...] .B clearvars .PP NTP モード 6 メッセージが運ぶデータは、次の形の 項目のリストから成ります。 .IP "" 8 = .PP ここで、サーバの変数を読み取る要求では、この \*(L"=\*(R" は 無視されるので、省略することができます。 .I ntpq は、制御メッセージに含まれるデータを組み立てるための内部リストを保持しており、 以下に述べる .B readlist や .B writelist コマンドを使って送ります。 .B addvars コマンドで、このリストに、変数と省略可能な値を追加することができます。 -一つ以上の変数を追加するときには、リストはカンマで区切り、 +一つ以上の変数を追加するときには、リストはコンマで区切り、 空白を含んではいけません。 .B rmvars コマンドは、個々の変数をリストから削除するために用い、 .B clearlist コマンドは、リストからすべての変数を削除します。 .PP .B debug .I more|less|off .PP 問い合わせプログラムの内部のデバッグをオンまたはオフにします。 .PP .B quit .PP .I ntpq を終了します。 .SH 制御メッセージコマンド .PP ある NTP サーバが知っている各 peer には、 .I アソシエーション番号 .I (association identifier) という 16 ビット整数が割り当てられています。 peer 変数を使う NTP 制御メッセージは、 アソシエーション番号を含めることによって、 その値が対応する peer を識別しなければなりません。 0 というアソシエーション番号は特別で、 その変数がシステム変数であることを表します。 システム変数の名前は、独立した名前空間から取りだされます。 .PP 制御メッセージコマンドは、 サーバに一つ以上の NTP モード 6 メッセージを送り、 戻ってきたデータを何らかの書式で出力します。 現在実装されているほとんどのコマンドは、 一つのメッセージを送って、一つの応答を受け取ります。 今のところ例外は、必要なデータを得るためにあらかじめプログラムされた一連の メッセージを送る .B peers コマンドと、 アソシエーションをある範囲で変えながら繰り返す .B mreadlist と .B mreadvar コマンドです。 .PP .B associations .PP 問い合わせ対象のサーバの規格内 (in\-spec) の peer についての、 アソシエーション番号と peer の状態の一覧を得て出力します。 一覧は複数の欄から成っています。 最初の欄は、内部で使用のために 1 から振ったアソシエーションの索引番号 (index)、 2 番目はサーバから返って来た実際のアソシエーション番号、 3 番目は peer の状態ワードです。 その後に、状態ワードをデコードしたデータを含む欄がいくつか続きます。 \*(L"associations\*(R" コマンドによって返ったデータは .I ntpq の内部でキャッシュされるということを覚えておいて下さい。 このため、索引番号は、 人間にはほとんど打ち込むることができないアソシエーション番号を使う 愚かなサーバを相手にするときに役立ちます。 すなわち、 それ以降の任意のコマンドが引き数としてアソシエーション番号を必要とするときに、 代わりに .I &index という形を使うことができます。 .PP .B lassocations .PP サーバが状態を保持しているすべてのアソシエーションについて アソシエーション番号と peer の状態の一覧を得て、出力します。 このコマンドと \*(L"associations\*(R" コマンドは、 規格外 (out\-of\-spec) のクライアントのアソシエーション の状態を保持するサーバ (つまり fuzzball) の場合にだけ異なります。 \*(L"associations\*(R" コマンドが使われたとき、通常そういう関係は 表示から省略されますが、 \*(L"lassociations\*(R" の出力には含まれます。 .PP .B passociations .PP 内部でキャッシュされたアソシエーションの一覧から、 規格内 (in\-spec) の peer に関する アソシエーションのデータを出力します。 このコマンドは、新しい問い合わせをするのではなく 内部に蓄えられたデータを表示するということを除けば、 \*(L"associations\*(R" と同じに働きます。 .PP .B lpassociations .PP 規格外 (out\-of\-spec) のクライアントとのアソシエーションを含む 全てのアソシエーションに関するデータを、 内部にキャッシュされたアソシエーションの一覧から出力します。 このコマンドは、fuzzball を扱う場合だけ、 \*(L"passociations\*(R" と 異なります。 .PP .B pstatus .I assocID .PP 与えられたアソシエーションに対応するサーバに対し、 状態読み取り要求を送ります。 返された peer 変数の名前と値を出力します。 変数の前に、ヘッダから得た状態ワードが 16 進数と下手な英語で 表示されることに注意して下さい。 .PP .B readvar [ .I assocID ] [ .IR [=] [,...] ] .PP 変数読み取り要求を送ることで、指定した変数の値を返すようにサーバに要求します。 アソシエーション番号 (assocID) を省略するか 0 を指定したならば、 変数はシステム変数です。 そうでなければ peer 変数であり、 返される値は対応する peer のものとなります。 変数のリストを省略すると、データ無しの要求を送ります。 これは、サーバにデフォルトのディスプレイを返させます。 .PP .B rv [ .I assocID ] [ .IR [=] [,...] ] .PP .B readvar コマンドの打ちやすい短縮形です。 .PP .B writevar .I assocID .IR = [,...] .PP .B readvar リクエストと似ていますが、 指定した変数を読み取る代わりに書き込みます。 .PP .B readlist [ .I assocID ] .PP 内部の変数リストの中の変数の値を返すようにサーバに要求します。 アソシエーション番号が省略されるか 0 の場合、 変数はシステム変数であるとみなされます。 そうでなければ、 peer 変数として扱われます。 内部の変数リストが空の場合は、 要求はデータ無しで送られます。 これは、リモートサーバにデフォルトのディスプレイを返させます。 .PP .B rl [ .I assocID ] .PP .B readlist コマンドの打ちやすい短縮形です。 .PP .B writelist [ .I assocID ] .PP .B readlist リクエストと似ていますが、 内部のリストの変数を読み取る代わりに書き込みます。 .PP .B mreadvar .I assocID .I assocID [ .IR [=] [,...] ] .PP .B readvar コマンドと似ていますが、 問い合わせを (0でない) アソシエーション番号の範囲のそれぞれに 行ないます。 ここで言う範囲は、直前に実行された .B associations コマンドでキャッシュされたアソシエーションの一覧から決めます。 .PP .B mrv .I assocID .I assocID [ .IR [=] [,...] ] .PP .B mreadvar コマンドの打ちやすい短縮形です。 .PP .B mreadlist .I assocID .I assocID .PP .B readlist コマンドと似ていますが、 (0 でない) アソシエーション番号の範囲のそれぞれに問い合わせを行います。 ここで言う範囲は、直前に実行された .B associations コマンドでキャッシュされたアソシエーションの一覧から決めます。 .PP .B mrl .I assocID .I assocID .PP .B mreadlist コマンドの打ちやすい短縮形です。 .PP .B clockvar [ .I assocID ] [ .IR [=] [,...] ] .PP サーバの時計変数 (clock variable) の一覧を送るように要求します。 ラジオ時計や他の外部同期機構を持っているサーバは、 このコマンドに肯定的に応答します。 アソシエーション番号が省略されるか 0 だと、 要求は \*(L"システム時計\*(R" の変数に対するものとなり、 一般に、時計を持つすべてのサーバから肯定的な応答が得られるでしょう。 サーバが時計を擬似的な peer として扱い、 結果として一度に二つ以上の時計を接続することができるようになっていれば、 適切な peer のアソシエーション番号を参照すれば 特定の時計の変数が表示されます。 変数のリストを省略すると、サーバはデフォルトの変数のディスプレイを 返すことになります。 .PP .B cv [ .I assocID ] [ .IR [=] [,...] ] .PP .B clockvar コマンドの打ちやすい短縮形です。 .PP .B peers .PP サーバの規格内の peer の一覧を、各 peer の状態の概要と共に得ます。 概要の情報には、リモート peer のアドレス、 参照 ID (参照 IDが不明のときは 0.0.0.0)、 リモート peer の階層 (stratum)、 peer の種類 (ローカル、ユニキャスト、マルチキャスト、ブロードキャストのいずれか)、 最後のパケットを受信した時間、 秒単位のポーリング間隔、 8 進数表記の到達可能性レジスタ そして、その peer に関する (全て秒単位で) 現在の遅延の推定値、ずれ (offset)、ばらつき (dispersion) を含んでいます。 .PP 左端の文字は、時計選択処理におけるこの peer の運命を示します。 コードの意味は以下です: 階層が高いか、または妥当性のチェックにより捨てられたもの; \*(L"x\*(R" 交差アルゴリスムにより指示された誤りのチェッカ (falsticker); \*(L".\*(R" 候補リストの最後から間引かれたもの; \*(L"-\*(R" クラスタリングアルゴリスムにより捨てられたもの; \*(L"+\*(R" 最終の選択セットに含まれたもの; \*(L"#\*(R" 同期用に選択されたが隔たりが最大値を越えるもの; \*(L"*\*(R" 同期用に選択されたもの; \*(L"o\*(R" 同期用に選択され pps シグナル使用中のもの。 .PP .B peers コマンドは、得られた応答の中の値を解析できるかどうかに依るため、 データ形式の制御が貧弱なサーバでは、時々動作に失敗するかも しれません。 .PP ホストフィールドの内容は、次の四つの型のうちの一つになります。 ホスト名、 IP アドレス、 参照時計 (reference clock) の実装名とパラメタ、 \*(L"REFCLK(<実装番号>, <パラメータ>)\*(R" のいずれかです。 \*(L"hostnames no\*(R" が設定されているときには、 IP アドレスだけが表示されます。 .PP .B lpeers .PP .B peers と似ていますが、 サーバが状態を保持しているすべてのアソシエーションの概要を出力します。 これは fuzzball サーバの、より長い peer のリストを生成することがあります。 .PP .B opeers .PP 古い型の \*(L"peers\*(R" コマンドで、 参照 ID がローカルのインタフェースアドレスになります。 .SH 歴史 .PP Toronto 大学の Dennis Ferguson によって書かれました。 .SH バグ .PP .B peers コマンドは不可分 (atomic) ではないため、 不正なアソシエーションという誤ったエラーメッセージが発生し コマンドが終了することがあります。 .PP 時間切れまでの時間は固定された定数です。 これは、ある種の最悪の場合を考えてあるため、 時間切れになるまで長時間待たされることになります。 このプログラムは、 特定のホストへ何回も問い合わせを送る間に 制限時間の見積もりを改善すべきですが、 実際には行なっていません。 diff --git a/ja_JP.eucJP/man/man8/ppp.8 b/ja_JP.eucJP/man/man8/ppp.8 index 2e11cd4bdd..c62275f906 100644 --- a/ja_JP.eucJP/man/man8/ppp.8 +++ b/ja_JP.eucJP/man/man8/ppp.8 @@ -1,2700 +1,2700 @@ .\" %Id: ppp.8,v 1.19.2.38 1998/06/12 17:47:37 brian Exp % .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .Dd 20 September 1995 .Os FreeBSD .Dt PPP 8 .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 iijppp) .Sh 書式 .Nm .Oo .Fl auto | .Fl background | .Fl ddial | .Fl direct | .Fl dedicated .Oc .Op Fl alias .Op Ar system .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 しかしながら、この実装ではトンネルデバイス (tun) を利用して、ユーザプロセスで .Em PPP を実現しています。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の解放を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイアルをサポート 対話モードでは、直接モデムと通信できるように .Dq term コマンドが用意されています。 モデムがリモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイアル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイアルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイアルを行って接続を確立します。 .Fl ddial モード (直接ダイアルモード) でも ほぼ同様に、自動ダイアルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイアルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再交渉を強要し、 .Dv SIGTERM は終了を強要します。 .It パケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 .It 代理 arp (Proxy Arp) をサポート .Em PPP がサーバとして動作している時、その接続について代理 arp を行うよう 設定できます。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em ifilter は受信パケットに対するフィルタです。 .Em ofilter は送信パケットに対するフィルタです。 .Em dfilter はダイアルを行うきっかけとなるパケットを定義するフィルタで、 .Em afilter は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP をサポート .It IETF ドラフトの Predictor-1 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 圧縮はリンクを通る .Em すべての データをあらかじめ圧縮しておくことで、オーバヘッドを最小にします。 .It Microsoft の IPCP 拡張をサポート Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを 交渉することができます。 .El .Sh パーミッション .Nm ppp はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 4550 でインストールされます。 デフォルトでは .Nm ppp は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムのルーティングテーブルを変更するために、 システムロックファイルを作成し、 ppp の設定ファイルを読みます。 全ての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm ppp を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 まず、カーネルにトンネルデバイスが含まれていなければ なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。 もし含まれていない場合や複数の tun インタフェースが必要な場合、 以下の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 つぎに、 .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 最後に、ログファイルを作成します。 .Nm ppp は .Xr syslog 3 を使用して情報をログします。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、以下の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp TAB と書かれている場所には、実際にはタブを入力します。 スペースを使うと、なにも知らされぬままこの行は無視されます。 .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.* /var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .Sh 手動ダイアル 以下の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Em パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp ここで、モデムのデバイス名、スピードやパリティの設定、 CTS/RTS 信号を使うかどうか (デフォルトでは CTS/RTS が使用されます) を 指定して、開始可能です。もしハードウェアが CTS/RTS 信号を持っていない場合 (これは PPP 可能な端末サーバに直接つなぐ場合に起こり得ます)、 .Nm は そのポートを通してどんな出力も送らず、来るはずのない信号を待ち続けます。 したがって、直接接続で通信ができないような場合には、 CTS/RTS を off にしてみてください: .Bd -literal -offset indent ppp ON awfulhak> set line /dev/cuaa0 ppp ON awfulhak> set speed 38400 ppp ON awfulhak> set parity even ppp ON awfulhak> set ctsrts on ppp ON awfulhak> show modem * モデム関連のパラメータが、ここに示されます * ppp ON awfulhak> .Ed .Pp ここでは、直接モデムと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: ppp Password: Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> PPP ON awfulhak> .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。 show コマンドを使用すれば、どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show lcp * LCP 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP 関連の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位のルート (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルトルートのエントリ (他のルーティングエントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 以下のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 .Sq HISADDR の位置に .Sq INTERFACE キーワードを使用可能です。 これにより tun インタフェース上に直接経路を作成します。 ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを 別のウインドウで使用可能です。 使用可能コマンドの詳細は .Em PPP コマンドリスト の節を参照してください。 .Sh 自動ダイアル 自動ダイアルを行うためには、 Dial と Login のチャットスクリプトを 用意しなければなりません。定義の例は .Pa /etc/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet -compact .It .Pq Dq # で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 一つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、空白かタブで始まらなければなりません。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少くとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm ppp を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent PPP ON awfulhak> load MyISP .Ed .Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP ... ppp ON awfulhak> dial dial OK! login OK! PPP ON awfulhak> .Ed .Pp もし .Pa /etc/ppp/ppp.linkup が存在していれば、 .Em PPP 接続が確立された時に、その内容が実行されます。 デフォルトルート追加については。 提供されている .Pa /etc/ppp/ppp.conf.sample の .Dq pmdeman の例を参照してください。 .Dv HISADDR , .Dv MYADDR , .Dv INTERFACE という文字列はおのおのの IP アドレスとインタフェース名を表しています。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Sh バックグラウンドダイアル .Nm ppp を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 このラベルには .Dq set ifaddr コマンドが含まれ、 リモートの接続先の IP アドレスを定義する必要があります。( .Pa /etc/ppp/ppp.conf.sample 参照。) .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が一回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイアルオンデマンド デマンドダイアル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /etc/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand ... # .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、以下のように診断ポートを 通じて設定を確認したり変更したりすることができます (これは .Fl background や .Fl direct のモードでも可能です): .Bd -literal -offset indent # pppctl -v 3000 show ipcp Password: IPCP [Opened] his side: xxxx .... .Ed .Pp 現在 .Xr telnet 1 を使用して対話的に会話することもできます。 .Pp これを実現するために、後述のように .Dq set server コマンドを使用する必要があります。 .Pa /etc/ppp/ppp.secret を設定し .Dv USR1 シグナルを送ることにより、 過去を振り返って診断ポートにて listen するように .Nm プログラムを実行することが可能です。 .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイアルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイアルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ち、 別の送信パケットが検出された時に接続しようとします。 この動作は .Bd -literal -offset indent set redial seconds|random[.nseconds|random] [dial_attempts] .Ed .Pp によって変更することができます。 .Sq seconds は、再び接続しようとするまでの秒数です。 引数が .Sq random の場合には、待ち時間を 0 秒から 30 秒の間でランダムに選びます。 .Sq nseconds は電話番号リストの中の次の番号をダイアルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数が .Sq random の場合には、待ち時間を 0 秒から 30 秒の間でランダムに選びます。 .Sq dial_attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 このパラメータが省略された場合には、以前の値がそのまま使われます。 .Sq dial_attempts に 0 が指定された場合には、 .Nm は接続できるまでダイアルを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイアル回数は 4 回のままです。 (それぞれの番号を 4 回ダイアルするのではありません)。 リンクの両端が .Nm のデマンドダイアルモードを利用している場合は、 ダイアル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイアルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒待ってから .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値はゼロ (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大一回ダイアルされます。 .Dq set redial コマンドにて、リダイアル期間の後に、 再接続回数を指定します。 リダイアル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、以下のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、以下の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0) 、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、以下のように設定すれば良いでしょう: .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください。 .Dl # kill -HUP 1 .It 接続するユーザのためのアカウントを用意します。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp .It .Pa /usr/local/bin/ppplogin ファイルを以下のような内容で作成します: .Bd -literal -offset indent #!/bin/sh -p exec /usr/sbin/ppp -direct .Ed .Pp (さらに制御を行うためにラベル名を指定することもできます。) .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用するか設定済みの診断ポートに .Xr telnet 8 することで、コマンドモードでの制御が可能です。 .It オプションでサポートされている Microsoft の IPCP ネームサーバと NetBIOS ネームサーバの 交渉を有効にすることが可能です。 .Dq enable msext と .Dq set ns pri-addr [sec-addr] および .Dq set nbns pri-addr [sec-addr] を .Pa /etc/ppp/ppp.conf ファイルに追加します。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、モデムの接続を扱うのに .Em mgetty+sendfax を使用するようにすすめている点が異なります。 最近のバージョン (0.99 以降) では、 .Dq AUTO_PPP オプションをつけてコンパイルすることで、クライアントが ログインプロンプトに向かって .Em PPP を話すのを検出することができます。 手順は以下の通りです: .Bl -enum .It AUTO_PPP オプションが使えるように、バージョン 0.99 か それ以降の mgetty+sendfax を入手、設定、インストールします。 .It モデムが接続されているポートで mgetty が起動されるように .Pa /etc/ttys を編集します。 例えば、以下のように設定すれば良いでしょう: .Dl cuaa1 "/usr/local/sbin/mgetty -s 57600" dialup on .It 接続するユーザのためのアカウントを用意します。 .Bd -literal Pfred:xxxx:66:66:Fred's PPP:/home/ppp:/etc/ppp/ppp-dialup .Ed .Pp .It ファイル .Pa /etc/ppp/sample.ppp-dialup , .Pa /etc/ppp/sample.ppp-pap-dialup , .Pa /etc/ppp/ppp.conf.sample をよく読んで、要点を理解してください。以下のようにすると .Pa /etc/ppp/ppp-pap-dialup が .Pa /usr/local/etc/mgetty+sendfax/login.conf から呼び出されます。 .Dl /AutoPPP/ - - /etc/ppp/ppp-pap-dialup .El .Pp .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 4 つまでのフィールドからなります: .Bd -literal -offset indent name key [hisaddr [label]] .Ed .Pp .Ar name と .Ar key は期待されるクライアントを指定します。 .Pa ppp.secret の如何なる .Ar name No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号交渉時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Sh PPP オーバ TCP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 ホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Dl set device ui-gate:6669 シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバと交渉できないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは以下を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 add 10.0.1.0 255.255.255.0 10.0.4.2 .Ed .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには以下の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、以下のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは以下を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in set dial set timeout 30 15 5 set log Phase Chat Connect Carrier hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0 255.255.255.0 10.0.4.1 .Ed .Pp PAP を有効にしようとしている場合、以下の設定も必要です: .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、以下をタイプするだけで良いです。 .Dl awfulhak # ppp -background ui-gate 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「ルート」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「ルート」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下にある TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下の TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Sh パケットエイリアシング .Fl alias コマンドラインオプションにより、 パケットエイリアシングが有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのようにエイリアスされ、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるようにエイリアスが戻されます。 パケットエイリアシングにより、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にパケットエイリアシングを禁止して行います。 次に .Fl alias オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 ifilter, ofilter, dfilter, afilter の 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet -compact .It フィルタ定義は以下のような構文になっています。 set filter-name rule-no action [src_addr/src_width] [dst_addr/dst_width] [proto [src [lt|eq|gt] port ]] [dst [lt|eq|gt] port] [estab] .Bl -enum .It .Sq filter-name には、ifilter, ofilter, dfilter, afilter のうちのどれか一つを指定します。 .It .Sq permit と .Sq deny の二つの action があります。 もし、あるパケットが規則に一致した場合、 結びつけられた action が直ちに実行されます。 .It .Sq src_width と .Sq dst_width は、アドレスの範囲を表現するネットマスクのように働きます。 .It .Sq proto は icmp, udp, tcp のうちのいずれか一つです。 .It .Sq port number は数字で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .El .Pp .It 各フィルタは規則 0 から始まり、20 個までの規則をもつことができます。 規則の集合は、規則 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトでは全てが通されます。 .It パケットにマッチする規則が無い場合は、パケットは破棄 (ブロック) されます。 .It すべての規則を消去するには、 .Dq set filter-name -1 を使ってください。 .El .Pp .Pa /etc/ppp/ppp.conf.filter.example を参照してください。 .Sh アイドルタイマ、回線品質要求タイマ、リトライタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show timeout と .Dq set timeout idle [LQR [FSM-resend]] コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 (3 分)、lprtimer が 30 秒、 retrytimer が 3 秒です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 このバージョンでは、 現在の IETF ドラフトに基づき、CCP および Predictor type 1 圧縮 もしくは deflate 圧縮をサポートしています。 デフォルトの動作として、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Sh IP アドレスの制御 .Nm は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent set ifaddr [src_addr [dst_addr [netmask [trigger_addr]]]] .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr と .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask は小さくすることのみ可能です。便利な値は 255.255.255.255 でしょう。 誤った .Em PPP の実装には、接続交渉のために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、 ルーティングテーブルには影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、 アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It ルーティングテーブルのネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従わなくてはなりません。 より柔軟な動作をさせるために、`ifaddr' 変数の IP アドレス指定を もっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ (/) に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は以下のことを示しています。 .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、ルーティングテーブルエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Pp .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、以下のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイアルスクリプトにプロバイダの電話番号を記述します。 ダイアルやリダイアルに使用する電話番号は、 パイプ (|) またはコロン (:) で区切って 複数指定することができます。例えば、以下のようになります。 .Bd -literal -offset indent set phone "111[|222]...[:333[|444]...]... .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイアルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイアルしてみます。 ダイアルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイアルもしくはログインスクリプトに失敗したとき「のみ」です。 このダイアルの後、3456789 が使用されます。 4567890 は 345689 でダイアルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみの使用となるでしょう)。 次の番号へのリダイアルまでのタイムアウトは、全ての番号にて使用されます。 リストが終了すると、 通常のリダイアル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以下を参照してください)。 .It リダイアルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 以下のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイアルを行う前に 10 秒待って、 4 回までダイアルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、以下のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は以下の通りです。 .Bl -bullet .It "BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう一度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上の電話番号リストの中の、次にダイアルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイアルスクリプトと同じスタイルで書かれますが、 パスワードがログされないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は以下の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It "login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It "awfulhak" を送信します。 .It "word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It "ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It "PPP" を送信します。 .It "HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey ( .Ar command ログ使用時には) コマンドのログは特別な方法でとられ、( .Sq ******** とログされますので) 実際のパスワードが危険にさらされることはありません。 .Ar chat ログ使用時には、実際のパスワードの代りに '\\P' とログされます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 .It シリアル回線と通信速度を指定するためには .Dq set line と .Dq set speed を使います。例えば以下のようになります。 .Bd -literal -offset indent set line /dev/cuaa0 set speed 115200 .Ed .Pp FreeBSD では cuaa0 が一つめのシリアルポートになります。 OpenBSD で .Nm を実行している場合には cua00 が一つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以下を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It ISP があなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これにより ISP が番号を割当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、以下の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.10.10.10/0 10.10.11.11/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合で .Fl auto モード使用時には、以下の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent delete ALL add default HISADDR .Ed .Pp これは、 .Nm が使用している tun インタフェースに関連する直接ではない ルーティングエントリを削除して、 それから 10.10.11.11 をデフォルトルートとして追加するよう .Nm に指示します。 .Fl auto モードを使用していない時にはこれは必要ありません。 なぜなら、 .Nm がすぐにダイアルして新しい IP 番号を相手と交渉できるからです。 .Pp .Fl auto モードを使用していないとき、もしくは動的 IP 番号を使用するときには、 次の 2 行を .Pa /etc/ppp/ppp.linkup ファイルに追加しておかなければなりません: .Bd -literal -offset indent delete ALL add default HISADDR .Ed .Pp HISADDR は「相手」の IP 番号を意味するマクロです。 使用する IP 番号に関して (IPCP を使用して) 合意 もしくは ( .Dq set ifaddr を使用して) 設定してはじめて、使用可能です。 一旦接続が確立されると、 .Nm は直接ではないインタフェースのルートを全て削除し、 デフォルトルートが相手の IP 番号を指すように設定します。 .Pa /etc/ppp/ppp.conf で使ったのと同じラベルを使用してください。 .Pp もしコマンドを対話的に入力しているのであれば、接続に成功した後で .Bd -literal -offset indent add default HISADDR .Ed .Pp とタイプするだけで充分です。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに以下の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .El .Pp 現実の例を見たい場合には、 .Pa /etc/ppp/ppp.conf.sample と .Pa /etc/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は以下のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Bl -column SMMMMMM -offset indent .It Li Async 非同期レベルパケットの 16 進ダンプ .It Li Carrier 'CARRIER' まで含めたチャットログの生成 .It Li CCP CCP パケットトレースの生成 .It Li Chat チャットスクリプトのトレースログの生成 .It Li Command コマンド実行のログ .It Li Connect 完全なチャットログの生成 .It Li Debug (非常に長い)デバッグ情報のログ .It Li HDLC HDLC パケットの 16 進ダンプ .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録 .It Li IPCP IPCP パケットトレースの生成 .It Li LCP LCP パケットトレースの生成 .It Li Link アドレスの割当およびリンクの確立、解放イベントのログ .It Li LQM LQR レポートの生成 .It Li Phase フェイズ遷移ログの出力 .It Li TCP/IP 全 TCP/IP パケットのダンプ .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、LOG_WARNING を使用してファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Carrier Link Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、直接スクリーンにログ表示) です。 .Pp .Dq set log Op local への最初の引数が '+' か '-' の文字で始まる場合、 現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log carrier link phase PPP ON awfulhak> show log Log: Carrier Link Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log -link +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Carrier Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合にはログされません。 .Sh シグナルハンドリング .Nm は以下のシグナルを扱います: .Bl -tag -width 20 .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR1 対話モードではない場合、 .Nm にサーバソケットが存在する場合にはそれらをクローズさせ、 3000 + トンネルデバイス番号のインターネットソケットを オープンさせます。 これは、適切なローカルパスワードが .Pa /etc/ppp/ppp.secret に指定されている場合にのみ行われます。 .It USR2 .Nm に全サーバソケットをクローズさせます。 .El .Pp .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width 20 .It accept|deny|enable|disable option.... これらのディレクティブは 最初の接続においてどのように相手と交渉するかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NACK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は以下のいずれかです: .Bl -tag -width 20 .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は非常に良く似たフィールトを持ちますので、 簡単に圧縮可能です。 .It chap デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみ交渉可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 詳細については .Dq set encrypt コマンドの記述を参照してください。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についてのネゴシエーションには問題があります .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮の交渉を行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magnalink Variable Resource Compression と指定されています! .Nm は .Nm pppd と交渉する能力がありますが、 .Dq pppd-deflate が .Ar enable かつ .Ar accept されている場合のみです。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信するかどうかを 決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみ交渉可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるかまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pppd-deflate デフォルト: disable かつ deny。 .Ar deflate オプションのバリエーションで、 .Xr pppd 8 プログラムとの交渉を許可します。 詳細は、上述の .Ar deflate 部分を参照してください。デフォルトでは抑止されますので、 .Pa rfc1975 に従っていないことになります。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) の交渉を行うために使用されます。 この機構により、 プロトコルフィールドが 2 オクテッドから 1 オクテッドに減ります。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 以下のオプションは、実際には相手と交渉しません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It msext デフォルト: disable。 このオプションは Microsoft の .Em PPP 拡張の使用を許可します。 これにより、DNS と NetBIOS NS の交渉をサポートします。 このオプションを有効にすることにより、"set ns" と "set nbns" で 与えられる値を渡せるようになります。 .It passwdauth デフォルト: disable。 このオプションを指定することにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイルではなくパスワードファイル ( .Xr passwd 5 参照) を使用させます。 .It proxy デフォルト: disable。 このオプションを指定することにより、 .Nm に相手のためにプロクシ ARP をさせます。 .It throughput デフォルト: disable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq modem のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable すると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .El .It add[!] dest mask gateway .Ar dest は宛先 IP アドレスであり、 .Ar mask はそのマスクです。 .Ar 0 0 はデフォルトルートを意味します。 .Ar dest および .Ar mask の引数の場所で、シンボル名 .Sq default を使用可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR もしくは .Sq INTERFACE を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先アドレスに置き換えられ、 .Sq INTERFACE は現在のインタフェース名に置き換えられます。 インタフェースの宛先アドレスが ( .Dq set ifaddr によって) 割当てられていない場合、現在の .Sq INTERFACE が .Sq HISADDR の代りに使用されます。 .Pp このコマンドを .Pa ppp.conf ファイルで使用するときの制限についての詳細は、後述の .Dq set ifaddr コマンドを参照してください。 .Pp .Ar add! コマンド ( .Dq \&! に注意) 使用時には、 ルートが存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にてルートを更新します。 .It allow ..... このコマンドは .Nm と設定ファイルへのアクセスを制御します。 ユーザレベルでのアクセスは可能であり、 設定ファイルのラベルと .Nm の実行モードに依存します。 例えば、ユーザ .Sq fred のみがラベル .Sq fredlabel に .Fl background モードでアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width 20 .It allow user|users logname... デフォルトでは、ユーザ ID 0 のみがアクセスを許されています。 このコマンドが指定されると、 .Dq allow users が記載されている個所に列挙されているユーザのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。後続する .Dq allow users コマンドは、先行するコマンドに優先します。 あるラベル以外のすべてにアクセスを許すことが可能であり、 そのためにはデフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをこのあるラベルに指定します。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode|modes modelist... デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセスモードが制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは以下の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * . .El .Pp .It alias ..... このコマンドは .Nm -組込みのエイリアシング (マスカレーディング) 機能を +組み込みのエイリアシング (マスカレーディング) 機能を 制御するために使用します。 このコードが必要となるまで、 .Nm はこのコードをロードしません。 エイリアスライブラリがあなたのシステムにインストールされないことも 大いにありえます (エイリアスライブラリがセキュリティ的に危険だと認識する管理者もいます)。 あなたのシステムでエイリアシングが有効になると、 以下のコマンドが使用可能となります: .Bl -tag -width 20 .It alias enable [yes|no] エイリアシングを有効もしくは無効にします。 .Fl alias コマンドラインフラグは .Dq alias enable yes と同じ意味です。 .It alias port [proto targetIP:targetPORT [aliasIP:]aliasPORT] このコマンドにより、 マシン [aliasIP] の .Dq aliasPORT へ到着する接続を、 .Dq targetIP の .Dq targetPORT へリダイレクトします。 proto を指定した場合、指定したプロトコルの接続のみマッチします。 あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 .It alias addr [addr_local addr_alias] このコマンドにより、 .Dq addr_alias へのデータを .Dq addr_local へリダイレクトします。 あなたのゲートウェイの後で 少数の実 IP アドレスを持ち、 これらをあなたのゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It alias deny_incoming [yes|no] yes に設定した場合、ファイアウォールがパケットを落すのと同様に、 全ての入力の接続を拒否します。 .It alias log [yes|no] このオプションを指定することにより、 種々のエイリアシングの統計と情報を、ファイル .Pa /var/log/alias.log にログします。 .It alias same_ports [yes|no] 有効になると、 エイリアスライブラリが出力パケットのポート番号を変更しようとすることを 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It alias use_sockets [yes|no] 有効になると、 エイリアスライブラリにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It alias unregistered_only [yes|no] 出力パケットを、登録されていない送信元アドレスに変更することだけを行います。 RFC1918 に依ると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .It alias help|? このコマンドにより、 使用可能なエイリアスコマンドのまとめを表示します。 .El .Pp .It [!]bg command 指定したコマンドをバックグラウンドで実行します。 擬似引数 .Dv HISADDR , .Dv INTERFACE , .Dv MYADDR は適切な値に置き換えられます。 コマンド実行中に .Nm を停止させたい場合は、 .Dv shell コマンドを使用してください。 .It close 現在の接続をクローズします (が終了しません)。 .It delete[!] dest このコマンドは指定した .Ar dest IP アドレスのルートを削除します。 .Ar dest に .Sq ALL が指定された場合、 .Nm が使用中のインタフェースの非直接エントリが全て削除されます。 tunX のエントリで実際のリンク以外を削除することを意味します。 .Ar dest に .Sq default が指定された場合、デフォルトルートが削除されます。 .Pp .Ar delete! コマンドが使用された場合 (最後の .Dq \&! に注意)、存在しないルートについて .Nm は文句を言わなくなります. .It dial|call [remote] .Dq remote が指定されている場合、 .Dq remote システムへの接続が .Dq dial および .Dq login スクリプトを使用して確立されます。 そうでない場合、現在の設定が使用されて接続が確立されます。 .It display 上述 .Dq accept|deny|enable|disable option.... で指定された、交渉可能な値の現在の状態を表示します。 .It down リンクを切断しますが、 綺麗な方法ではなく、物理層が使用不能になったように見えます。 このコマンドを使用することは丁寧ではないとされています。 .It help|? [command] 利用可能なコマンドをリストします。 .Dq command を指定した場合、このコマンドの使用方法を表示します。 .It load [remote] 指定された .Dq remote ラベルをロードします。 .Dq remote が指定されない場合、 .Dq default ラベルが仮定されます。 .It passwd pass 全ての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass の指定は、 .Dq set server コマンドラインもしくは ローカルホストの .Pa /var/log/ppp.secret エントリにて可能です。 .Ar command ログが有効でも、値 .Ar pass はログされず、文字列 .Dq ******** がログされます。 .It quit|bye [all] .Nm を終了します。 .Nm が対話モードであるか .Dq all 引数が指定された場合、 .Nm は終了し、接続をクローズします。 単に .Dq quit を .Xr pppctl 8 もしくは .Xr telnet 1 のセッションから発行しても、現在の接続をクローズしません。 .It save このオプションは (まだ) 実装されていません。 .It set[up] var value このオプションは以下の変数の設定のために使用します: .Bl -tag -width 20 .It set accmap hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手と交渉され、デフォルト値は 0x00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .It set filter-name rule-no action [src_addr/src_width] [dst_addr/dst_width] [proto [src [lt|eq|gt] port ]] [dst [lt|eq|gt] port] [estab] .Pp .Nm ppp は 4 つのフィルタセットをサポートします。 afilter は接続を維持 - アイドルタイマをリセット - するためのパケットを指定します。 dfilter は .Fl auto モードにおいて .Nm にリダイアルさせるパケットを指定します。 ifilter はマシンに入力可能なパケットを指定します。 ofilter はマシンから出力可能なパケットを指定します。 デフォルトでは全てのフィルタが全パケットを通過させる値に設定されます。 ルールは .Dq n に従って順番に処理されます。 各セットに対し 20 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 ifilter と ofilter では、パケットをドロップすることを意味します。 afilter では、アイドルタイマをリセットしないことを意味します。 dfilter ではダイアルさせることにはならないことを意味します。 上述のパケットのフィルタリングの節を参照してください。 .It set authkey|key value クライアントモードでの PAP または CHAP の交渉で使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイアルもしくはログインスクリプトの '\\P' シーケンス で使用されるパスワードを指定しますが、 実際のパスワードがログされることを防ぎます。 .Ar command ログが有効な場合、セキュリティの観点から、 .Ar value は .Ar ******** としてログされます。 .It set authname id クライアントモードでの PAP または CHAP の交渉で使用される 認証 ID を設定します。 .It set ctsrts ハードウェアフロー制御をセットします。 これがデフォルトです。 .It set device|line value[,value...] .Nm が使用するデバイスを指定する .Dq value に設定します。 全シリアルデバイス名は .Pa /dev/ から始まることが仮定されています。 .Dq value が .Pa /dev/ から始まらない場合、 .Dq host:port の形式である必要があります。 この場合、 .Nm 指定された .Dq host の指定された .Dq port と接続しようとします。 詳細は上述の .Em PPP オーバ TCP の節を参照してください。 複数の .Dq value を指定した場合、 .Nm は全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial chat-script 相手へダイアルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 以下の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -literal -offset indent .It \\\\\\\\\\\\\\\\c .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \\\\\\\\\\\\\\\\d チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \\\\\\\\\\\\\\\\p チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \\\\\\\\\\\\\\\\n 改行文字と置き換えられます。 .It \\\\\\\\\\\\\\\\r 復改文字と置き換えられます。 .It \\\\\\\\\\\\\\\\s 空白文字と置き換えられます。 .It \\\\\\\\\\\\\\\\t タブ文字と置き換えられます。 .It \\\\\\\\\\\\\\\\T 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \\\\\\\\\\\\\\\\P 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \\\\\\\\\\\\\\\\U 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .Ed .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、最初の文字をエクスクラメーションマーク .Pq Dq \&! にします。 コマンドが実行されると、標準入力と標準出力がモデムデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行している場合、ファイルデスクリプタは .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\\\\\-c \\\\\\"echo \\\\\\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は下記のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq \&! 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイルデスクリプタ 2 (stderr) にリダイレクトして .Nm 自身に送信およびログさせ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp .It set hangup chat-script モデムをクローズする前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 .It set encrypt MSChap|MD5 CHAP チャレンジを発行するときに要求および使用する 暗号化アルゴリズムを指定します。 MSChap に設定すると、 .Nm は CHAP チャレンジ送信時 (CHAP が enable されていると仮定しています) に Microsoft RAS のように振舞います。 チャレンジへの応答時には、 .Nm チャレンジに基いてどのように暗号化するかを決定しますので、 この設定は無視されます。 .Bl -tag -width 注: .It 注: Microsoft の暗号化アルゴリズムは MD4 と DES の組み合わせを使用しますので、 .Nm 構築前にマシンに DES 暗号化ソフトウェアをインストールしていないと、 このオプションは使用できません - この場合 MD5 のみ使用されます。 .El .Pp .It set escape value... このオプションは上述の .Dq set accmap オプションに似ています。 リンクを経由する時に「エスケープ」される文字を指定するために使用します。 .It set ifaddr [myaddr [hisaddr [netmask [triggeraddr]]]] このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。 アドレスのフォーマットは以下の通りです。 .Dl a.b.c.d/n a.b.c.d は IP アドレスであり、 n はこのうち何ビットが有効であるかを示します。 もし /n ビットが省略された場合、デフォルトの /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは /0 です。 .Pp .Ar hisaddr に IP 番号の範囲として .Dl a.b.c.d[-d.e.f.g][,h.i.j.k[-l,m,n,o]]... のフォーマットを指定できます。例えば: .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 は .Ar 10.0.0.1 のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの一つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割当てていた IP 番号を使用したい場合に有用です。 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm はまず範囲内の未使用 IP 番号をランダムに指示します。 相手がこれに賛成しないと、 番号が選択されるか過多の IPCP 構成要求が送出されるまで、 .Nm は次の番号を指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP 交渉で使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP 交渉で使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 結果として、 .Fl auto モードでない限り、 .Dq add コマンドを .Pa ppp.conf で使用することは不可能 .Pq か、少くとも賢くない です (代りに .Pa ppp.linkup ファイルが使用されます)。 .Dq allow mode auto を使用して、現在のプロファイルを .Fl auto モードのみに限定してください。 .Pp また、一旦クライアントが自己を認証した後では、 .Ar hisaddr 引数は .Pa ppp.secret ファイルによって優先されることに注意してください。詳細は .Em 内向き接続の認証 の節を参照してください。 .It set loopback on|off .Ar on に設定された場合 (デフォルトです)、 宛先アドレスが .Em PPP インタフェースのアドレスと同一の送出パケットを、 .Nm は自動的にループバックさせます。 .Ar off に設定された場合、 .Nm はパケットを送信します。 この場合おそらく相手方で ICMP リダイレクトが発生します。 .It set log [local] [+|-]value... このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイアルスクリプトを補います。 もし両方が指定された場合、ダイアルスクリプトの後で、 ログインスクリプトが実行されます。 ダイアルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set mru value デフォルトの MRU は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテッドのパケットを 受信できなければ *ならない* からです。 .It set mtu value デフォルトの MTU は 1500 です。 相手が指定した MRU によって増加させることができます。 MTU はこのオプションによってのみ減らすことが可能です。 この値を増加させることは無効です。 なぜなら、相手は大きくなったパケットを受信できる保証が無いからです。 .It set ns x.x.x.x y.y.y.y このオプションは交渉される Microsoft DNS サーバを設定します。 .It set nbns x.x.x.x y.y.y.y このオプションは交渉される Microsoft NetBIOS DNS サーバを設定します。 .It set openmode active|passive Op delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP の交渉を開始します。 相手が交渉を開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってから交渉を開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark ラインのパリティを設定できます。デフォルト値は .Ar none です。 .It set phone telno[|telno]...[:telno[|telno]...]... ダイアルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ (|) もしくはコロン (:) で区切って指定可能です。 パイプの後の番号がダイアルされるのは、 直前の番号へのダイアルもしくはログインのスクリプトが失敗した場合のみです。 ラインの切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基いてダイアルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set reconnect timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外のライン切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 ラインは最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、0 から 30 秒の間の任意時間の停止となります。 .It set redial seconds[.nseconds] [attempts] .Nm ppp に .Ar attempts 回のリダイアルを指示できます。 1 より大きな数を指定した場合 (上述の .Ar set phone 参照)、 各番号にダイアルする前に、 .Ar nseconds だけ停止します。 最初の番号にダイアル開始する前に .Ar seconds だけ停止します。 .Dq random もここで使用できます。 .It set stopped [LCPseconds [IPCPseconds [CCPseconds]]] このオプションが指定されると、 指定した有限状態機械が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 .Nm が停止状態になったことにより返事をしないといった状態を見る場合と、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ipcp +ccp を使用すると、 .Nm は全状態遷移をログします。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set server|socket TcpPort|LocalName|none [password] [mask] このコマンドは .Nm に指定したポートもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 これは .Nm が対話モードの時には出来ません。 語 .Ar none は .Nm に既に存在するソケットをクローズさせます。 UNIX ドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 UNIX ドメインソケットに使用される 8 進 umask を指定可能です。 .Sq 0 から始まる 4 桁 8 進数で指定します。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です。 ここにパスワードを指定しないと、 .Pa /etc/ppp/ppp.secret からドメインサフィックスを除いたローカルホスト名にてマシン名で検索を行います。 詳細は .Xr hostname 1 を参照してください。 パスワードに空文字列を指定すると、パスワードは要求されなくなります。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed value シリアルデバイスの速度を指定します。 .It set timeout idle [LQR [FSM-resend]] アイドルタイマ、 (有効にされているなら) LQR タイマ、 有限状態機械 .Pq FSM; finite state machine リトライタイマの値を指定します。 .It set vj slots nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手と交渉をします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 から .Ar 16 の間で、それぞれの値を含みます。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮を交渉するか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set help|? 使用可能なセットコマンドのまとめを表示します。 .El .Pp .It shell|! [command] .Dq command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定されたコマンドが実行されます。 擬似引数 .Dv HISADDR , .Dv INTERFACE , .Dv MYADDR は適切な値に置き換えられます。! 文字を使用した場合、 この後のコマンドとの間にスペースが必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show var このコマンドを使用して、以下を確認できます: .Bl -tag -width 20 .It show [adio]filter 指定したフィルタの現在のルールをリストします。 .It show auth 現在の authname と暗号値を表示します。 .Nm を DES サポート無しで構築した場合、 .Ar MD5 が使用されるため、暗号値は表示されません。 .It show ccp 現在の CCP 統計を表示します。 .It show compress 現在の圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show hdlc 現在の HDLC 統計を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show loopback 現在のループバック状態を表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show modem 現在のモデム統計を表示します。 .It show mru 現在の MRU を表示します。 .It show mtu 現在の MTU を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show reconnect 現在の再接続値を表示します。 .It show redial 現在のリダイアル値を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show route 現在のルーティングテーブルを表示します。 .It show timeout 現在のタイムアウト値を表示します。 .It show msext 現在の Microsoft 拡張値を表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はモデムに送られます。 モデムから読んだ文字はスクリーンに表示されます。 モデムの相手側に .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet -compact .It 設定ファイルの例を読んでください。良い情報源です。 また、 .It .Dq help , .Dq show ? , .Dq alias ? , .Dq set ? , .Dq set ? コマンドを使ってください。 .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width flag .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワーク層の接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じるときにチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslogd.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunX.pid tunX デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで 'X' はデバイスの番号です。このファイルは .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .Pa It /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr chat 8 , .Xr crontab 5 , .Xr ftp 1 , .Xr getty 8 , .Xr gzip 1 , .Xr hostname 1 , .Xr inetd 8 , .Xr init 8 , .Xr login 1 , .Xr passwd 5 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr route 8 , .Xr syslog 3 , .Xr syslog.conf 5 , .Xr syslogd 8 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr traceroute 8 , .Xr uucplock 3 .Sh 歴史 元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、 FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。 .Pp それから、本質的に Brian Somers (brian@Awfulhak.org) が修正をし、'97 年 11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。 diff --git a/ja_JP.eucJP/man/man8/pw.8 b/ja_JP.eucJP/man/man8/pw.8 index bdeb2aacc8..322a99d280 100644 --- a/ja_JP.eucJP/man/man8/pw.8 +++ b/ja_JP.eucJP/man/man8/pw.8 @@ -1,804 +1,804 @@ .\" Copyright (C) 1996 .\" David L. Nugent. 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. .\" .\" THIS SOFTWARE IS PROVIDED BY DAVID L. NUGENT 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 DAVID L. NUGENT 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. .\" .\" %Id: pw.8,v 1.1.1.1.2.5 1997/11/04 07:16:14 charnier Exp % .\" jpman %Id: pw.8,v 1.3 1997/10/28 15:30:48 kuriyama Stab % .\" .Dd December 9, 1996 .Dt PW 8 .Os .Sh 名称 .Nm pw .Nd システムユーザ、グループの作成、削除、変更、表示 .Sh 書式 .Nm pw .Ar useradd .Op name|uid .Op Fl C Ar config .Op Fl q .Op Fl n Ar name .Op Fl u Ar uid .Op Fl c Ar comment .Op Fl d Ar dir .Op Fl e Ar date .Op Fl p Ar date .Op Fl g Ar group .Op Fl G Ar grouplist .Op Fl m .Op Fl k Ar dir .Op Fl s Ar shell .Op Fl o .Op Fl L Ar class .Op Fl h Ar fd .Op Fl N .Op Fl P .Nm pw .Ar useradd .Op name|uid .Op Fl D .Op Fl C Ar config .Op Fl q .Op Fl b Ar dir .Op Fl e Ar days .Op Fl p Ar days .Op Fl g Ar group .Op Fl G Ar grouplist .Op Fl k Ar dir .Op Fl u Ar min,max .Op Fl i Ar min,max .Op Fl w Ar method .Op Fl s Ar shell .Nm pw .Ar userdel .Op name|uid .Op Fl n Ar name .Op Fl u Ar uid .Op Fl r .Nm pw .Ar usermod .Op name|uid .Op Fl C Ar config .Op Fl q .Op Fl n Ar name .Op Fl u Ar uid .Op Fl c Ar comment .Op Fl d Ar dir .Op Fl e Ar date .Op Fl p Ar date .Op Fl g Ar group .Op Fl G Ar grouplist .Op Fl l Ar name .Op Fl m .Op Fl k Ar dir .Op Fl w Ar method .Op Fl s Ar shell .Op Fl L Ar class .Op Fl h Ar fd .Op Fl N .Op Fl P .Nm pw .Ar usershow .Op name|uid .Op Fl n Ar name .Op Fl u Ar uid .Op Fl F .Op Fl P .Op Fl a .Nm pw .Ar usernext .Op Fl C Ar config .Op Fl q .Nm pw .Ar groupadd .Op group|gid .Op Fl C Ar config .Op Fl q .Op Fl n Ar group .Op Fl g Ar gid .Op Fl M Ar members .Op Fl o .Op Fl h Ar fd .Op Fl N .Op Fl P .Nm pw .Ar groupdel .Op Fl n Ar name .Op Fl g Ar gid .Nm pw .Ar groupmod .Op Fl C Ar config .Op Fl q .Op Fl F .Op Fl n Ar name .Op Fl g Ar gid .Op Fl l Ar name .Op Fl M Ar members .Op Fl m Ar newmembers .Op Fl h Ar fd .Op Fl N .Op Fl P .Nm pw .Ar groupshow .Op Fl n Ar name .Op Fl g Ar gid .Op Fl F .Op Fl P .Op Fl a .Nm pw .Ar groupnext .Op Fl C Ar config .Op Fl q .Sh 解説 .Nm pw は、システムの .Ar user 、 .Ar group ファイルのユーザ、グループを簡単に、標準的な方法で追加、変更、削除 することができるようにするコマンドライン版のエディタです。 .Nm は、ローカルな user ファイルと group ファイルを操作することができるだ けだということに注意して下さい。 NIS のユーザ、グループは NIS サーバ上 で管理しなければなりません。 .Nm は root で実行されなければならず、 .Pa passwd , .Pa master.passwd , .Pa group ファイルや、安全なまたは安全でないパスワードデータベースファイル の更新作業を行います。 .Pp .Xr pw 8 のコマンドラインにかかれている最初の一つか二つのキーワードは、引数の残り に対する文脈を規定します。 .Ar user と .Ar group のキーワードはどちらも、 .Ar add , .Ar del , .Ar mod , .Ar show , .Ar next と組み合わせるか、分離して用いることができ、どちらの順序 (例えば showuser, usershow, show user, user show はすべて同じことと みなされます) で指定してもかまいません。 この柔軟性は、実際のユーザ、グループデータベース操作のために .Nm を呼ぶ対話的なスクリプトには便利です。 .Fl n Ar name , .Fl u Ar uid , .Fl g Ar gid オプションを使う代わりに、 これらのキーワードに続けてユーザ名、グループ名、数字の ID のうち一つ を指定することができます。 .Pp 以下のフラグは操作のすべてのモードで共通です: .Pp .Bl -tag -width "-G grouplist" .It Fl C Ar config .Nm は新しいユーザアカウントとグループはどのように作られるべきかという 方針の情報を得るために、デフォルトではファイル .Pa /etc/pw.conf を読み込みますが、 .Fl C オプションで異なる設定ファイルを指定できます。 設定ファイルのほとんどの内容は、コマンドライン オプションにより上書きされますが、新しいアカウントを追加するための標準 的な情報を設定ファイルに設定しておくと より便利かもしれません。 .It Fl q このオプションを使うと .Nm はエラーメッセージを抑制します。これは、注意深くフォーマットされたディスプレイへのメッセージ表示よりも、 .Nm から返された戻り値を解釈する方が好まれるような対話的な環境では 便利かもしれません。 .It Fl N このオプションは add と modify 操作で使います。 .Nm は、ユーザ/グループデータベースの更新をスキップして、操作を実際には 実行せずに、代わりに結果だけを出力します。 .Fl P オプションを使うと、標準 passwd と可読なフォーマットの切り替えが できます。 .El .Pp .Sh ユーザオプション 以下のオプションは .Ar useradd と .Ar usermod コマンドに付けます: .Pp .Bl -tag -width "-G grouplist" .It Fl n Ar name ユーザ名/アカウント名を指定します。 .It Fl u Ar uid ユーザ ID / アカウント ID を数字で指定します。 .Pp アカウント名は uid を含み、逆も同様であるため、通常これらのオプション のどちらか片方しか必要ではありません。 また .Ql Fl n や .Ql Fl u を使わなくても、コマンドライン上で .Ar useradd , .Ar userdel , .Ar usermod , .Ar usershow キーワードの直後にアカウントとユーザIDのどちらでも続けることができます。 しかし、両方を指定しなければならないこともしばしばあります。 例えば、存在するユーザの uid を .Ar usermod で変えたり、新しいアカウントを作るときにデフォルトの uid を上書きした りするときです。 .Nm で .Ar useradd を使って新しいユーザに uid を自動的に割り当てたい場合は、 .Ql Fl u オプションを使っては .Em いけません 。 .El .Pp .Ar useradd と .Ar usermod の両方で使えるオプション: .Bl -tag -width "-G grouplist" .It Fl c Ar comment このオプションは passwd の GECOS フィールドの内容をセットします。 -このフィールドは、カンマで区切られた四つのサブフィールドで、一般的には +このフィールドは、コンマで区切られた四つのサブフィールドで、一般的には ユーザの姓名、勤務先または地区、職場と自宅の電話番号を含みます。 これらのサブフィールドは慣習的に使われるだけであり、省略可能です。 このフィールドが空白を含む場合、コメント自身をダブルクォート .Ql \&" でくくらなければなりません。 -サブフィールドの区切りで使われたような、フィールド内のカンマの使用は +サブフィールドの区切りで使われたような、フィールド内のコンマの使用は 避けて下さい。そして、コロン .Ql \&: キャラクタも passwd ファイルのフィールド区切りであるため使えません。 .It Fl d Ar dir このオプションは、アカウントのホームディレクトリを設定します。 通常、これはホームディレクトリがデフォルト (基本のホームディレクトリ - 普通 .Pa /home と サブディレクトリとしてのアカウント名 - を指定する pw.conf で決定されます) と異なる場合にだけ使うことになるでしょう。 .It Fl e Ar date アカウントが破棄される日付をセットします。 この日付のフォーマットは、 10 進の UNIX 時間か .Ql \& dd-mmm-yy[yy] フォーマットの日付のどちらかになり、後者は dd が日、mmmが月で、数字と アルファベット('Jan', 'Feb' 等)のどちらでもよく、年は 2 または 4 桁の 数字からなります。 このオプションは、 .Ql \&+n[mhdwoy] の形の相対的な日付も受け付けます。 .Ql \&n は 10 進数、 8 進数 (0 から始まる) 、 16 進数 (0x で始まる) の数字で、 その後に現在の日付時刻から破棄される日までの分(m)、時(h)、日(d)、 曜日(w)、月(o)、年(y)の数がセットされます。 .It Fl p Ar date アカウントのパスワードが破棄される日付をセットします。 このフィールドは、強制的なパスワードの変更を適用することを除けば、 アカウントを破棄するオプションと同等です。 アカウントを破棄するオプションと同じフォーマットを受け付けます。 .It Fl g Ar group 与えられた group をアカウントの初期グループにセットします。 .Ar group は、グループ名または対応するグループ ID 番号が使えます。 .It Fl G Ar grouplist アカウントが属する別のグループをセットします。 .Ar grouplist -は、カンマ区切りのリスト、またはグループ名、またはグループ IDです。 +は、コンマ区切りのリスト、またはグループ名、またはグループ IDです。 ユーザを加える場合、 .Pa /etc/group の各グループにユーザ名が追加されます。 ユーザを編集する場合、 .Ar grouplist に指定されたグループにユーザ名が加えられ、 指定されなかったグループからは除かれます。 注意: ユーザは .Pa /etc/group の初期グループには加えられるべきではありません。 また、グループのメンバの変更は現在のログインにはすぐには影響されず、変 更後のログインにだけ影響します。 .It Fl L Ar class このオプションは生成されたユーザのログインクラスをセットします。 ユーザクラスに関する情報は .Xr login.conf 5 を参照して下さい。 .It Fl m このオプションは、ユーザのホームディレクトリの作成を試みるように .Nm に指示します。 もちろんこれは .Ar useradd で新しいアカウントを加えるときにも役に立ちますが、 存在するユーザのホームディレクトリをファイルシステムの別の場所に 移動する、という使い方もできます。 新しいホームディレクトリは、一般にユーザが個人的に使う シェルの設定ファイル一式を含む、 .Ar 雛型 ディレクトリの内容と共に移されます。 .Ar usermod にアカウントを指定して .Ql Fl m が用いられると、そのユーザのホームディレクトリにある 設定ファイルはプロトタイプのファイルで .Em 上書きされません 。 .Pp ユーザのホームディレクトリが作成されるとき、デフォルトで .Ql Fl b Ar dir オプション (下記参照) で指定された .Ar basehome ディレクトリのサブディレクトリとして作られ、アカウント名と同じ名前が付 けられます。 コマンドラインに .Ql Fl d Ar dir オプションを付けると、上書きするようにもできます。 .It Fl k Ar dir このオプションは、 .Ar 雛型 のサブディレクトリをセットします。ユーザのホームディレクトリが作成 されるとき、そこから基本の起動時ファイル、設定ファイル がコピーされます。 このオプションは、 .Ql Fl D (下記参照) や .Ql Fl m と共に使ったときにのみ意味があります。 .It Fl s Ar shell ユーザのログインシェルを .Ar shell にセットまたは変更します。 シェルプログラムへのパスが省略されると、 .Nm は .Pa /etc/pw.conf で指定された .Ar shellpath を探し、それを適切に補います。 パスを指定するのは、特別な理由があるのでなければ、避けるべきだ ということを覚えておきましょう。 指定しないことで、プログラムが存在し、かつ実行可能であることを .Nm に確認させることができるからです。 フルパスを指定する (または空のままの "" シェルにしておく) と このチェックをせず、対話的なログインをさせないアカウントを 設定しなければならないときに設定される .Pa /nonexistent のようなエントリを作ることができます。 .It Fl L Ar class ユーザの passwd レコード内の .Em class フィールドをセットします。 このフィールドは現在使われていませんが、将来は .Em termcap エントリのようなタグ (詳細は .Xr passwd 5 を参照のこと) を指定するために使われるでしょう。 .It Fl h Ar fd このオプションは、 .Nm を使ってアカウントパスワードを設定することができる対話的なスクリプトを 設定できるような特別のインタフェースを用意します。 コマンドラインと環境は、プログラムが情報を受け取るしくみとしては 基本的に安全ではないため、 .Nm はファイル記述子 (通常対話的スクリプトとプログラム間のパイプ) を通してのみ、アカウントとグループのパスワードの設定を許可します。 .Ar sh , .Ar bash , .Ar ksh , .Ar perl は皆、これができるしくみを持っています。 .Ql Fl h Ar 0 が指定されると、代わりに .Nm はユーザのパスワードを求めるプロンプトを出し、 .Em stdin をパスワードを読み込むファイル記述子とします。 このパスワードは一度しか読み込まれず、対話的な使用よりも スクリプト向きにできていることに注意して下さい。 .Xr passwd 1 の行に合わせて新しいパスワードの確認をしたい場合、これは .Nm を呼び出す対話的なスクリプトの一部として実装されるべきです。 .Pp 引数 .Ar fd として .Ql \&- が与えられると、パスワードとして .Ql \&* がセットされ、そのアカウントにはパスワードでログインすることが できないようになります。 .El .Pp .Ar useradd を使うことで、存在するユーザ ID と重複する新しいアカウントを作成するこ とができるようになります。 これは普通エラーになって拒否されるはずですが、 .Ql Fl o オプションが重複チェックを上書きし、ユーザ ID の重複を 許すことになります。 これは、同一のユーザが異なるコンテキスト(異なるグループ割り当てや 異なるホームディレクトリ、異なるシェル)でログインするのを許可する 場合に、各アカウントに基本的に同一のアクセス権を与える場合に便利です。 .Pp .Ar useradd コマンドは .Ql Fl D オプションを使うことで新しいユーザとグループのデフォルトも設定できます。 新しいユーザを付け加える代わりに、 .Nm は設定ファイル .Pa /etc/pw.conf に新しいデフォルトのセットを書き込みます。 .Ql Fl D オプションを使う場合、 .Ql Fl n Ar name や .Ql Fl u Ar uid を使ってはいけません。そうでないとエラーになります。 .Ql Fl D を使うと、 .Ar useradd コマンドのいくつかのコマンドラインスイッチの意味が変わります。 それは: .Bl -tag -width "-G grouplist" .It Fl D 設定ファイル .Pa /etc/pw.conf ( もしくは .Ql Fl C Ar config オプションが使われたときは異なる名前の設定ファイル ) の中でのデフォルトの値をセットします。 .It Fl b Ar dir ユーザホームディレクトリが作成されるルートディレクトリをセットします。 このオプションのデフォルトの値は .Pa /home ですが、他の好きなディレクトリにセットできます。 .It Fl e Ar days デフォルトのアカウントの有効期間を日数でセットします。 .Ql Fl D を付けずに使われる場合と異なり、引数はアカウントが作成されてから無効に なるまでの日数を指定する数字でなければなりません。 0 という値は、破棄する日付の自動算出を抑制します。 .It Fl p Ar days デフォルトのパスワードの有効期間を日数でセットします。 .It Fl g Ar group 新しいユーザのデフォルトのグループをセットします。 .Ql Fl g Ar \&"" を使って空のグループを指定すると、新しいユーザは自分自身の私的な初期 グループ (ログイン名と同じ名前の新しいグループが作成されます) に 割り当てられます。 グループの指定には、名前または uid を引数として与えることができます。 .It Fl G Ar grouplist 新しいユーザが所属するデフォルトのグループ群を指定します。 これは初期グループとは区別されたグループのセットで、一つの同じグルー プを初期グループとこの別グループ群の両方に指定することは 避けなければなりません。 言い替えると、これらの別グループ群では初期グループ .Em 以外の グループの構成メンバが決められます。 .Ar grouplist -はカンマ区切りのグループ名もしくは ID 、もしくはそれらの混在で、 +はコンマ区切りのグループ名もしくは ID 、もしくはそれらの混在で、 .Pa /etc/pw.conf の中にシンボリック名で保存されます。 .It Fl L Ar class このオプションは、新しいユーザのデフォルトのログインクラスを セットします。 .It Fl k Ar dir デフォルトの .Em 雛型 ディレクトリをセットし、 .Nm がユーザのホームディレクトリを作成するときに、 そこからシェルなどの初期化ファイルのプロトタイプがコピーされます。 .It Fl u Ar min,max , Fl i Ar min,max これらのオプションは、 .Nm により作成された新しいアカウントとグループのために割り当てるユーザと グループの最小の ID と最大の ID をセットします。 デフォルト値はどちらも最小 1000 で最大 32000 です。 .Ar min と .Ar max はどちらも数字で、 max は min より大きく、両方とも 0 から 32767 の範囲 内でなければなりません。 一般に 100 未満のユーザ ID とグループ ID はシステムに予約されており、 32000 より大きな数も (システム daemon が使う) 特殊な目的に 予約されています。 .It Fl w Ar method .Ql Fl w オプションは新しく作成されたユーザアカウントのパスワードをセットするの に使われるデフォルトの方法を指定します。 .Ar method は以下のうちの一つです: .Pp .Bl -tag -width random -offset indent -compact .It no 新しく作成されたアカウントでのログインを不可とします。 .It yes アカウント名をパスワードにします。 .It none パスワードを空欄にします。 .It random ランダムパスワードを生成します。 .El .Pp The .Ql \&random や .Ql \&no method は、最も安全です。前者の場合、 .Nm はパスワードを生成し、標準出力に出力します。 このパスワードは、ユーザがそのアカウントにアクセスするパスワードとして あなたが発行しますが、ユーザ自身が自分のパスワードを指定 (多分ひどい選択です) するものより適切です。 .Ql \&no method にした場合、パスワードでアクセスできるアカウントを与えるために スーパユーザが .Xr passwd 1 を使わなければなりません。 .El .Pp .Ar userdel コマンドには三つしか正しいオプションがありません。 .Ql Fl n Ar name と .Ql Fl u Ar uid オプションには、既に前述の説明があります。 追加オプション: .Bl -tag -width "-G grouplist" .It Fl r このオプションで、 .Nm はユーザのホームディレクトリとその内容のすべてを削除します。 .Nm はシステムからファイルを削除するとき、慎重すぎるやり方をとります。 まず、削除されるアカウントの uid がシステムの別のアカウントでも使われ ていて、パスワードファイルの 'ホーム' ディレクトリが文字 .Ql \&/ で始まる正しいパスであった場合にはファイルは削除されません。 次に、ファイルやディレクトリが実際にそのユーザのものであるか、 誰かの所有であるシンボリックリンクがユーザのホームディレクトリ下にある 場合にだけ削除されます。 最後に、そのユーザの所有であるすべての中身を削除した後、 空のディレクトリだけが削除されます。 更に別の一掃が必要なときは、管理者に任されます。 .El .Pp メールスプールファイルと crontab はユーザ名に無条件に付属しているもの なので、アカウントが削除されたとき常に削除されます。 .Ar at コマンドによって処理待ちのキューに入っているジョブも、ユーザの uid がユニークである (そのシステムの別のアカウントに使われていない) 場合は 削除されます。 .Pp .Ar usershow コマンドは、二種類のフォーマットでアカウントを閲覧できます。 フォーマットは、デフォルトで .Pa /etc/master.passwd で使われているものと同じで、パスワードフィールドは .Ql \&* に置き換えられています。 .Ql Fl P オプションが使われると、 .Nm はより人間に読みやすい形でアカウントの詳細を出力します。 .Ql Fl a オプションは、現在ファイルにあるすべてのユーザをリストします。 .Pp .Ar usernext コマンドは、利用可能な次のユーザ ID とグループ ID を コロン区切りで返します。 これは、通常 .Nm を使う対話的なスクリプトやフロントエンド用です。 .Pp .Sh グループオプション グループを操作するコマンドには、 .Ql Fl C Ar config と .Ql Fl q オプション (前セクションの始めに説明があります) が使えます。 他のグループ関係のコマンド: .Bl -tag -width "-m newmembers" .It Fl n Ar name グループ名を指定します。 .It Fl g Ar gid グループの ID を数字で指定します。 .Pp グループ名は uid を意味し、逆も同様なので、アカウント名 と ID フィールドとして、普通どちらか一つを付ければよいのです。 両方を指定する必要があるのは、新しいグループに指定したグループ ID を 設定するとき、または存在するグループの uid を変えたいときだけです。 .It Fl M Ar memberlist このオプションは、存在するユーザを新しいグループに (groupaddで) 加えたり、存在するメンバリストを (groupmodで) 新しいものに取り換える もうひとつの方法です。 .Ar memberlist -は正当で、存在するユーザ名または uid のカンマ区切りのリストです。 +は正当で、存在するユーザ名または uid のコンマ区切りのリストです。 .It Fl m Ar newmembers .Op M オプションと同様、このオプションは最初に存在するメンバのリストを 入れ換えることなく、グループに存在するユーザを .Em 追加 します。 ログイン名またはユーザ ID を使うことができ、重複するユーザは警告無く 自動的に削除されます。 .El .Pp .Ar groupadd にも、存在するグループ ID を新しいグループに割り当てる .Ql Fl o オプションがあります。 デフォルトの動作は、グループ追加の試みを拒否することになっており、この オプションはグループ ID の重複チェックを上書きします。 グループ ID を重複させる必要は滅多にありません。 .Pp .Ar groupmod コマンドには、一つの追加オプションがあります: .Pp .Bl -tag -width "-m newmembers" .It Fl l Ar name このオプションで、存在するグループ名を .Ql \&name に変更することができます。 新しい名前は存在しないものでなければならず、存在するグループ名と 重複させようとすると拒否されます。 .El .Pp .Ar groupshow へのオプションは .Ql Fl u Ar uid の代わりにグループ ID を指定する .Ql Fl g Ar gid を付けた .Ar usershow と同じです。 .Pp .Ar groupnext コマンドは、次に使用できるグループ ID を標準出力に返します。 .Sh 診断 .Nm は、操作に成功すると EXIT_SUCCESS を返し、そうでなければ .Xr sysexits 3 により定義された以下の戻り値のうちどれかひとつを返します: .Bl -tag -width xxxx .It EX_USAGE .Bl -bullet -compact .It コマンドラインのシンタックスエラー (不適切なキーワード、未定義オプション)。 .El .It EX_NOPERM .Bl -bullet -compact .It root でないユーザとして、何らかの更新を実行しようとした。 .El .It EX_OSERR .Bl -bullet -compact .It メモリアロケーションエラー。 .It パスワードファイル記述子の読み出しエラー .El .It EX_DATAERR .Bl -bullet -compact .It コマンドライン上やパスワードファイル記述子の、間違った、または正しくな いデータや欠落データ。 .It root アカウントの名前や uid の変更、削除をしようとした。 .El .It EX_OSFILE .Bl -bullet -compact .It 雛型ディレクトリが適切でない、または存在しない。 .It 基本ホームディレクトリが適切でない、または存在しない。 .It 指定したシェルが適切でない、または存在しない。 .El .It EX_NOUSER .Bl -bullet -compact .It 指定されたユーザ、ユーザ ID 、グループ、グループ ID が存在しない。 .It 記録、追加、または更新されたユーザ、グループが予期せず無くなった。 .El .It EX_SOFTWARE .Bl -bullet -compact .It 指定した範囲には未使用グループ ID 、ユーザ ID が残っていない。 .El .It EX_IOERR .Bl -bullet -compact .It 設定ファイルの書き換えができない。 .It グループやユーザデータベースファイルの更新時エラー。 .It パスワードまたはグループデータベースファイルの更新時エラー。 .El .It EX_CONFIG .Bl -bullet -compact .It 基本ホームディレクトリが設定されていない。 .El .El .Pp .Sh 注釈 各コマンドに使用可能なオプションの要約として、 .Dl pw [command] help が使えます。例えば、 .Dl pw useradd help は useradd 操作に使用できるすべてのオプションをリストします。 .Sh 関連ファイル .Bl -tag -width /etc/master.passwd.new -compact .It Pa /etc/master.passwd ユーザデータベース .It Pa /etc/passwd Version 7 フォーマットのパスワードファイル .It Pa /etc/login.conf ユーザケーパビリティデータベース (user capability database) .It Pa /etc/group グループデータベース .It Pa /etc/master.passwd.new マスタパスワードファイルの一時コピー .It Pa /etc/passwd.new Version 7 パスワードファイルの一時コピー .It Pa /etc/group.new グループファイルの一時コピー .It Pa /etc/pw.conf pw コマンドのデフォルトオプションファイル .El .Sh 関連ファイル .Xr chpass 1 , .Xr passwd 1 , .Xr group 5 , .Xr login.conf 5 , .Xr passwd 5 , .Xr pw.conf 5 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Sh 歴史 .Nm は、 SYSV の .Em shadow サポートで使われていた多くのオプションを模倣して書かれましたが、 .Bx 4.4 オペレーティングシステムに特有のパスワードフィールド、 グループフィールドに合わせて変更されています。また、ほとんどの要素が 一つのコマンドにまとめられています。 diff --git a/ja_JP.eucJP/man/man8/restore.8 b/ja_JP.eucJP/man/man8/restore.8 index ece2090731..3f8273fb7c 100644 --- a/ja_JP.eucJP/man/man8/restore.8 +++ b/ja_JP.eucJP/man/man8/restore.8 @@ -1,421 +1,421 @@ .\" Copyright (c) 1985, 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. .\" .\" @(#)restore.8 8.4 (Berkeley) 5/1/95 -.\" %Id: restore.8,v 1.5.2.4 1998/05/11 13:03:24 jkh Exp % +.\" %Id: restore.8,v 1.5.2.5 1998/08/12 06:51:28 charnier Exp % .\" .\" jpman %Id: restore.8,v 1.2 1997/03/31 14:58:10 horikawa Stab % .Dd May 1, 1995 .Dt RESTORE 8 .Os BSD 4 .Sh 名称 .Nm restore .Nd "dump コマンドで作ったバックアップからファイルやファイルシステムをリストアする" .Sh 書式 .Nm restore .Fl i .Op Fl chkmuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm restore .Fl R .Op Fl ckuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm restore .Fl r .Op Fl ckuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm restore .Fl t .Op Fl chkuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Op file ... .Nm restore .Fl x .Op Fl chkmuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Op file ... .Pp .in -\\n(iSu ( .Bx 4.3 オプション文法はバックワードコンパチビリティのために実装されていますが、 ここには記載していません。) .Sh 解説 .Nm restore は .Xr dump 8 と逆の動作を行います。 ファイルシステムの完全なリストアを行うには、 まず、フルバックアップのリストアから始め、 続いてその上にインクリメンタルバックアップをリストアします。 フルまたは部分バックアップから、単一のファイルやディレクトリの部分ツリー のみをリストア することも可能です。 .Nm restore は、ネットワークを介した動作も可能です。これを行うには、以下で説明されている .Fl f フラグを参照してください。 コマンドに与えるその他の引数は、リストアされるファイルを指定するための ファイルやディレクトリ名です。 .Fl h フラグを指定していない限り(下記参照)、ディレクトリ名を指定することで、 そのディレクトリ中のファイルや (再帰的に) サブディレクトリを指定することになります。 .Pp 以下のいずれか 1 つ(複数指定不可)のフラグが必要です: .Bl -tag -width Ds .It Fl i バックアップからの対話的なリストアを行います。バックアップからディレクトリ情報 を読み取ると、 .Nm restore はユーザに展開すべきファイルを選択させるために、 シェルに似たインタフェースでコマンドを受け付けます。 以下のコマンドが使用可能です。引数が必要なコマンドにおいて引数を省略すると、 デフォルトとしてカレントディレクトリが使われます。 .Bl -tag -width Fl .It Ic add Op Ar arg カレントディレクトリまたは指定した引数のファイルを、リストアするファイルの リストに付け加えます。ディレクトリ名を指定した場合には、そのディレクトリの下の すべてのファイルが展開リストに加えられます (コマンドラインに .Fl h フラグが指定されなかった場合)。 .Ic ls でファイルのリストを表示するときに、展開リストに含まれているファイルの頭 には ``*'' がつけられています。 .It Ic \&cd Ar arg カレントディレクトリを指定したディレクトリに移動します。 .It Ic delete Op Ar arg カレントディレクトリまたは引数で指定したファイル名のファイルを、展開する ファイルのリストから削除します。 ディレクトリ名を指定した場合には、そのディレクトリの下のすべてのファイルが 展開リストから削除されます (コマンドラインに .Fl h フラグが指定されなかった場合)。 ディレクトリ中のほとんどのファイルを展開する場合には、 ディレクトリ全体を展開リストに加えたあとで不要なファイルだけを 削除するのが一番便利なやりかたです。 .It Ic extract 展開ファイルリストにあるすべてのファイルをバックアップから展開します。 .Nm restore は、どのボリュームをマウントしたいかをユーザにたずねます。 数個のファイルのみを展開するのにもっとも早い方法は、最終ボリュームから開始して 最初のボリュームへと戻ることです。 .It Ic help 利用できるコマンドの簡単な説明を表示します。 .It Ic \&ls Op Ar arg カレントディレクトリまたは指定されたディレクトリのリストを表示します。 ディレクトリ名の後ろには ``/'' が付け加えられ、展開リストにあるファイルの前に は ``*'' が加えられます。冗長フラグがセットされていた場合には、 各ディレクトリエントリにあわせて inode 番号も表示されます。 .It Ic pwd カレントディレクトリのフルパス名を表示します。 .It Ic quit .Nm restore コマンドを中断します。展開リストに何かファイルがあったとしても終了します。 .It Ic setmodes 展開リストにあるすべてのディレクトリの所有者、モード、時刻がセットされる のみで、バックアップからはなにも展開されません。 これは、リストアを途中で中断してしまった時の後始末に有用です。 .It Ic verbose 冗長フラグ .Fl v の意味を反転します。冗長フラグがセットされている場合には、 .Ic ls コマンドは、すべてのエントリに対してその inode 番号を表示します。 また、 .Nm restore コマンドは、ファイルを展開するたびにその情報を表示します。 .El .It Fl R .Nm restore は、 フルリストアを再開するために、マルチボリュームのテープのうち特定のものを リストアすることを要求します (下記 .Fl r フラグを参照)。 これはリストア動作を中断したときに使われます。 .It Fl r リストア(ファイルシステムの再構築)を行います。 レベル 0 バックアップのリストアの前には、リストア先となるファイルシステムは .Xr newfs 8 で初期化しておき、マウントして、そのディレクトリへ .Xr cd で移動しておく必要があります。 レベル 0 バックアップのリストアに成功したら、 .Fl r フラグを指定することで、 それに加えて必要なインクリメンタルバックアップをリストアすることができます。 .Fl r フラグは対話的なファイルリストアを行わないため、注意して扱わないと 損害を与えることがあります (ディスクは言うに及ばず、精神的にも)。 次のように実行します: .Bd -literal -offset indent newfs /dev/rrp0g eagle mount /dev/rp0g /mnt cd /mnt restore rf /dev/rst8 .Ed .Pp .Nm restore は、インクリメンタルリストアのための情報を、ルートディレクトリの .Pa restoresymtable に記録します。このファイルは、すべての増分をリストアしたあとで削除すべきです。 .Pp .Nm restore を、 .Xr newfs 8 や .Xr dump 8 と組み合わせることで、ファイルシステムのサイズやブロックサイズといった パラメータを変更するのに使うことができます。 .It Fl t 指定したファイル名のファイルがバックアップ中にあれば、その名前を表示します。 ファイル名引数がない場合にはルートディレクトリを表示するため、 .Fl h フラグを指定していない限り、バックアップ中のすべてのファイルを表示することに なります。 このフラグは、古くからあった .Xr dumpdir 8 のかわりの機能を持つことに注意してください。 .ne 1i .It Fl x メディアから、指定したファイルが読み出されます。 指定ファイルがディレクトリで、そのディレクトリの内容がバックアップ中に存在し、 かつ .Fl h フラグが指定されていないときには、ディレクトリの内容が再帰的に展開されます。 (可能であれば) ファイルの所有者、修正日時、モードもリストアされます。 もし引数が与えられていなければルートディレクトリを展開するため、 .Fl h フラグを指定していない限り、結果的にバックアップ全体が展開されます。 .El .Pp 以下の追加オプションを指定可能です: .Bl -tag -width Ds .It Fl b Ar blocksize ダンプレコードあたりのキロバイト数です。 .Fl b が指定されないときは、 .Nm restore はメディアのブロックサイズを動的に求めようとします。 .It Fl c 通常 .Nm は、ダンプ対象のファイルシステムフォーマットが 新しいか古い(4.4 以前)かを動的に決定します。 .Fl c フラグはこのチェックを無効にし、 古いフォーマットのダンプからのみ読み込むことを許します。 .It Fl f Ar file バックアップを .Ar file から読み込みます; .Ar file は、 .Pa /dev/rmt12 (テープドライブ)や .Pa /dev/rsd1c (ディスクドライブ)といったスペシャルデバイスファイル、 通常のファイル、 .Ql Fl (標準入力)のいずれかです。 ファイル名が .Dq host:file や .Dq user@host:file という形式である場合は、 .Nm restore は .Xr rmt 8 を用いて指定したファイルを指定のホストから読み取ります。 .Pp .It Fl k リモートテープサーバとの通信時に Kerberos 認証を使用します ( .Nm restore のコンパイル時に有効にされている場合のみ使用可能です。) .Pp .It Fl h ディレクトリ名を指定された場合に、その中のファイルではなく、 ディレクトリそのものを展開するようにします。 これによって、ダンプからディレクトリのサブツリーを階層的に 展開してしまうことを防ぎます。 .It Fl m 展開を、ファイル名ではなく inode 番号によって行います。 これは数個のファイルのみを展開したい場合で、ファイルの完全なパス名を 再生することを防ぎたい場合に有用です。 .It Fl s Ar fileno マルチファイルテープの .Ar fileno から読みます。 ファイル番号は 1 から始まります。 .It Fl u 特定のタイプのファイルを作成する時に、 リストア先ディレクトリに既に同名のファイルが存在する場合には、 リストアは警告診断を生成し得ます。 この動作を抑制するために、 .Fl u (アンリンク) フラグを指定すると、リストアは古いエントリを作成してから 新しいエントリを作成しようとします。 .It Fl v 普通、 .Nm restore は何も表示せずにリストア動作を行います。 .Fl v (verbose, 冗長)フラグを指定すると、 扱うファイルのタイプとファイル名が表示されます。 .It Fl y エラーが発生したときに、リストア動作を中断するかどうかの問い合わせを 行いません。 これによって、不良ブロックをスキップして、可能なかぎり動作を継続します。 .El .Sh 診断 リードエラーが発生するとメッセージを表示します。 もし、 .Fl y が指定されているか、あるいはユーザが .Ql y の応答をしたならば、 .Nm restore はリストアを続行しようとします。 .Pp バックアップが 1 巻より多くのテープボリュームに格納されていたならば、 .Nm restore は次のボリュームをマウントすべき時点でそれをユーザに知らせます。 もし、 .Fl x あるいは .Fl i フラグが指定されていたら、 .Nm restore は、ユーザがマウントしたいのはどのボリュームであるかを問い合わせます。 少数のファイルを最も早く展開する方法は、最終ボリュームから開始して、 最初のボリュームへ向けて作業を進めることです。 .Pp .Nm restore は数多くの一貫性検査を行っていて、それを表示します。 ほとんどの検査結果の表示は自明であるか、あるいは「決して起こらない」ものです。 良くあるエラーを以下に示します。 .Pp .Bl -tag -width Ds -compact .It Converting to new file system format. 古い形式のファイルシステムで作られたダンプテープがロードされました。 その場合、自動的に新しいファイルシステムの形式に変換されます。 .Pp .It : not found on tape 指定したファイル名はテープのディレクトリには記録されていましたが、 テープのなかに本体が見当たりませんでした。 このような事態が起きるのは、ファイルを探している間にテープのリードエラー が発生した場合や、稼働中のファイルシステムにおいて作成したダンプテープ を使った場合です。 .Pp .It expected next file , got ディレクトリに記録されていなかったファイルが示されます。 稼働中のファイルシステムにおいて作成したダンプを使った場合に発生することが あります。 .Pp .It Incremental dump too low インクリメンタルリストアを行う際に、ダンプが直前のインクリメンタルダンプ よりも以前に書かれたものであったり、増分レベルが低すぎるダンプがロード された場合に表示されます。 .Pp .It Incremental dump too high インクリメンタルリストアを行う際に、ダンプが直前のインクリメンタルダンプ の続きの範囲から開始していなかったり、あるいは増分レベルが高すぎる ダンプがロードされた場合に表示されます。 .Pp .It Tape read error while restoring .It Tape read error while skipping over inode .It Tape read error while trying to resynchronize テープ(あるいはその他の媒体)のリードエラーが発生しました。 ファイル名が表示されていたならば、その内容はおそらく部分的に不正なものに なっているでしょう。 もし inode がスキップされたり、テープの resynchronize(再同期)が試みら れていたならば、展開されたファイルには問題はありません。しかし、テープ 上からいくつかのファイルを見付けることができないかもしれません。 .Pp .It resync restore, skipped blocks ダンプのリードエラーが発生した後に、おそらく .Nm restore は自分自身で再同期をとらなければなりません。 このメッセージはスキップしたブロックの個数を表示します。 .El .Sh 関連ファイル .Bl -tag -width "./restoresymtable" -compact .It Pa /dev/rst0 デフォルトのテープドライブ .It Pa /tmp/rstdir* テープ中のディレクトリを保持するファイル .It Pa /tmp/rstmode* ディレクトリの所有者、モード、タイムスタンプ .It Pa \&./restoresymtable インクリメンタルリストア間で渡される情報 .El .Sh 関連項目 .Xr dump 8 , .Xr ft 8 , .Xr mount 8 , .Xr newfs 8 , .Xr rmt 8 .Sh バグ 使用中のファイルシステムから作成されたダンプから インクリメンタルリストアを行うと、誤動作を起こすことがあります。 .Pp フルリストアの終了後にはレベル 0 ダンプを行う必要があります。 .Nm restore はユーザコードで動作するので、inode の割り当てを制御することができません。 したがって、ファイルの内容が変更されていない場合でも、新しい inode 割り当てを 新しいディレクトリ集合に反映させるためには、 フルダンプを行わなければなりません。 .Pp ネットワークを介したリストアを行う場合、 root 権限で restore を実行する必要があります。 これは、以前の dump と restore のセキュリティ上の歴史によるものです。 (restore は root に setuid されて使われるように書かれていますが、 restore のコードから全てのバグが取れているとは思わないので、 setuid にて使用する場合は自己の責任において行って下さい。) .Sh 歴史 .Nm restore コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/route.8 b/ja_JP.eucJP/man/man8/route.8 index 6fb5849f9b..63decfa368 100644 --- a/ja_JP.eucJP/man/man8/route.8 +++ b/ja_JP.eucJP/man/man8/route.8 @@ -1,333 +1,334 @@ .\" 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. .\" .\" @(#)route.8 8.3 (Berkeley) 3/19/94 -.\" %Id: route.8,v 1.7.2.3 1998/07/21 06:50:20 charnier Exp % +.\" %Id: route.8,v 1.7.2.4 1998/08/12 06:48:51 charnier Exp % +.\" .\" jpman %Id: route.8,v 1.3 1997/07/28 05:33:13 konuma Stab % .\" .Dd March 19, 1994 .Dt ROUTE 8 .Os BSD 4.4 .Sh 名称 .Nm route .Nd マニュアルでルーティングテーブルを操作する .Sh 書式 .Nm route -.Op Fl nqv +.Op Fl dnqtv .Ar command .Oo .Op Ar modifiers .Ar args .Oc .Sh 解説 .Nm はネットワークルーティングテーブルを マニュアルで操作するユーティリティです。 通常は、 .Xr routed 8 のようなシステムルーティングテーブル管理デーモンが 保守をしているので、マニュアルでの操作は必要ありません。 .Pp .Nm ユーティリティは指定できるオプションは少数ですが、 強力なコマンド言語をサポートしています。ユーザは .Xr route 4 において解説されているプログラム可能なインタフェイスを通して、 任意の要求を指定することができます。 .Pp .Bl -tag -width Ds .It Fl n レポートの出力において、ホスト名とネットワーク名のシンボル名での表示を 抑止します。 (シンボル名と数字によるアドレスの変換処理には時間がかかり、 またネットワークが正常に動作している必要があります。 そのため、特にネットワークの動作の修正中には、 変換処理を行なわない方が好都合かもしれません。) .It Fl v (冗長モード) 詳細な情報を出力します。 .It Fl q 全ての出力を行ないません。 .El .Pp .Nm ユーティリティでは以下の 6 つのコマンドを提供しています。 .Pp .Bl -tag -width Fl -compact .It Cm add ルートを追加します。 .It Cm flush 全てのルートを削除します。 .It Cm delete 指定されたルートを削除します。 .It Cm change ルートの属性 (ゲートウェイなど) を変更します。 .It Cm get ある宛先に対するルートを検索し、表示します。 .It Cm monitor ルーティング情報ベースの変更、ルーティング検索の失敗、 ネットワーク分割の疑いなどの情報を継続的に報告します。 .El .Pp monitor コマンドは以下の書式です。 .Pp .Bd -filled -offset indent -compact .Nm route Op Fl n .Cm monitor .Ed .Pp flush コマンドは以下の書式です。 .Pp .Bd -filled -offset indent -compact .Nm route Op Fl n .Cm flush .Op Ar family .Ed .Pp .Cm flush コマンドが指定されると、 .Nm は全てのゲートウェイのエントリにおけるルーティングテーブルを削除します。 アドレスファミリが .Fl osi , .Fl xns , .Fl atalk , .Fl inet のいずれかの修飾子によって指定されている場合、 そのアドレスファミリの宛先を持つルートだけが削除されます。 .Pp その他のコマンドは以下の書式です。 .Pp .Bd -filled -offset indent -compact .Nm route Op Fl n .Ar command .Op Fl net No \&| Fl host .Ar destination gateway .Ed .Pp ここで .Ar destination は宛先のホストもしくはネットワークです。 .Ar gateway はパケットがルートされるべき次の中継点です。 ある特定のホストへのルートは、 .Ar destination で指定されたインターネットアドレスを解釈することによって、 ネットワークへのルートと区別されます。 オプションの修飾子 .Fl net , .Fl host が指定されると、 .Ar destination をそれぞれネットワークもしくはホストとして強制的に解釈します。 これらの修飾子がないなら、 .Ar destination に INADDR_ANY の ``ローカルアドレス部'' が含まれるか .Ar destination がネットワークのシンボル名である場合はネットワークへのルート、 その他の場合はホストへのルートと想定します。 .Pp 例えば、 .Li 128.32 は .Fl host Li 128.0.0.32 として解釈されます。 .Li 128.32.130 は .Fl host Li 128.32.0.130 として、 .Fl net Li 128.32 は .Li 128.32.0.0 として、 .Fl net Li 128.32.130 は .Li 128.32.130.0 として解釈されます。 .Pp 宛先がゲートウェイとして動作する中継点なしで、 あるインタフェイスから直接到達可能な場合、 .Fl interface 修飾子を指定しなければなりません。 この場合、指定されたゲートウェイは共通なネットワーク上の ローカルホストのアドレスとなり、 そのインタフェイスが転送に使用されることを示します。 また、インタフェイスが point to point 接続の場合、 インタフェイスをその名前で指定できます。 この場合、ローカルやリモートのアドレスが変更されても そのルートは有効のまま残ります。 .Pp オプションの修飾子 .Fl xns , .Fl osi , .Fl atalk , .Fl link はそれに続いて指定されるアドレスが、それぞれ .Tn XNS , .Tn OSI , .Tn AppleTalk アドレスファミリである、もしくはリンクレベルのアドレスであることを指定します。 これらの場合、名前はシンボル名ではなく、 数字によって指定をおこなわなければなりません。 .Pp オプションの修飾子 .Fl netmask はネットマスクオプションつきの .Tn OSI .Tn ESIS プロトコルによるリダイレクトの効果を実現するためのものです。 つまり、ネットワークインタフェイスの暗黙のネットマスクとは異なる ネットマスクをもつサブネットを手動で追加します。 (この方法によらない場合は、OSPF や ISIS ルーティングプロトコルによって 通信します。) この修飾子に続いて、アドレスパラメータ (これはネットワークマスクとして解釈されます) を指定します。 AF_INET の場合に生成される暗黙のネットワークマスクは、 このオプションを .Ar destination パラメータに続いて指定することによって、上書きすることができます。 .Pp ルートにはいくつかのフラグがあり、 そのルートを使う宛先にデータを送信する時のプロトコルの動作に 影響をおよぼします。 これらのフラグは以下の修飾子によってセット (もしくはクリア) できます。 .Bd -literal -cloning RTF_CLONING - 使用中のルートを新たにひとつ生成する。 -xresolve RTF_XRESOLVE - (外部からの検索に対して) 使用中である旨のメッ セージを発行する。 -iface ~RTF_GATEWAY - 宛先が直接到達可能。 -static RTF_STATIC - 手動でルートを追加する。 -nostatic ~RTF_STATIC - カーネルかデーモンによってルートが追加された ように振舞う。 -reject RTF_REJECT - マッチした場合に ICMP unreachable を出力する。 -blackhole RTF_BLACKHOLE - (更新中に) 何も報告せずにパケットを捨てる。 -proto1 RTF_PROTO1 - プロトコルに特有のフラグ #1 をセットする。 -proto2 RTF_PROTO2 - プロトコルに特有のフラグ #2 をセットする。 -llinfo RTF_LLINFO - プロトコルアドレスからリンクアドレスへの変換の 正当性をチェックする。 .Ed .Pp オプションの修飾子 .Fl rtt , .Fl rttvar , .Fl sendpipe , .Fl recvpipe , .Fl mtu , .Fl hopcount , .Fl expire , .Fl ssthresh によって TCP や TP4 のトランスポートレベルのプロトコルによる ルーティングのエントリ中でメインテナンスされる値の初期値を指定します。 これらは各々の修飾子の前に .Fl lock メタ修飾子を指定することによって、個別にその値をロックすることができます。 また .Fl lockrest メタ修飾子をつけることによって、 その後に続く全ての値をロックすることもできます。 .Pp .Cm change もしくは .Cm add コマンドにおいて、 .Ar destination もしくは .Ar gateway がルートを特定するのに不十分であった場合 (たとえば .Tn ISO のケースにおいて、複数のインタフェイスが同じアドレスを持っているような場合)、 .Fl ifp や .Fl ifa 修飾子を使うことによって、 インタフェイスやインタフェイスアドレスを特定することができます。 .Pp .Ar destination や .Ar gateway で指定された全てのシンボル名は、まずホスト名として .Xr gethostbyname 3 を使用して検索されます。検索に失敗した場合は、その名前をネットワーク名と見なし .Xr getnetbyname 3 によって検索されます。 .Pp .Nm はルーティングソケットと新しいメッセージタイプである RTM_ADD, RTM_DELETE, RTM_GET, RTM_CHANGE を使います。 ルーティングテーブルの変更はスーパユーザのみがおこなうことができます。 .Sh 診断 .Bl -tag -width Ds .It Sy "add [host \&| network ] %s: gateway %s flags %x" 指定されたルートがテーブルに追加されました。 出力された値は .Xr ioctl 2 の呼出しの中で使われたルーティングテーブルのエントリからのものです。 指定されたゲートウェイアドレスがそのゲートウェイのプライマリアドレス ( .Xr gethostbyname 3 によって返される最初のもの) でなかった場合、 ゲートウェイアドレスがシンボル名に加えて、数字でも表示されます。 .It Sy "delete [ host &| network ] %s: gateway %s flags %x" 指定されたルートがテーブルから削除されました。 .It Sy "%s %s done" .Cm flush コマンドが指定された場合、削除された各ルーティングテーブルエントリが この形式のメッセージで報告されます。 .It Sy "Network is unreachable" 指定されたゲートウェイが直接到達可能なネットワーク上にないために、 ルートの追加に失敗しました。 hop 数が 1 であるゲートウェイを指定しなければなりません。 .It Sy "not in table" テーブルにないエントリを削除しようとしました。 .It Sy "routing table overflow" ルートの追加を試みましたが、システムの資源が少なく、 新しいエントリを作成するためのメモリを割り当てられませんでした。 .El .Sh 関連項目 .Xr netintro 4 , .Xr route 4 , .Xr IPXrouted 8 , .Xr routed 8 .\" .Xr XNSrouted 8 .\" Xr esis 4 , .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 .Sh バグ 最初の段落は多少 -.Xr routed +.Xr routed 8 の能力を大げさに書いています。 diff --git a/ja_JP.eucJP/man/man8/routed.8 b/ja_JP.eucJP/man/man8/routed.8 index 8b0e56b289..d0446f3d93 100644 --- a/ja_JP.eucJP/man/man8/routed.8 +++ b/ja_JP.eucJP/man/man8/routed.8 @@ -1,615 +1,616 @@ .\" 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. .\" .\" @(#)routed.8 8.2 (Berkeley) 12/11/93 -.\" %Id: routed.8,v 1.2.2.4 1998/07/17 20:13:50 jkh Exp % +.\" %Id: routed.8,v 1.2.2.5 1998/08/12 06:54:16 charnier Exp % +.\" .\" jpman %Id: routed.8,v 1.2 1997/03/31 14:11:11 horikawa Stab % .\" .Dd June 1, 1996 .Dt ROUTED 8 .Os BSD 4.4 .Sh 名称 .Nm routed .Nd ネットワークの RIP と router discovery のルーティングデーモン .Sh 書式 .Nm .Op Fl sqdghmpAt .Op Fl T Ar tracefile .Oo .Fl F .Ar net Ns Op /mask Ns Op ,metric .Oc .OP Fl P Ar parms .Sh 解説 .Nm routed はネットワークのルーティングテーブルを管理するデーモンで、 システムのブート時に起動されます。 これは、カーネルのルーティングテーブルを管理するために、 ルーティング情報プロトコル (Routing Information Protocol) の RIPv1 (RFC\ 1058)、RIPv2 (RFC\ 1723)、および Internet Router Discovery Protocol (RFC 1256) を用います。 RIPv1 プロトコルは 4.3BSD のデーモンのものをベースとしています。 .Pp .Nm routed は、ルーティング情報プロトコルのパケットを待つために、 .Xr route 8 サービス .Ns ( Xr services 5 参照) 用の .Xr udp 4 ソケットを listen() します。また、マルチキャストによる Router Discovery の ICMP メッセージの送受信も行います。 ホストがルータだった場合、 .Nm routed は直接接続されている全てのホストやネットワークに、 ルーティングテーブルの複製を定期的に提供します。 また、Router Discovery の ICMP メッセージを用いてデフォルトルートを広告したり 要求したりします。 .Pp .Nm routed が走行し始めると (または、ネットワークインタフェースがオンになると)、 .Nm routed は AF_ROUTE アドレスファミリを用いて、システムに直結されていて コンフィギュレーションされているインタフェースのうちで "up" とマークされて いるものを探します。そしてそのインタフェースに必要な経路をカーネルの ルーティングテーブルに追加します。スタート直後で、RIP が無効になっていない インタフェースが少なくとも 1 つある場合は、 .Nm routed はカーネルのテーブル内に既に存在する静的でない経路を全て削除します。 カーネルのテーブル内にある静的な経路は保存され、有効な RIP metric を 持っているものは RIP レスポンスに含められます .Ns ( Xr route 8 参照)。 .Pp 複数のインタフェース (ループバックインタフェースは含めません) が提供されている 場合、そのホストは接続されているネットワーク間でパケットを中継するものと みなされます。新しいインタフェース上で RIP リクエストを送信した後や ルータ発見のための広告や要求を送信した後で、デーモンはループに入り、 他のホストからの RIP リクエストやレスポンスや Router Discovery のパケットを listen します。 .Pp リクエストパケットを受信すると、 .Nm routed は内部テーブルに持っている情報からリプライを作成します。 生成された .Em レスポンス パケットには既知の経路のリストが含められ、各経路に "hop count" metric がつきます (16 以上は "無限大" とみなされます)。 広告した metric はインタフェースに設定した metric を反映するため .Ns ( Xr ifconfig 8 参照)、トラフィックを制御するにはインタフェースの metric を設定するのが よい方法です。 .Pp .Em split-horizon をインプリメントしているため、リクエストしてきたネットワークの 1 hop 先の 経路はレスポンスには含められません。 .Xr rtquery 8 のような問い合わせプログラムからのリクエストに対しては、テーブル全体 から答を導き出します。 .Pp ルータの故障から素早く復旧できるようにするため、 デーモンが扱うルーティングテーブルには各到達先用のゲートウェイをいくつか 覚えておくための空間があります。受けとった RIP .Em レスポンス パケットが更新のために使用されるのは、 現在認識しているゲートウェイのうちの 1 つから提供された場合、 もしくは現在あるゲートウェイのうちの少なくとも 1 つよりも よい metric を広告された場合です。 .Pp 更新を行う時、 .Nm は自分自身が持つテーブルの変更を記録し、到達先への最適な経路が変更された 場合にはカーネルのルーティングテーブルを記録します。カーネルの ルーティングテーブルに対するこの変更は、次に送出される .Em レスポンス パケットに反映されます。次のレスポンスがしばらくの間スケジューリングされない 場合には、最近変更された経路だけを含んだ .Em flash update レスポンスが送られます。 .Pp 到着パケットの処理に加えて、 .Nm は定期的にルーティングテーブルのエントリをチェックします。 あるエントリが 3 分間更新されなかった場合、 そのエントリの metric は無限大として設定され、 削除のためのマークがつけられます。 この無効化がローカルなインターネットを通して伝搬するのを保証するために、 削除はその経路が無限大の metric を持つと広告されるまで延期されます。これが .Em poison reverse 方式です。 .Pp カーネルのテーブル内の経路のうちで ICMP Redirect メッセージの結果として 追加や変更されたものは、 .Em black-holes を最小にするために、しばらく経ってから削除されます。 TCP コネクションのタイムアウトが起こると、カーネルは .Nm routed に対し、そのゲートウェイを通る全てのリダイレクトされた経路を削除し、 そのゲートウェイを通る全ての RIP の経路の年齢を増やすことで他のゲートウェイが 選択されるようにし、関連する全ての Router Discovery Protocol の デフォルトルートの年齢を増やします。 .Pp ネットワーク間ルータとして動作するホスト群は、直接接続されているホストおよび ネットワークすべてに対し、30 秒ごとにルーティングテーブルを無条件で提供します。 この RIP レスポンスは、ブロードキャストをサポートしているネット上の ブロードキャストアドレス、point-to-point リンクの到達先アドレス、 ルータ自身の他のネットワークでのアドレスに対して送信されます。 RIPv2 が有効になっている場合は、マルチキャストをサポートしているインタフェース に対してマルチキャストパケットが送られます。 .Pp リモートインタフェース上でレスポンスが受信されない場合や、 レスポンスを送っている最中にエラーが起こった場合や、 エラーが入力や出力よりも多い場合 .Ns ( Xr netstat 8 参照) は、ケーブルやインタフェースの他の部分が接続されていないか壊れている とみなされ、その経路は適切に変更されます。 .Pp .Em Internet Router Discovery Protocol も同様に扱われます。デーモンが RIP の経路を配っている時は、Router Discovery の要求の listen と Router Discovery の広告の送信も行います。 デーモンが静かな状態で他の RIP ルータからのパケットを listen している時には、 Router Discovery の要求を送信して、Router Discovery の広告を listen します。 受けた広告がよいものであれば、 RIP レスポンスのブロードキャストやマルチキャストを listen するのをやめます。 現在利用中のルータが死んだ場合に障害のある状態から短時間で修復できるよう、 広告されているルータのいくつかを追跡します。 もし発見してあるルータが全て見えなくなった場合は、RIP レスポンスの listen を 再開します。 .Pp Router Discover の仕様では、広告の "生存期間" をデフォルトで 30 分とすることを 要求しています。これは、何かが起こった場合に クライアントに 30 分間よい経路がなくなる可能性があることを意味しています。 コマンドラインで .Fl P Cm rdisc_interval=45 と指定したり .Pa /etc/gateways に .Cm rdisc_interval=45 と書くことでデフォルトを 45 秒にするのはいい考えです。 .Pp Router Discovery を利用している場合 (システムが持っている ネットワークインタフェースが 1 つだけでかつ Router Discovery の広告を 受けた場合にはこれがデフォルトです)、カーネルのテーブル内には デフォルトルートは 1 つだけで、ホストへの経路は可変個数となります。 複数のネットワークインタフェースを持つホストでは、 このデフォルトルートはそのインタフェースのうちの 1 つだけを経由します。 このため、複数のホームを持つホストで .Fl q つきで動作しているものは、 以下に示す .Cm no_rdisc が必要です。 .Pp RIPv2 と Router Discovery のどちらも扱うことができない "遺物の" システムを サポートするためには、以下に記述してある .Cm pm_rdisc を参照して下さい。 .Pp デフォルトでは、point to point リンク (たとえば PPP) には Router Discovery の広告も要求も送信されません。 point-to-point リンク (SLIP や PPP などのような、IFF_POINTOPOINT フラグ のついたもの) のネットマスクは、 RIPv1 利用時にはそのネットマスクがリモートシステムで利用されると .Nm routed は推測します。 .Pp .Nm routed がサポートしているオプションは以下の通りです: .Bl -tag -width Ds .It Fl s このオプションを指定すると、 .Nm は強制的にルーティング情報を提供します。 これは、RIP や Router Discovery を無効にしていない状態で複数の ネットワークインタフェースが提供されており、カーネルが ipforwarding=1 に なっている場合にはデフォルトです。 .It Fl q .Fl s オプションとは逆の動作をします。 インタフェースが 1 つだけの場合は、これがデフォルトです。 .It Fl d バックグラウンドでは動作しません。このオプションは対話的に使用するための ものです。 .It Fl g このフラグは、ネットワーク間ルータにおいて "default" の到達先への経路を設ける ために使われます。これは .Fl F .Cm 0/0,1 と同じ意味を持ち、主として歴史的理由のために提供されています。 これよりは、 .Fl P Cm pm_rdisc をコマンドラインで指定するか、 .Cm pm_rdisc を .Pa /etc/gateways で指定するほうがよいでしょう。 大きな metric を使用すれば、 デフォルトルートの潜在的な危険が広がる可能性を減らせます。 これは、典型的にはインターネットへのゲートウェイで用いられるか、 経路を他のローカルルータに対して報告しないような他の ルーティングプロトコルを利用しているゲートウェイの場合に用いられます。 metric には 1 が使われるため、この機能は危険です。このオプションは一般に、 問題を解決するよりも、ルーティングのループによる混乱を引き起こしがちです。 .It Fl h ホストルートまたは point-to-point ルートを広告しません。 これらは同一方向へいくネットワークルートであると規定されます。これは 特別な性質を持つ集合です。このオプションは、イーサネットへのゲートウェイ でかつ SLIP のような point-to-point リンクで他のゲートウェイマシンが継っている ゲートウェイにおいて有効です。 .It Fl m マシンが、そのプライマリインタフェースへのホストルートや point-to-point ルート を広告するようになります。 これは NFS サーバなどのような複数のホームを持つマシンにおいて有効です。 このオプションは、作成したホストルートのコストがサーバの人気で正当化される 場合を除いて、使うべきではありません。 これは、マシンがルーティング情報を供給していて、複数のインタフェースを 持っている場合にのみ効果があります。 .Fl m オプションは、 .Fl q オプションの効果を上書きして、 ホストルートの広告を限定した範囲に制限します。 .It Fl A もし RIPv2 の認証に注意を払わない場合は、RIPv2 の認証を無視しません。 RFC 1723 に準拠するためにはこのオプションが必要です。 しかしながら、これは意味がなく、マシンが認証について注意を払わない時に 認証を運ぶ全ての RIPv2 パケットを無視するために検出プロトコルとして RIP を使う場合の妨げとなります。 .It Fl T Ar tracefile デバッグレベルを最低でも 1 まで上げ、デバッグ情報をトレースファイルに 書き加えるようにします。セキュリティ上の都合により、 .Nm routed がファイルへのトレースを日常的に行うようにはしないのが賢明です。 .It Fl t デバッグレベルを増やします。 .Fl T で指定したトレースファイルや標準出力に対し、より詳細な情報を記録するように なります。デバッグレベルは .Em SIGUSR1 シグナルや .Em SIGUSR2 シグナルや .Xr rtquery で増減できます。 .It Fl F Ar net[/mask][,metric] .Em net/mask にマッチするアドレスを持つインタフェースを介した転送における経路を最小にし、 このマシンへのデフォルトルートを metric 数 .Em metric で作成します。この目的は、RIP 情報をもつ多数の大きな UDP パケットを "にせ" の デフォルトルートを含んだ 1 つの小さなパケットに置き換えることで、 遅い、たとえば PPP のような point-to-point リンクでの RIP のトラフィックを 減らすことにあります。 もし .Em metric がない場合は、"にせ" のデフォルトルートが広まるのを制限するために 14 が 指定されたものとみなします。 この機能は、不注意に使うとルーティングのループを引き起こすので危険です。 指定したネットワーク番号とマスクに複数のインタフェースがマッチする可能性がある ことに注意して下さい。 .Fl g も参照してください。 .It Fl P Ar parms パラメータ行 .Em parms を .Pa /etc/gateways ファイルに書くのと同じです。 .El .Pp 提供された他の引数は、 .Nm routed の動作を記録するファイルの名前として解釈されます。 トレースファイルの名前をコマンドに追加するよりは、 .Fl T を使った方がよいでしょう。 .Pp 上記の機能に加えて、 .Nm routed は "遠隔にある" .Em パッシブ もしくは .Em アクティブ なゲートウェイという概念をサポートします。 .Nm は動作を開始すると、実在しないかもしれない遠隔のゲートウェイを検索するために .Pa /etc/gateways を読み込みます。ローカルなゲートウェイがパッシブであるかどうかや、 他のパラメータの取得には、ルーティングソケットからの情報だけをもとにします。 このようにして指定されたゲートウェイは、ルーティング情報を交換しない場合は パッシブマークが付加されます。一方、 RIP パケットを交換するゲートウェイに ついては、アクティブマークが付与されます。 .Em パッシブ ゲートウェイを介す経路については、システムスタートアップ時に一度だけ カーネル内の経路情報テーブルに設定され、送出される RIP レスポンスには 含められません。 .Pp 遠隔のアクティブゲートウェイは、ネットワークインタフェースと同様に扱われます。 RIP レスポンスが遠隔の .Em アクティブ ゲートウェイに送られます。 応答がない場合は、 その経路はカーネルのテーブルと別のインタフェースから広告された RIP レスポンスの ぞれぞれから削除されます。遠隔のゲートウェイが RIP レスポンスの送出を 再開した場合は、その経路は再追加されます。 .Pp このようなゲートウェイは、ATM ネットワークなどのような、 ブロードキャストやマルチキャストはサポートしないがそれ以外は Ethernet のような 伝統的な共有メディア方式のように働くネットワークに有効です。 ATM ネットワーク上にある到達可能な全ての RIP ルータを .Pa /etc/gateways の "host" 行を使って記述することができます。 .Pp .Em external マークのついたゲートウェイはパッシブと同様の扱いになりますが、 カーネル内のルーティングテーブルに載ることはなく、 ルーティングの更新時にその情報が含められることもありません。 external エントリの機能は、他のルーティングプロセスがそのような経路を 必要時に追加する可能性があることを知らせるためにあり、その到達先への別の経路は .Nm routed で設定されるべきではありません。 external エントリは、両方のルータが同じ到達先への経路を覚えてもよい場合にのみ 必要です。 .Pp .Pa /etc/gateways ファイルは、以下のフォーマットおよびパラメータからなる行の集まりです: .Pp .Bd -ragged .Cm net .Ar Nname[/mask] .Cm gateway .Ar Gname .Cm metric .Ar value .Pf < Cm passive No \&| .Cm active No \&| .Cm extern Ns > .Ed .Bd -ragged .Cm host .Ar Hname .Cm gateway .Ar Gname .Cm metric .Ar value .Pf < Cm passive No \&| .Cm active No \&| .Cm extern Ns > .Ed .Pp キーワード .Ar Nname や .Ar Hname は、到達先のネットワークやホストの名前です。 .Pp .Ar name1 は、到達先のネットワークもしくはホストの名前です。 これはネットワークのシンボル名または "ドット" 表記による インターネットアドレスのどちらでも構いません .Ns ( Xr inet 3 参照)。(もし名前の場合は、 .Pa /etc/networks または .Pa /etc/hosts で定義されているか、 .Nm routed の動作開始前に .Xr named 8 が起動されていなければなりません。) .Pp .Ar mask は省略可能な数値で .Ar Nname のネットマスクを表し、1 から 32 までの値をとります。 .Pp .Ar Gname は、RIP レスポンスがフォワードされるべきゲートウェイの名前もしくは アドレスです。 .Pp .Ar value は、到達先ホストもしくはネットワークへの hop 数です。 .Ar " host hname " は .Ar " net nname/32 " と同一です。 .Pp .Cm passive , .Cm active , .Cm external のキーワードのうちの 1 つを指定することで、ゲートウェイが .Cm passive または .Cm active (前述の通り) であるか RIP プロトコルのスコープの範囲外つまり .Cm external であるかを指示しなければなりません。 .Pp "net" と "host" のどちらでも始まらない行は、以下のようなパラメータ設定 でなければなりません。これは 1 つでも複数でもよく、複数の場合はコンマや 空白で区切ります: .Bl -tag -width Ds .It Cm if Ns \&= Ns Ar ifname その行にある他のパラメータが、名前が .Ar ifname のインタフェースに適用されることを示します。 .It Cm subnet Ns \&= Ns Ar nname[/mask][,metric] ネットワーク .Ar nname への経路をマスク .Ar mask と指定された metric (デフォルトは 1) で広告します。 これは CIDR の確保において "穴" を埋めるのに有効です。 このパラメータはその行にそれだけで出現しなければなりません。 .Pp この機能は不必要に使ってはいけません。危険です。 .It Cm passwd Ns \&= Ns Ar XXX RIPv2 の password を指定します。これは送信した全ての RIPv2 レスポンスに 含められ、受信した全ての RIPv2 レスポンスでチェックされます。 パスワードは、空白やタブ文字やコンマや '#' を含んではいけません。 .It Cm passwd Ns \&= Ns Ar XXX1[|KeyID[start|stop]] RIPv2 の生のパスワードを指定します。 これは、送信される全ての RIPv2 レスポンスに含められ、 受信した全ての RIPv2 レスポンスでチェックされます。 パスワード内の空白、タブ文字、コンマ、'#'、'|'、NULL 文字は、 バックスラッシュ (\\) でエスケープしなければなりません。 よく使われる \\n, \\r, \\t, \\b, \\xxx などのエスケープシーケンスは、 それぞれ通常の意味を持っています。 .Cm KeyID は一意でなければなりませんが、生のパスワードの場合は無視されます。 .Cm start と .Cm stop がある場合、これはタイムスタンプで、 year/month/day@hour:minute の形式をとります。 これらはパスワードが正しい時に設定されます。 出力パケットで使われるパスワードには、期限が最も遠い将来まで設定されている パスワードが使われます。全てのパスワードが期限切れになった場合には、 最も最近期限切れになったパスワードが使われます。 また、有効なパスワードがまだ設定されていない場合には、 パスワードは出力されません。 到着パケットは有効なパスワードを運んでくる可能性があります。 ここで有効とは、未来の 24 時間内で有効になるものか、 過去 24 時間内で有効であったものを指します。 .It Cm md5_passwd Ns \&= Ns Ar XXX1|KeyID[start|stop] RIPv2 の MD5 パスワードを指定します。 .Cm KeyID が必須であること以外は、このキーワードは .Cm passwd と同じです。 秘密を守るため、パスワードの設定は .Em /etc/gateways 内のものだけが有効であり、かつ、このファイルが UID 0 でのみ読み込み可能 でなければなりません。 .It Cm no_ag RIPv1 と RIPv2 のレスポンス内のサブネットの合成を行いません。 .It Cm no_super_ag RIPv2 のレスポンス内のネットワークのスーパネットへの合成を行いません。 .It Cm passive そのインタフェースが更新時に他のインタフェースを通して広告されないように マークし、指定したインタフェースでは RIP および router discovery 処理を 全く行わないようにします。 .It Cm no_rip 指定したインタフェースでの全 RIP 処理を行いません。 RIP パケットを処理するインタフェースがない場合は、 .Nm は単に Router Discovery デーモンとして働きます。 .Pp .Cm rdisc_adv または .Fl s で明示的に Router Discovery の広告を行うように指示せずに RIP を 行わないようにすると、 .Nm routed は広告を行わない Router Discovery デーモンとして働くことに注意して下さい。 .It Cm no_ripv1_in 受信した RIPv1 レスポンスが無視されるようになります。 .It Cm no_ripv2_in 受信した RIPv2 レスポンスが無視されるようになります。 .It Cm ripv2_out 可能な場合にマルチキャストができるよう、 RIPv1 の出力は行わず、RIPv2 による広告を行います。 .It Cm ripv2 .Cm no_ripv1_in と .Cm no_ripv1_out を指定した場合と同じです。 .It Cm no_rdisc Internet Router Discovery Protocol を無効にします。 .It Cm no_solicit Router Discovery の要求を送信しません。 .It Cm send_solicit たとえ point-to-point リンクであっても Router Discovery の要求を送信します。 デフォルトでは Router Discovery のメッセージを聞くだけです。 .It Cm no_rdisc_adv Router Discovery の広告の送信を行いません。 .It Cm rdisc_adv たとえ point-to-point リンクであっても Router Discovery の広告を送信します。 デフォルトでは Router Discovery のメッセージを聞くだけです。 .It Cm bcast_rdisc Router Discovery のパケットをマルチキャストする代りにブロードキャストします。 .It Cm rdisc_pref Ns \&= Ns Ar N Router Discovery の広告の優先度を整数 .Ar N にします。 .It Cm rdisc_interval Ns \&= Ns Ar N Router Discovery の広告を行う上での名目の送信間隔を N にし、その生存期間を 3*N にします。 .It Cm fake_default Ns \&= Ns Ar metric 指定したインタフェースのネットワークとネットマスクを使って .Fl F Ar net[/mask][=metric] を指定した場合と同じです。 .It Cm pm_rdisc .Cm fake_default に似ています。RIPv2 の経路がマルチキャストの場合、RIPv1 を聞いている マシンはそれを受信することができないので、この機能を使えば RIPv1 のデフォルト ルートが RIPv1 を聞いているマシンにブロードキャストされるようになります。 .Cm fake_default で変更しない限り、 デフォルトルートは metric 14 でブロードキャストされます。 これは "能力の低い router discovery" プロトコルを提供することになります。 .It Cm trust_gateway Ns \&= Ns Ar rname 指定したルータや他の .Cm trust_gateway キーワードで指定したルータからの RIP パケットを受け付け、 これら以外からのパケットは無視するようになります。 .It Cm redirect_ok システムがルータとして動作してパケットのフォワードを行っている場合に、 RIP が ICMP Redirect メッセージを許可するようになります。 そうでなければ、ICMP Redirect メッセージは上書きされます。 .El .Pp .Sh 関連ファイル .Bl -tag -width /etc/gateways -compact .It Pa /etc/gateways 遠隔ゲートウェイについての情報を記述するファイル。 .El .Sh 関連項目 .Xr icmp 4 , .Xr udp 4 , .Xr gated 8 , .Xr rtquery 8 .Rs .%T Internet Transport Protocols .%R XSIS 028112 .%Q Xerox System Integration Standard .Re .Sh バグ ネットワークインタフェースの一方向の失敗 (例えば、出力方向にのみ失敗するなど) を常に検出できるとは限りません。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/rtquery.8 b/ja_JP.eucJP/man/man8/rtquery.8 index 2d2fa78dcd..7199b8cd3c 100644 --- a/ja_JP.eucJP/man/man8/rtquery.8 +++ b/ja_JP.eucJP/man/man8/rtquery.8 @@ -1,133 +1,134 @@ -.\" %Id: rtquery.8,v 1.1.1.1.2.4 1997/08/19 21:22:17 joerg Exp % +.\" %Id: rtquery.8,v 1.1.1.1.2.5 1998/08/12 06:54:23 charnier Exp % .\" jpman %Id: rtquery.8,v 1.2 1997/06/12 07:55:04 yugawa Stab % .Dd June 1, 1996 .Dt RTQUERY 8 .Os BSD 4.4 .Sh 名称 .Nm rtquery .Nd ルーティングデーモンが持つルーティングテーブルの問い合わせ .Sh 書式 .Nm .Op Fl np1 .Op Fl w Ar timeout .Op Fl r Ar addr .Op Fl a Ar secret .Ar host ... .Nm .Op Fl t Ar op .Ar host ... .Sh 解説 -.Nm rtquery +.Nm は、RIP ネットワークルーティングデーモン、すなわち、 .Xr routed 8 あるいは .Xr gated 8 へ .Em request ないし .Em poll コマンドを送る事によりそのルーティングテーブルの問い合わせを行います。 返答のあった全てのルーティング .Em 応答 パケットについてのルーティング情報が数値およびシンボル名を用いて表示されます。 .Pp デフォルトでは、 -.Em rtquery +.Nm は .Em request コマンドを使用します。 -.Ar -p +.Fl p オプションが指定された場合、 -.Nm rtquery +.Nm は .Em poll コマンドを使用します。 これは、 .Xr gated 8 でサポートされている、RIP プロトコルへの文書化されていない拡張コマンドです。 -gated への問い合わせを行う場合は、 +.Xr gated 8 +への問い合わせを行う場合は、 .Em request コマンドより .Em poll コマンドを使用する事をお薦めします。なぜなら、応答が Split Horizon や Poisoned Reverse の影響を受けることがなく、また、ある種のバージョンの .Xr gated 8 は、 .Em request に対して返答を行わないからです。 .Nm routed は .Em poll コマンドに対しては返答しませんが、 .Nm からの .Em request コマンドを認識し、完全な返答をします。 .Pp -.Nm rtquery +.Nm は、 .Nm routed のトレース機能を有効にしたり無効にしたりする場合にも用いられます。 .Pp -.Nm rtquery +.Nm には以下のオプションがあります。 .Bl -tag -width Ds .It Fl n 通常、ネットワークおよびホスト番号はシンボル名および数値の両方で表示されます。 .Fl n オプションはネットワークおよびホスト番号を数値のみで表示します。 .It Fl p .Xr gated 8 から得られる完全なルーティング情報を得るために .Em Poll コマンドを使用します。 これは、 .Xr gated 8 のみでサポートされている、RIP プロトコルへの文書化されていない拡張コマンドです。 .It Fl 1 RIP バージョン 2 ではなく、RIP バージョン 1 を使用して問い合わせを行います。 .It Fl w Ar timeout 各ホストから返答を待つ猶予時間を変更します。 デフォルトでは、返答があるまで 15 秒間待ちます。 .It Fl r Ar addr 到達先 .Em addr への経路を問い合わせます。 .It Fl a Ar passwd=XXX .It Fl a Ar md5_passwd=XXX|KeyID 問い合わせの際に、指定されたクリアテキストないし MD5 のパスワードを 使用します。 .It Fl t Ar op トレース方法を変更します。 .Em op には、以下のうちのひとつを指定します。 通常、UID 0 以外のプロセスからの問い合わせや、遠隔ネットワークからの 問い合わせは、システムのログにメッセージを記録するだけで、無視されます。 .Xr gated 8 は、大抵、これらのデバッグの問い合わせを無視します。 .El .Bl -tag -width Ds -offset indent-two .It Em on=tracefile トレースを有効にし、指定されたファイルに記録します。このファイルは、 通常、デーモンが実行を開始した時に指定されるか、一般的な、 .Pa /etc/routed.trace 等の決まった名前でなければなりません。 .It Em more デバッグレベルを増加させます。 .It Em off トレースを無効にします。 .It Em dump デーモンのルーティングテーブルを現在のトレースファイルにダンプします。 .El .Sh 関連項目 .Xr gated 8 , .Xr routed 8 .Rs .%T Routing Information Protocol, RIPV1 .%O RFC1058 .Re .Rs .%T Routing Information Protocol, RIPv2 .%O RFC1723 .Re diff --git a/ja_JP.eucJP/man/man8/sendmail.8 b/ja_JP.eucJP/man/man8/sendmail.8 index ccb7bed0fa..46c875a8dc 100644 --- a/ja_JP.eucJP/man/man8/sendmail.8 +++ b/ja_JP.eucJP/man/man8/sendmail.8 @@ -1,588 +1,588 @@ .\" Copyright (c) 1983, 1997 Eric P. Allman .\" Copyright (c) 1988, 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. .\" .\" @(#)sendmail.8 8.12 (Berkeley) 2/1/97 .\" jpman %Id: sendmail.8,v 1.2 1997/06/05 01:31:44 yugawa Stab % .\" .Dd February 1, 1997 .Dt SENDMAIL 8 .Os BSD 4 .Sh 名称 .Nm sendmail .Nd 電子メール配送デーモン .Sh 書式 .Nm sendmail .Op Ar flags .Op Ar address ... .Nm newaliases .Nm mailq .Op Fl v .Sh 解説 .Nm sendmail はメッセージを他の人に送ります。必要ならばネットワークを 通してメッセージを正しい場所に転送します。 .Pp ただし、 .Nm sendmail はユーザインタフェースとして使われることは考慮さ れていません。ユーザにとって使いやすいフロントエンドは別のプログラムで 提供されます。 .Nm sendmail は、あらかじめメールとして整形されたメッセージ を配送するためだけに使われます。 .Pp .Nm sendmail を引数を指定せずに起動すると、 .Nm sendmail は標準入力を EOF (エンド・オブ・ ファイル)か `.'だけを含む行まで読み込み、メッセージのなかに記述されている アドレスにメッセージのコピーを送ります。アドレスの文法や内容にもとづいて 経路に使用するネットワークを決定します。 .Pp ローカルアドレスは、ファイルの中を検索して適当なエイリアスを行います。 先頭にバックスラッシュ `\\' のついたアドレスについては、エイリアスは 行なわれません。 通常、送り手はエイリアスの対象に含まれません。つまり、もし `john' が `group' にメールを送って、 `john' が `group' に 含まれている場合、送ったメッセージは `john' には送られません。 .Ss パラメータ .Bl -tag -width Fl .It Fl B Ns Ar type ボディのタイプを .Ar type に設定します。現在有効なのは、 .Li `7BIT' か .Li `8BITMIME' です。 .It Fl ba .Tn ARPANET モードに移行します。すべての入力行は CR-LF で終わらなければならず、 すべてのメッセージの末尾には CR-LF がつきます。また、``From:'' と ``Sender:'' フィールドは送り手の名前としてチェックされます。 .It Fl bd デーモンモードで実行します。バークレー .Tn IPC が必要です。 .Nm sendmail は .Xr fork 2 を行い、バックグラウンドで動作し、ソケット番号 25 で .Tn SMTP コネクションを 待ちます。通常このモードは、 .Pa /etc/rc から実行されています。 .It Fl bD フォアグラウンドで動作する以外は .Fl bd と同じです。 .It Fl bh 現在のホストの状況のデータベースを表示します。 .It Fl bH 現在のホストの状況のデータベースをパージします。 .It Fl bi エイリアスデータベースを初期化します。 .It Fl bm 普通にメールを配送します(デフォルト)。 .It Fl bp メールキューのリストを表示します。 .It Fl bs 標準入出力で .Tn RFC821 にもとづいた .Tn SMTP プロトコルを使います。この フラグは、 .Fl ba フラグのうち .Tn SMTP 互換の全ての操作を含みます。 .It Fl bt アドレスのテストモードで起動します。このモードは対話 モードでアドレスを入力し、処理の過程を表示します。設定ファイル をデバッグするのに使います。 .It Fl bv 名前のチェックだけを行います。メッセージの収集や配送は行い ません。ベリファイモードは、ユーザやメーリングリストが有効かどうかを確認する ために使います。 .It Fl C Ns Ar file 別の設定ファイルを使います。 .Nm sendmail は、別の設定ファイル を使用する場合は root として実行することはできません。 .It Fl d Ns Ar X デバッグ値を .Ar X に設定します。 .ne 1i .It Fl F Ns Ar fullname 送り手のフルネームを設定します。 .It Fl f Ns Ar name ``from'' に入る名前(つまり、送り手の名前です)を設定します。 .Fl f は、``trusted''なユーザ(普通は .Em root , .Em daemon , .Em network です)が使うか、 送り手が自分自身の名前を指定して使う場合のみ指定することができます。 .It Fl h Ns Ar N ホップカウントを .Ar N に設定します。ホップカウントは、 メールが処理されるたびに増えていきます。ホップカウントがリミットになった とき、メールは「エイリアスがループしている」という旨のエラーメッセージと いっしょに送り返されます。 もしこのフラグが指定されなければ、メッセージのなかの ``Received:'' 行がカウント されます。 .It Fl i 入力されるメッセージ中の `.' だけを含む行を無視します。 このフラグは、データをファイルから読み込むような場合に使用する必要があります。 .It Fl N Ar dsn 配送状況の通知条件を .Ar dsn に設定します。 .Ar dsn には、 .Ql never (何も通知しない)または、コンマで区切った、 .Ql failure (配送が失敗した場合に通知する) .Ql delay (配送が遅れた場合に通知する) .Ql success (配送が正常に行われた場合に通知する) の組合せを指定する事ができます。 .It Fl n エイリアスを行いません。 .It Fl O Ar option Ns = Ns Em value オプション .Ar option を、指定した .Em value に設定します。この形式では長いオプション名が使用されます。 詳しくは後に記述します。 .It Fl o Ns Ar x Em value オプション .Ar x を、指定した .Em value に設定します。 この形式では、一文字のオプション名しか使用できません。 短いオプション名についてはこのマニュアルには記述されていません。 詳しくは、 .%T "Sendmail Installation and Operation Guide" を参照して下さい。 .It Fl p Ns Ar protocol メッセージを受け取るのに利用するプロトコル名を設定します。 設定できるのは、 ``UUCP'' のようなプロトコル名だけかプロトコル+ホスト名、たとえば ``UUCP:ucbvax'' などです。 .It Fl q Ns Bq Ar time キューのなかにあるメッセージを処理する間隔を設定します。 .Ar time を省略した場合は、キューの内容を一度だけしか処理しません。 .Ar time は、 .Ql s (秒)、 .Ql m (分)、 .Ql h (時間)、 .Ql d (日)、 .Ql w (週)の単位を付けた数字で指定します。 たとえば、 .Ql -q1h30m や .Ql -q90m は、タイムアウトを 1 時間 30 分に設定します。 .Ar time が指定されると、 .Nm sendmail はデーモンとしてバックグラウンドで 実行されます。 デーモンとして実行させる際には、同時にオプション .Fl bd を つけておくほうが安全です。 .It Fl qI Ns Ar substr キュー ID の文字列に .Ar substr が含まれるジョブのみを処理します。 .It Fl qR Ns Ar substr 受信者のリストの文字列に .Ar substr が含まれるジョブのみを処理します。 .It Fl qS Ns Ar substr 送信者の文字列に .Ar substr が含まれるジョブのみを処理します。 .It Fl R Ar return メッセージがバウンスした時に返送されるメッセージの量を設定します。 .Ar return パラメータには、メッセージ全体を返送する場合は .Ql full を、ヘッダのみを返送する場合は .Ql hdrs を指定します。 .It Fl r Ns Ar name .Fl f フラグと同じですが、古い形式です。 .It Fl t 受信者をメッセージから読み取ります。To:, Cc:, Bcc: フィールドが受信者 のアドレスとして読み込まれます。Bcc: フィールドはメッセージの転送前に 削除されます。引数で指定されたアドレスは全て無視されますので、メッセー ジのヘッダに名前が並べてあっても、引数に指定してあるとメッセージは転送 されません。 .It Fl U 最初の(ユーザからの)発送である事を示します。 このフラグは、 .Nm Mail や .Nm exmh の様なユーザエージェントから呼び出す場合は .Em 必ず 指定する必要があり、 .Nm rmail 等のネットワーク配送エージェントから呼び出す場合は、 .Em 絶対に 指定してはいけません。 .It Fl V Ar envid オリジナルのエンベロープ ID を設定します。 これは、DSN をサポートするサーバ間では SMTP 上を伝達し、 DSN に従ったエラーメッセージの中で返送されます。 .It Fl v 詳細モードに移行します。展開されるエイリアスなどが報告されます。 .It Fl X Ar logfile 指定された .Ar logfile に、メーラに出たり入ったり するすべてメッセージに関する情報を記録します。メーラをデバッグする際の 最後の手段としてのみ使ってください。非常に大量の情報があっという間に記録 されます。 .El .Ss オプション .Nm sendmail には、設定することができる多くの処理オプションがあります。 通常、これらのオプションはシステム管理者のみが使います。 オプションは、コマンドラインから .Fl o フラグを使って(短いオプション名で)指定したり、 .Fl O フラグを使って(長いオプション名で)指定したり、 設定ファイルから指定することができます。ここに記述して いるのは部分的なもので、コマンド行から指定する場合に便利な物だけを、 長いオプション名で示しています。完全なリスト(と詳細)は、 .%T "Sendmail Installation and Operation Guide" を参照してください。 オプションには以下の物があります。 .Bl -tag -width Fl .It Li AliasFile= Ns Ar file 別のエイリアスファイルを使います。 .It Li HoldExpensive 接続するのに時間がかかるホストと接続するときは、 すぐに接続せず、リクエストはキューに入れられます。 .It Li CheckpointInterval= Ns Ar N .Nm sendmail が、 .Ar N 個の配送に成功するたびにキューファイルに チェックポイントを設定します(デフォルトは 10 個です)。これによって、 システムのクラッシュによって長いメーリングリストの配送が中断 されたときでも、再開時に同じ人に重複して配送されることを防ぎます。 .ne 1i .It Li DeliveryMode= Ns Ar x 配送モードを .Ar x に設定します。配送モードには .Ql i 対話的(同期的)配送モード、 .Ql b バックグラウンド(非同期的)配送モード、 .Ql q キューモード(実際の配送は、キューが実行されるときに行われる)、 .Ql d 延期モード(データベースの検索(特に DNS や NIS )が行われない以外は .Ql q と同じ)があります。 .It Li ErrorMode= Ns Ar x エラー処理をモード .Ar x に設定します。 .Ql m はエラーメッセージを送り返します。 .Ql w はエラーメッセージを送り手の端末に書き出します (送り手がログインしていなければ、メールを返します)。 .Ql p は、エラーメッセージを端末に表示します(デフォルト)。 .Ql q は、エラーメッセージを捨てます(exit コードだけを返します)。 .Ql e は、BerkNet 用に特別処理をします。 もし、モード .Ql m や .Ql w を使っている場合に、エラーとなったメッセージが エラーメールとして送り返されず、送り手が .Nm sendmail を実行している マシン上のユーザならば、 メッセージのコピーは送り手のホームディレクトリにある .Pa dead.letter に追加されます。 .It Li SaveFromLine メッセージのはじめに .Tn UNIX Ns \-style From 行を残します。 .It Li MaxHopCount= Ar N メールがループしていると判断されない、最大のホップ数を 指定します。 .It Li IgnoreDots `.' だけを含む行をメッセージの終わりとして解釈しません。 .It Li SendMimeErrors エラーメッセージをMIMEフォーマットで送り返します。 設定されていない場合は、DSN (Delivery Status Notification: 配送状況通知) SMTP 拡張は無効になります。 .It Li ConnectionCacheTimeout= Ns Ar timeout コネクションキャッシュの .Ar timeout を設定します。 .It Li ConnectionCacheSize= Ns Ar N コネクションキャッシュのサイズを .Ar N に設定します。 .It Li LogLevel= Ns Ar n ログレベルを .Ar n にします。 .It Li MeToo エイリアスに自分自身が含まれている場合、``me''(送り手自身)にも送ります。 .It Li CheckAliases .Xr newaliases 1 コマンドの実行の際、 エイリアスの右側の項目(エイリアスの値)を有効性をチェックします。 .It Li OldStyleHeaders もしオプションが設定されていれば、メッセージが古いスタイルのヘッダ を持つことがあることを意味します。 このオプションが設定されていなければ、このメッセージが新しい スタイルを持っていることが保証されます(2 つのアドレスの間はスペースのかわり -にカンマで区切られます)。このオプションが設定されていると、大抵の場合、 +にコンマで区切られます)。このオプションが設定されていると、大抵の場合、 ヘッダのフォーマットを正しく決定するためのアルゴリズムが用いられます。 .It Li QueueDirectory= Ns Ar queuedir キューメッセージを保存するディレクトリを選択します。 .It Li StatusFile= Ns Ar file 指定した名前のファイルに統計情報をセーブします。 .It Li Timeout.queuereturn= Ns Ar time キューのなかの配送されなかったメッセージのタイムアウト時間を設定します。 この時間内に(ホストのダウンなどにより)配送が行われなかったときには、 失敗した旨のメッセージが送り返されます。デフォルトは 5 日です。 .It Li UserDatabaseSpec= Ns Ar userdatabase このオプションが設定されると、情報を送る際にユーザデータ ベースに対する問い合わせが行われます。 この方法をエイリアス機構の補助として使用する事ができます。ただし、 エイリアスはそのホストローカルでのみ有効なので、データベースが意図的に 分散されている場合は使用できません。 .Nm sendmail が .Dv USERDB 付きでコンパイルされていなければ使うことはできません。 .It Li ForkEachJob キューを処理する間、 .Xr fork 2 を行います。メモリが少ないマシン では便利です。 .It Li SevenBitInput 到着するメッセージを 7 ビットにします (8 ビット目は落します)。 .It Li EightBitMode= Ns Ar mode 8 ビットの入力を 7 ビットの宛先へ送る場合の処理方法を .Ar mode に設定します。 処理方法には、 .Li m (mime 化) 7 ビット MIME 形式へ変換、 .Li p (パス) 8 ビットのまま配送(プロトコルには違反します)、 .Li s (厳密) メッセージをバウンス、 があります。 .It Li MinQueueAge= Ns Ar timeout 配送の試行の間、ジョブがキューに蓄積される時間を設定します。 .It Li DefaultCharSet= Ns Ar charset 特に指定されていない場合に、8 ビットのデータである事を示す ラベルとして使用されるデフォルトのキャラクタを設定します。 .It Li DialDelay= Ns Ar sleeptime コネクションの確立が失敗した場合に、再試行までに .Ar sleeptime だけスリープします。オンデマンドでダイアル接続するサイトでの使用に便利です。 .It Li NoRecipientAction= Ns Ar action 受信者ヘッダ (To: Cc: あるいは Bcc:) がない場合の動作を .Ar action に設定します。 .Li none メッセージを変更しない、 .Li add-to To: ヘッダにエンベロープで指定された受信者を加える、 .Li add-apparrently-to Apparrently-To: ヘッダにエンベロープで指定された受信者を加える、 .Li add-bcc 空の Bcc: ヘッダを加える、 .Li add-to-undisclosed .Ql "To: undisclosed-recipients:;" というヘッダを加える、という動作が指定できます。 .It Li MaxDaemonChildren= Ns Ar N 待ち受け SMTP デーモンが同時に動作できる子プロセスの最大数を .Ar N に設定します。 .It Li ConnectionRateThrottle= Ns Ar N SMTP ポートへの 1 秒当りの最大コネクション数を .Ar N に設定します。 .El .Pp エイリアスのなかで最初の文字が `|' で始まるものは、メールの内容をパイプで コマンドに送るものと解釈されます。引数などをつけるために空白文字が 必要な場合はクォートする (" でくくる)必要があります。以下に、例を示します: .Pp .Bd -literal -offset indent -compact msgs: "|/usr/bin/msgs -s" .Ed .Pp エイリアスには、 .Dq :include: Ns Ar filename という文法もあります。 .Nm sendmail は、 メールの受け手のエイリアスとして、指定されたファイルを読みます。 以下に、例を示します: .Pp .Bd -literal -offset indent -compact poets: ":include:/usr/local/lib/poets.list" .Ed .Pp 上記の例の場合は、 .Pa /usr/local/lib/poets.list を読み、`poets' のグループの ためのアドレスリストを作ります。 .Pp .Nm sendmail は、以下に示すような終了コードを返します。これらの コードは、 .Aq Pa sysexits.h に定義されています。 .Bl -tag -width EX_UNAVAILABLE -compact -offset indent .It Dv EX_OK すべてのアドレスについて完全に成功しました。 .It Dv EX_NOUSER ユーザ名が認識できません。 .It Dv EX_UNAVAILABLE 処理に必要なリソースを得ることができません。 .It Dv EX_SYNTAX アドレスに文法的な間違いがあります。 .It Dv EX_SOFTWARE 引数が間違っている等の、内部的なエラーです。 .It Dv EX_OSERR .Dq cannot fork のような、一時的な OS エラーです。 .It Dv EX_NOHOST ホスト名が認識できません。 .It Dv EX_TEMPFAIL メッセージはすぐには送られませんでしたが、 キューには入れられました。 .El .Pp .Nm newaliases というコマンドで実行されると、 .Nm sendmail はエイリアス データベースを再構築します。 .Nm mailq というコマンドで実行されると、 .Nm sendmail はメールキューの内容を表示します。 .Sh 関連ファイル .Pa /etc/sendmail.cf を除き、以下のファイルのパスはすべて .Pa /etc/sendmail.cf 内部で決められています。以下は一例に過ぎません。 .Pp .Bl -tag -width /usr/lib/sendmail.fc -compact .It Pa /etc/aliases エイリアス名の生データ .It Pa /etc/aliases.db エイリアス名のデータベース .It Pa /etc/sendmail.cf 設定ファイル .It Pa /usr/share/misc/sendmail.hf ヘルプファイル .It Pa /var/log/sendmail.st 統計情報ファイル .It Pa /var/spool/mqueue/* テンポラリファイル .It Pa /var/run/sendmail.pid デーモンのプロセス ID を格納しているファイル .El .Sh 関連項目 .Xr mail 1 , .Xr syslog 3 , .Xr aliases 5 , .Xr mailaddr 7 , .Xr mail.local 8 , .Xr rc 8 , .Xr rmail 8 ; .Pp DARPA Internet Request For Comments .%T RFC819 , .%T RFC821 , .%T RFC822 . .Rs .%T "Sendmail \- An Internetwork Mail Router" .%V SMM .%N \&No. 9 .Re .Rs .%T "Sendmail Installation and Operation Guide" .%V SMM .%N \&No. 8 .Re .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/slattach.8 b/ja_JP.eucJP/man/man8/slattach.8 index 511cb82746..1a836883dd 100644 --- a/ja_JP.eucJP/man/man8/slattach.8 +++ b/ja_JP.eucJP/man/man8/slattach.8 @@ -1,260 +1,266 @@ .\" Copyright (c) 1986, 1991 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. .\" .\" @(#)slattach.8 6.4 (Berkeley) 3/16/91 -.\" jpman %Id: slattach.8,v 1.2 1997/05/19 05:35:41 mitchy Stab % +.\" %Header: /home/ncvs/src/sbin/slattach/slattach.8,v 1.11.2.3 1998/08/12 06:57:33 charnier Exp % .\" -.\" %Header: /home/ncvs/src/sbin/slattach/slattach.8,v 1.11.2.2 1997/09/14 19:50:34 jkh Exp % +.\" jpman %Id: slattach.8,v 1.2 1997/05/19 05:35:41 mitchy Stab % .\" .Dd April 4, 1993 .Dt SLATTACH 8 .Os BSD 4.3 .Sh 名称 .Nm slattach .Nd シリアルラインをネットワークインタフェースに割り当てる .Sh 書式 .Nm slattach .Op Fl a .Op Fl c .Op Fl e Ar exit-command .Op Fl f .Op Fl h .Op Fl l .Op Fl n .Op Fl z .Op Fl L .Op Fl r Ar redial-command .Op Fl s Ar baudrate .Op Fl u Ar unit-command .Op Fl K Ar keepalive .Op Fl O Ar outfill .Op Fl S Ar unit .Ar ttyname .Sh 解説 .Nm slattach は、シリアルポートをネットワークインタフェースに割り当て自分と相手の アドレスを定義するために使用されます。 .Nm slattach の、オプションは以下のとおりです: .Bl -tag -width Ar .It Fl a VJ ヘッダ圧縮を自動許可します。 リンクの相手が VJ ヘッダ圧縮可能な時これを使用し、そうでなければ 標準ヘッダを使用します。 .It Fl c VJ ヘッダ圧縮を指定します。リンクの両端が VJ ヘッダ圧縮を使用できなければ ならないことに注意してください。 .It Fl e Ar exit-command .Nm slattach が終了する前にシェルで .Ql sh \-c Ar exit-command のように呼び出されるコマンドを指定します。 .It Fl f .Nm slattach をバックグラウンドで動かすための daemon() の呼び出しを行いません。 .It Fl h cts/rts によるシリアルのフロー制御を有効にします。無指定時には、 フロー制御はサポートされません。 .It Fl l slip ポートのモデム制御 (CLOCAL) を無効にしキャリア検出を無視します。 無指定時には、キャリアが落ちた時に .Ar redial-command を呼び出しますが、 .Ar redial-command が指定されていなければ .Nm slattach は終了します。 .It Fl n ICMP パケットを捨てます。 slip インタフェースは ICMP レスポンスによるシリアルラインの遅延を防止するよう ICMP パケットを無視します。 .It Fl r Ar redial-command シリアルラインのキャリアが失われた時にシェルで .Ql sh \-c Ar redial-command のように呼び出されるコマンドを指定します。 .Ar redial-command -として空白を指定、すなわち、 +として空白を指定 (すなわち .Fl r Qq "" -とすることで、専用線で外部コマンドを実行せずに再接続を試みます。 +) することで、専用線で外部コマンドを実行せずに再接続を試みます。 .It Fl s Ar baudrate 接続速度を指定します。このオプションが指定されない場合には、 9600 bps になります。 .It Fl u Ar unit-command シリアルラインが slip に切り替わった時、 -.Ql Nm "sh -c" Ar unit-command +.Ql Nm "sh -c" Ar unit-command old new が実行されます。 -.Ar +.Ar old と -.Ar +.Ar new はそれぞれ slip の最後にオープンされた時のユニット番号と現在のコネクションの ユニット番号です。 このユニット番号は 2 つ以上の slip ラインを使用すればリダイアル後に 変更することが出来ます。 -接続が切れたとき、 .Nm slattach -は、 -.Ql Nm "sh -c" Ar unit-command Nm \-1 -を実行します。 +の接続が初めて確立されたとき、 +.Ql Nm "sh -c" Ar unit-command new Nm \-1 +が実行されます。 +.Nm slattach +の接続が切れたとき、 +.Ql Nm "sh -c" Ar unit-command old Nm \-1 +が実行されます。 .Nm slattach は、ユニット番号が変更され .Ql Fl u Ar \%unit-command が指定されないとき終了します。 .It Fl z 開始時にキャリアにかかわり無く .Ar redial-command のリダイアルを行います。 .It Fl L uucp方式のデバイスロックを行います。 他の uucp ロックを行うプログラムから .Nm slattach を開始する場合以外は、このオプションが必要です。 デフォルトではそのようなプログラムの使用を考え uucp ロックをしません。 .It Fl K Ar keepalive SLIP "keep alive" タイムアウト時間を秒単位で設定します。 FRAME_END がこの時間内に受信できない時、再接続が行われます。 省略時はタイムアウトは設定されません。 .It Fl O Ar outfill SLIP "out fill" タイムアウト時間を秒単位で設定します。 これにより、相手側の "keep alive" タイムアウトに必要な FRAME_END をこの時間内に送信します。 省略時はタイムアウトは設定されません。 .It Fl S Ar unit SLIP ユニット番号を直接指定します。 2 つのインタフェースが同じユニット番号にならないかチェックをしないので、 注意が必要です。 省略時は動的にユニット番号を割り当てます。 .It Ar ttyname ttyデバイスの名前を指定します。 .Ar ttyname は .Ql ttyXX か .Ql /dev/ttyXX の形式で記述します。 .El .Pp 本コマンドを用いてシリアルポートをネットワークインタフェースに 割り当てることが出来るのはスーパーユーザに限られます。 .Pp ネットワークインタフェースの割り当てを解除する場合は、 .Nm slattach プロセスを .Ql kill -INT を使って kill した後に .Dq Li ifconfig interface-name down を実行してください。 .Ar Interface-name は .Xr netstat 1 で見ることが出来ます。 .Pp .Nm slattach をキャリアを失った時にリダイアルするように設定するには、 .Fl r Ar redial-command オプションを使って slip サーバに再接続するスクリプトかコマンドを指定 します。スクリプトはサーバにリダイアルしログインするようなものです。 .Pp slipユニット番号が変わった時にネットワークインタフェースを再構成するには、 .Fl u Ar unit-command オプションを使用して .Ql sh \-c Ar unit-command old new のように呼び出す、スクリプトかコマンドを指定します。 .Ar old と .Ar new は再接続前後の slip ユニット番号です。 同時に 2 つ以上のラインが切断されているときユニット番号が変わる可能性 があります。 最初の再接続に成功した slip が一番小さいユニット番号を得られます。 .Pp .Nm slattach を kill するには、 tty をクローズしてから終了するように .Ql kill -INT (SIGINT)を使用します。 .Pp 強制的にリダイアルするには、 .Ql kill -HUP を使用し .Nm slattach がキャリアを失ったように思わせて .Ql sh \-c Ar redial-command でサーバに再接続させます。 .Pp .Nm slattach をモデム経由でなく直結で使用する場合、 slip ラインのキャリアを無視するために .Fl l オプション付きで実行します。 .Sh 使用例 .Bd -literal -offset indent -compact slattach ttyd8 slattach \-s 4800 /dev/ttyd1 slattach \-c \-s 38400 /dev/cuaa1 slattach \-r 'kermit -y dial.script >kermit.log 2>&1' .Ed .Sh 診断 +エラーメッセージは +.Pa /var/log/messages +にあります ( .Nm slattach -がデーモンの時のエラーメッセージは /var/log/messages にあります。 +はデーモンです) 指定したネットワークインタフェースが終了しない、 要求されたアドレスがみつからない、権限のないユーザが ネットワークインタフェースの設定を変更しようとした、というメッセージは ここに記録されます。 .Nm slattach は端末の制御の設定の失敗や、 シグナルハンドラの登録の失敗も記録します。 コネクション開始時とリダイアル時に tty 名と回線速度が記録され、 終了時に tty 名が記録されます。 .Pp .Sh 関連ファイル .Pa /var/run/slattach..pid .Pp この .Ar tty は .Ar tty 名 に置き換えられます。 このファイルには .Nm slattach のプロセス番号が含まれ、 .Nm slattach にシグナルを送るスクリプトで確かめることができます。 .Sh 関連項目 .Xr netstat 1 , .Xr startslip 1 , .Xr uustat 1, .Xr netintro 4 , .Xr ifconfig 8 , .Xr rc 8 , .Xr sliplogin 8 .Sh 歴史 .Nm は .Bx 4.3 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man8/sticky.8 b/ja_JP.eucJP/man/man8/sticky.8 index 2e98004142..01077cd71f 100644 --- a/ja_JP.eucJP/man/man8/sticky.8 +++ b/ja_JP.eucJP/man/man8/sticky.8 @@ -1,80 +1,76 @@ .\" Copyright (c) 1980, 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. .\" .\" @(#)sticky.8 8.1 (Berkeley) 6/5/93 .\" jpman %Id: sticky.8,v 1.3 1997/07/19 12:27:09 konuma Stab % .\" %Id: sticky.8,v 1.1.1.1.8.2 1998/03/07 12:17:29 jkh Exp % .\" .Dd June 5, 1993 .Dt STICKY 8 .Os BSD 4 .Sh 名称 .Nm sticky .Nd スティッキーテキストと追加専用ディレクトリ .Sh 解説 特別なファイルモード .Em sticky bit (mode S_ISVTX) は、ディレクトリのための 特別な取り扱いを示すために使われます。 通常ファイルに対しては無視されます。 ファイルのモードについての説明は、 .Xr chmod 2 や、 .Pa /usr/include/sys/stat.h ファイルを参照してください。 .Sh スティッキーディレクトリ `スティッキービット' が設定されたディレクトリは追加専用ディレクトリ、 より正確にいえば、ファイルの削除が制限されたディレクトリになります。 スティッキーディレクトリのファイルの削除や名称変更が可能なのは、 そのディレクトリの書き込み権限を持つそのファイルの所有者か、 そのディレクトリの所有者か、スーパーユーザだけです。 この機能は、 .Pa /tmp ディレクトリの様に、公共的に書き込み可能であるが、他人の任意のファイルを 消去したり、名称変更したりさせたくない場合には有効です。 .Pp どんなユーザもスティッキーディレクトリを作成することができます。 ファイルモードの変更についての詳細は、 .Xr chmod 1 を参照してください。 .Sh バグ -スティッキーテキストを持つ実行ファイルのテキスト領域は、 -スワップ領域に置かれるので、 -この機能の濫用はスワップの不足を引き起こします。 -.Pp .Xr open 2 もしくは .Xr mkdir 2 のどちらも、スティッキービットが設定されたファイルを作成できません。 .Sh 歴史 .Nm コマンドは、 Version 32V AT&T UNIX から登場しました。 diff --git a/ja_JP.eucJP/man/man8/syslogd.8 b/ja_JP.eucJP/man/man8/syslogd.8 index f70aaad848..d948919a5a 100644 --- a/ja_JP.eucJP/man/man8/syslogd.8 +++ b/ja_JP.eucJP/man/man8/syslogd.8 @@ -1,227 +1,243 @@ .\" 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 -.\" %Id: syslogd.8,v 1.6.2.7 1998/07/18 11:37:25 jkh Exp % +.\" %Id: syslogd.8,v 1.6.2.8 1998/08/06 01:43:45 jkoshy 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 ds +.Op Fl dsuv .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 デーモンは設定ファイルに指定された通りに、システムコンソール、 ログファイル、他のマシンやユーザへのメッセージを読み込み、記録します。 オプションには以下のものがあります。 .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 p 代りに使用するログ用ソケットのパス名を指定します。 デフォルトは .Pa /var/run/log です。 .It Fl l .Nm syslogd が追加のログ用ソケットを置く場所を指定します。 19 個まで追加のログ用ソケットを指定可能です。 主な用法は、 様々に chroot したファイル空間において追加のログ用ソケットを .Pa /dev/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 s -および -.Fl a -オプションは +.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/vnconfig.8 b/ja_JP.eucJP/man/man8/vnconfig.8 index 94e26853ac..b2b1b244bc 100644 --- a/ja_JP.eucJP/man/man8/vnconfig.8 +++ b/ja_JP.eucJP/man/man8/vnconfig.8 @@ -1,187 +1,187 @@ .\" Copyright (c) 1993 University of Utah. .\" Copyright (c) 1980, 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Systems Programming Group of the University of Utah Computer .\" Science Department. .\" .\" 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. .\" .\" @(#)vnconfig.8 8.1 (Berkeley) 6/5/93 .\" jpman %Id: vnconfig.8,v 1.2 1997/05/03 13:45:51 horikawa Stab % .\" .Dd July 8, 1993 .Dt VNCONFIG 8 .Os BSD 4 .Sh 名称 .Nm vnconfig -.Nd vnode ディスクを構築して利用できるようする +.Nd vnode ディスクを構築して利用できるようにする .Sh 書式 .Nm vnconfig .Op Fl cdeguv .Op Fl s Ar option .Op Fl r Ar option .Ar special_file Ar regular_file .Oo Ar feature Oc .Nm vnconfig .Fl a .Op Fl cdeguv .Op Fl s Ar option .Op Fl r Ar option .Op Fl f Ar config_file .Sh 解説 .Nm コマンドは、vnode 疑似ディスクデバイスを構築して使用可能にします。 コマンドの最初の書式では、スペシャルファイル .Ar special_file を通常ファイル .Ar regular_file に結びつけ、 後で通常ファイルをディスクであるかのようにアクセスできるようにします。 これによりファイルシステム中の通常ファイルを、 スワップや、名前空間にマウントされるファイルシステムと出来ます。 .Pp オプションは動作を指定します: .Bl -tag -width indent .It Fl a コマンドファイルを読み込み、 各デバイス/ファイルの組に対して指定された動作を実行します。 .It Fl c デバイスを構築します。 成功すると、 .Ar special_file への参照は、 .Ar regular_file の内容へのアクセスとなります。 .It Fl d 指定した .Ar feature を(可能であれば)無効にします。 .It Fl e デバイスを構築し、指定された .Ar feature を有効にします。 .Ar feature が指定されないと、 .Fl e は .Fl c と同じ意味になります。 .It Fl f Ar config_file .Ar config_file を設定ファイルの代りに使用します。 .It Fl g global オプションを制御します。 .It Fl r Ar option .Ar option をリセットします。 .Ar option は labels, follow, debug, io, all, none のいずれかです。 .It Fl s Ar option .Ar option をセットします。 .It Fl u デバイスを無効にし、``無構築状態'' にします。 .It Fl v 実行される動作の内容を標準出力に表示します。 .El .Pp 動作を指定するオプションがない場合には、 .Fl c が指定されたものと見なします。 .Pp .Ar feature 引数は、 .Fl e によって有効になる機能を指定します。 .Bl -tag -width indent .It Dv swap スペシャルファイル上でのスワップを有効にします。 .Xr swapon 2 を参照してください。 .It Dv Pf mountro= Pa mount_point スペシャルファイルは、 .Ar mount_point へ読み込み専用マウントされます。 .Xr mount 2 を参照してください。 .It Dv Pf mountrw= Pa mount_point スペシャルファイルは、 .Ar mount_point へ読み書き可能マウントされます。 .Xr mount 2 を参照してください。 .It Dv Pf mount= Pa mount_point ``mountrw='' と同じです。 .El .Pp 設定ファイルは、1 行にデバイスとファイル名の組を次の形式で持ちます: .Bd -literal special_file regular_file [ feature ] .Ed .Pp ここでは各フィールドはスペースで分割されます。 設定ファイル中のすべてのデバイスの動作に関して、 前述の動作オプションが有効です。 .Sh 関連ファイル .Bl -tag -width /etc/vntab -compact .It Pa /etc/vntab .Fl a オプションで使われるデフォルトの設定ファイル .El .Sh 使用例 .Pp .Dl vnconfig /dev/vn0c /tmp/diskimage .Pp vnode ディスクデバイス .Pa vn0c を構築します。 .Pp .Dl vnconfig -e /dev/vn0c /var/swapfile swap .Pp vnode ディスクデバイス .Pa vn0c を構築し、それをスワップ領域として使うようにします。 .Pp .Dl vnconfig -d /dev/vn0c myfilesystem mount=/mnt .Pp vnode ディスクデバイス .Pa vn0c のマウントを解除します(また無構築状態にします)。 .Pp .Dl vnconfig -ae .Pp .Pa /etc/vntab に記述されているすべてのデバイスを構築して使用可能にします。 .Sh 関連項目 .Xr mount 2 , .Xr swapon 2 , .Xr unmount 2 , .Xr vn 4 .