diff --git a/ja/man/man1/login.1 b/ja/man/man1/login.1 index 6bc248f021..deb56386a4 100644 --- a/ja/man/man1/login.1 +++ b/ja/man/man1/login.1 @@ -1,192 +1,193 @@ .\" %NetBSD: login.1,v 1.5 1994/12/23 06:53:00 jtc Exp % .\" .\" 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. .\" .\" @(#)login.1 8.2 (Berkeley) 5/5/94 -.\" %Id: login.1,v 1.13 1999/01/11 09:07:42 asami Exp % -.\" jpman %Id: login.1,v 1.3 1997/05/19 16:39:53 horikawa Stab % +.\" %Id: login.1,v 1.13.2.1 1999/04/29 09:42:21 jkoshy Exp % .\" +.\" jpman %Id: login.1,v 1.3 1997/05/19 16:39:53 horikawa Stab % .Dd May 5, 1994 .Dt LOGIN 1 .Os BSD 4 .Sh 名称 .Nm login .Nd 指定したユーザでログインする .Sh 書式 .Nm .Op Fl fp .Op Fl h Ar hostname .Op Ar user .Sh 解説 .Nm は、指定したユーザでログインするものです。 .Pp user を指定しなかった場合、もしくは指定した user でのログインに失敗した ときには、 .Nm は、再度ユーザ名の入力を求めるプロンプトを表示します。 ユーザの確認は入力されたパスワードにより行われます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl f パスワードによるユーザの確認を省略します。このオプションは、スーパーユーザ か、すでにログインしているユーザが同じユーザ名で login を実行す るときのみ指定可能です。 .It Fl h コネクションを受信可能なホスト名を指定します。この機能は .Xr telnetd 8 などのデーモンによって使われています。このオプションはスーパーユーザ しか指定することができません。 .It Fl p .Nm は、デフォルトでは実行時の環境 (環境変数など) を引き継ぎ ませんが、このオプションを指定すると、実行時の環境を引き継ぎます。 .El .Pp もし .Pa /var/run/nologin ファイルが存在した場合、 .Nm はそのファイル内容 を表示してログイン処理をせずに終了します。この機能は .Xr shutdown 8 で使用されており、システムの終了処理実行中にユーザがログインしないよう にしています。 .Pp もし .Pa /etc/login.access ファイルが存在した場合、 .Nm はそのファイルから、ユーザとホストの組が特別に許可されている、もしくは 拒否されているかどうかをチェックします。 .Pp もし .Pa /etc/fbtab ファイルが存在した場合、 .Nm はそのファイルに記述された幾つかのデバイスのプロテクトと所有者を変えます。 .Pp ファイル .Pa /etc/skeykeys が存在する場合、このファイル中にユーザのエントリが存在する時には、 .Nm は S/key パスワード認証を行います。 .Pa /etc/skey.access により、 接続元のホストやネットワークに応じて S/key パスワード使用の義務を制御します。 .Pp 通常、ユーザがログインすると、 .Nm はシステムのコピーライト表示、 ユーザが最後にログインした日付と時間、その日のメッセージなどの 情報を表示します。ただし、ユーザのホームディレクトリに .Dq Pa .hushlogin というファイルが存在した場合は、これらのメッセージを表示 しないようにします (これは .Xr uucp 1 のようなプログラムがユーザとしてログインするためにあります)。 このあと、 .Nm は .Xr wtmp 5 と .Xr utmp 5 ファイルに記録し、ユーザのコマンドインタプリタ (シェル) を起動します。 .Pp なお、環境変数 ( .Xr environ 7 ) HOME, SHELL, PATH, TERM, LOGNAME, USER は .Nm によりセットされます。 他の環境変数はログインクラスケーパビリティデータベースの エントリにより設定されるかも知れません。 ログインクラスはユーザのシステムパスワードレコードに割り当てられています。 ログインクラスは、当該ログインに許された最大および現在の資源制約、 プロセス優先度や他の多くのユーザログイン環境を制御します。 .Pp 標準シェルである .Xr csh 1 と .Xr sh 1 は、 .Nm が実行されてから起動します。 .Sh 関連ファイル .Bl -tag -width /var/mail/userXXX -compact .It Pa /etc/fbtab デバイスのプロテクトの変更 .It Pa /etc/login.access ログインアクセス制御表 .It Pa /etc/login.conf ログインクラスケーパビリティデータベース .It Pa /etc/motd ログイン時に最初に表示するメッセージ .It Pa /var/run/nologin ログインを拒否する時に表示するメッセージ .It Pa /etc/skey.access skey パスワード制御表 .It Pa /etc/skeykeys skey パスワードデータベース .It Pa /var/run/utmp 現在のログイン状況 .It Pa /var/log/lastlog 最後にログインした記録 last login account records .It Pa /var/log/wtmp ログイン・ログアウト状況 .It Pa /var/mail/user ユーザごとのメイルボックス .It Pa \&.hushlogin ログインメッセージを抑止するファイル .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr chpass 1 , .Xr passwd 1 , .Xr rlogin 1 , .Xr skey 1 , .Xr getpass 3 , .Xr fbtab 5 , .Xr login.access 5 , .Xr login.conf 5 , +.Xr nologin 5 , .Xr skey.access 5 , .Xr utmp 5 , .Xr environ 7 , .Xr nologin 8 , .Xr pam 8 .Sh 歴史 .Nm login ユーティリティは .At v6 から登場しました。 diff --git a/ja/man/man1/ls.1 b/ja/man/man1/ls.1 index 2236aec4eb..80cb96df0e 100644 --- a/ja/man/man1/ls.1 +++ b/ja/man/man1/ls.1 @@ -1,376 +1,377 @@ .\" Copyright (c) 1980, 1990, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" 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. .\" .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 -.\" %Id: ls.1,v 1.26 1998/11/30 22:56:44 billf Exp % -.\" jpman %Id: ls.1,v 1.3 1997/05/19 17:21:06 horikawa Stab % +.\" %Id: ls.1,v 1.26.2.1 1999/04/27 23:34:21 hoek Exp % .\" +.\" jpman %Id: ls.1,v 1.3 1997/05/19 17:21:06 horikawa Stab % .Dd July 29, 1994 .Dt LS 1 .Os .Sh 名称 .Nm ls .Nd ディレクトリの内容のリストを表示する .Sh 書式 .Nm ls .Op Fl ABCFHLPRTWabcdfgikloqrstu1 .Op Ar file ... .Sh 解説 .Nm は .Ar file で指定されたファイル名およびオプションの指定にしたがって、 ファイルに関する各種の情報を表示します。なお、 .Ar file としてディレクトリが指定された場合は、そのディレクトリ配下のファイル に関する情報を表示します。 .Pp .Ar file が指定されなかった場合は、カレントディレクトリのファイルを表示します。 表示はファイル名のアルファベット順にソートされます。ただし、 .Ar file としてディレクトリファイルとそれ以外のファイルを混在して指定した 場合は、ディレクトリ以外のファイルが先に表示され、その後 ディレクトリ配下のファイルが表示されます。 .Pp オプションとしては、以下のものがあります。 .Bl -tag -width indent .It Fl A .Ql \&. と .Ql \&.. を除く全てのエントリを表示します。スーパユーザの場合は、通常 このオプションがセットされています。 .It Fl B ファイル名中の非グラフィック文字を強制的に \\xxx の形式で表示します。 xxx は文字の数値であり 8 進数です。 .It Fl C マルチカラム形式で出力します。端末への出力の場合は、 これがデフォルトになります。 .It Fl F それぞれのパス名の最後に、ディレクトリならばスラッシュ (/)、 実行可能ファイルならばアスタリスク (*)、 シンボリックリンクならばアットマーク (@)、ソケットファイルならば等号 (=)、 .Tn FIFO ならば縦棒 (|) をつけて表示します。 .It Fl H コマンドラインのシンボリックリンクを追跡します。 .Fl F , .Fl d , .Fl l オプションが指定された場合、 このオプションが仮定されます。 .It Fl L 引数がシンボリックリンクファイルの場合、リンクファイル自体ではなく、 リンク先のファイルやディレクトリを表示します。 このオプションは .Fl P オプションを打ち消します。 .It Fl P 引数がシンボリックリンクの場合、リンクが参照しているオブジェクトではなく リンク自身を表示します。 このオプションは .Fl H , .Fl L オプションを打ち消します。 .It Fl R サブディレクトリを再帰的に表示します。 .It Fl T ファイルの日付と時間に関する詳細情報 (月・日・時・分・秒・年) を表示します。 .It Fl W ディレクトリ走査時にホワイトアウトも表示します。 .It Fl a ドット (.) で始まるファイルも含めて表示します。 .It Fl b .Fl B と同様ですが、可能であれば C のエスケープコードを使用します。 .It Fl c ファイルソートや時刻出力の際、ファイルステータスの最終変更日付を使用します。 .It Fl d 引数がディレクトリの場合、ディレクトリそのものの情報について表示します (再帰的に表示しません)。 .It Fl f ソートせずに表示します .It Fl g このオプションは、 .Bx 4.3 との互換性のためにだけ利用すべきです。 これは、 ロングフォーマットオプション .Pq Fl l を使ってグループの名前を表示したい時に使います。 .It Fl i 各ファイルについて、i ノード番号を表示します。 .It Fl k .Fl s オプションとともに使用し、ファイルサイズを ブロック単位ではなく K バイト単位で表示します。 このオプションは環境変数 BLOCKSIZE に優先します。 .It Fl l (``エル (L)'' の小文字)。ファイルの詳細情報をロングフォーマットで 表示します (下記参照)。 端末に出力している場合、ロングフォーマットの前の行に、全ファイル のサイズの合計値を表示します。 .It Fl o .Pq Fl l オプションによる詳細情報に、ファイルフラグも含めて表示します。 .It Fl q ファイル名に表示できない文字が使われていたとき、`?' として表示します。 端末に表示するときは、デフォルトでこの指定になります。 .It Fl r 辞書式順序で逆順または時刻の古い順にソートします。 .It Fl s 各ファイルがファイルシステム上で実際に占有している ブロック数 (512 バイト単位) を表示します。 ブロックの一部だけ占有しているものも整数値に切り上げられます。 端末に表示するときは、表示の先頭行に、全ファイルのサイズの合計値 を表示します。 環境変数 BLOCKSIZE は単位サイズ 512 バイトに優先します。 .It Fl t ファイルをアルファベット順に表示する前に、ファイルの最終修正日時の順 (新しいものほど先にくる) にソートします。 .It Fl u .Pq Fl t オプションや .Pq Fl l オプションで、ファイルの最終修正日時の代わりに、ファイルの最終アクセス日時を 使用します。 .It Fl \&1 (数字の ``1'')。 1 行につき 1 エントリの形式で表示します。 端末への出力でない場合には、これがデフォルトです。 .El .Pp .Fl 1 , .Fl C , .Fl l オプションは、互いに他を上書きします。最後に指定されたオプションが有効と なります。 .Pp .Fl c と .Fl u オプションは、互いに他を上書きします。最後に指定されたオプションが有効と なります。 .Pp .Fl B , .Fl b , .Fl q オプションは互いに優先し合う関係にあります。 最後に指定されたものが印字不可文字の書式を決定します。 .Pp .Fl H, .Fl L , .Fl P オプションは互いに優先し合う関係にあります(部分的もしくは全体的)。 指定された順序で適用されます。 .Pp デフォルトでは .Nm は標準出力に 1 行 1 エントリずつ表示します。 ただし、出力先が端末である場合および .Fl C オプションが指定された場合は別です。 .Pp .Fl i , .Fl s , .Fl l オプションが指定された場合、関連するファイルの情報は 1 個以上の空白 をあけて表示されます。 .Ss ロングフォーマット .Fl l オプションがつけられた場合、それぞれのファイルに対して以下に示す情報が 表示されます: ファイルモード・ リンク数・所有者名・所有グループ名・ ファイルのバイト数・月の短縮形・最終更新が行なわれた際の日付・時・分・ パス名。 さらに、各ディレクトリに対して、 ディレクトリ内のファイル情報が表示される直前に、 ファイルサイズの合計値が 512 バイトブロック単位で表示されます。 .Pp ファイルの修正修正時刻が 6 ヶ月以上過去もしくは未来の場合、 最終修正年が時間と分のフィールドに表示されます。 .Pp 所有者または所有グループ名が不明の場合、 ID 番号で表示されます。 .Pp ファイルがキャラクタ型もしくはブロック型の特殊ファイルである場合、 ファイルサイズフィールドには ファイルのメジャー番号とマイナー番号が表示されます。 ファイルがシンボリックリンクファイルである場合、 リンク先ファイルのパス名が .Dq \-> によって表示されます。 .Pp .Fl l オプションのもとで表示されるファイルモードは、エントリタイプ、 所有者アクセス許可、所有グループアクセス許可などで成り立っています。 エントリタイプの文字はファイルのタイプを表しており、 各文字の意味は次のとおりです: .Pp .Bl -tag -width 4n -offset indent -compact .It Sy b ブロック型特殊ファイル .It Sy c キャラクタ型特殊ファイル .It Sy d ディレクトリ .It Sy l シンボリックリンクファイル .It Sy s ソケットファイル .It Sy p .Tn FIFO .It Sy \- 通常ファイル .El .Pp 次の 3 つのフィールドは、それぞれ 3 つの文字からなっています: 所有者に対するアクセス許可・ グループに属するユーザに対するアクセス許可・ 他のユーザに対するアクセス許可。 これらのフィールドはそれぞれ 3 つの文字からなっています: .Bl -enum -offset indent .It もし .Sy r ならば読みだし可能。もし .Sy \- ならば読みだし不能。 .It もし .Sy w ならば書き込み可能。もし .Sy \- ならば書き込み不能。 .It その他の場合: 以下のうち最初に該当するものが用いられる。 .Bl -tag -width 4n -offset indent .It Sy S 所有者に対するアクセス許可において、ファイルが実行可能ではなく、かつ、 実効ユーザ ID (set-user-ID) モードがセットされている場合。 所有グループに対するアクセス許可において、ファイルが実行可能ではなく、 かつ、実効グループ ID (set-group-ID) モードがセットされている場合。 .It Sy s 所有者に対するアクセス許可において、ファイルが実行可能で、かつ、 実効ユーザ ID モードがセットされている場合。 所有グループに対するアクセス許可の中で、ファイルが実行可能で、 かつ、実効グループ ID モードがセットされている場合。 .It Sy x ファイルが実効可能またはディレクトリが検索可能である場合。 .It Sy \- ファイルは、読み出し、書き込み、実行のいずれも許可されておらず、 実効ユーザ ID も実効グループ ID もスティッキービットも設定されていない場合 (以下参照)。 .El .Pp 次の2つは他のユーザに対するアクセス許可の 3 番目の文字に使用されます。 .Bl -tag -width 4n -offset indent .It Sy T スティッキービットがセットされている (モード .Li 1000 ) が、 実行不能あるいは検索不能である場合 ( .Xr chmod 1 または .Xr sticky 8 参照)。 .It Sy t スティッキービットがセットされており (モード .Li 1000 ) 、 かつ、検索可能または実行可能である場合 ( .Xr chmod 1 または .Xr sticky 8 参照)。 .El .El .Pp .Nm ユーティリティは、成功時には 0 を、エラー発生時には 0 より大きい値を 返します。 .Sh 環境変数 以下の環境変数は .Nm の動作に影響を与えます: .Bl -tag -width BLOCKSIZE .It Ev BLOCKSIZE ブロック数の表示を行う際、1 ブロックのサイズとして環境変数 .Ev BLOCKSIZE で指定された値が使用されます ( .Fl s オプション参照)。 .It COLUMNS ターミナルのカラム幅を指定します。マルチカラム表示の際、 1 行あたりいくつのファイル名を表示できるかを算出するために参照されます ( .Fl C 参照)。 .It Ev TZ 日時を表示するときに使われるタイムゾーンを指定します。 詳細は .Xr environ 7 を参照してください。 .It Ev LS_COLWIDTHS この変数が設定されている場合、 コロン区切りのリストで各フィールドの最小幅を指定しているものとみなされます。 適切でなかったり不十分だったりする幅は無視されます (よって 0 を指定すると、フィールド幅が動的に決まります)。 すべてのフィールドの幅を変えられるわけではありません。 フィールドの順序は次の通りです: iノード・ブロック数・リンク数・ユーザ名・グループ名・フラグ・ファイルサイズ・ ファイル名。 .El .Sh 互換性 .St -p1003.2 互換とするため、 ロングフォーマット形式の出力には所有グループ名フィールドが自動的に 含められます。 .Sh 関連項目 +.Xr chflags 1 , .Xr chmod 1 , .Xr symlink 7 , .Xr sticky 8 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 .Sh 規格 .Nm コマンドの機能は .St -p1003.2 のスーパセットであると想定しています。 .Sh バグ 過去との互換性のために、多くのオプションの関係が複雑になっています。 diff --git a/ja/man/man1/netstat.1 b/ja/man/man1/netstat.1 index f34b063a32..de4d1f61f1 100644 --- a/ja/man/man1/netstat.1 +++ b/ja/man/man1/netstat.1 @@ -1,305 +1,306 @@ .\" Copyright (c) 1983, 1990, 1992, 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: @(#)netstat.1 8.8 (Berkeley) 4/18/94 .\" jpman %Id: netstat.1,v 1.4 1997/10/11 07:45:56 horikawa Stab % .\" %Id: netstat.1,v 1.6.2.1 1994/08/06 06:32:37 mycroft Exp % .\" .Dd April 18, 1994 .Dt NETSTAT 1 .Os BSD 4.2 .Sh 名称 .Nm netstat .Nd ネットワークの状態を表示する .Sh 書式 .Nm netstat .Op Fl Aan .Op Fl f Ar address_family .Op Fl M Ar core .Op Fl N Ar system .Nm netstat .Op Fl bdghimnrs .Op Fl f Ar address_family .Op Fl M Ar core .Op Fl N Ar system .Nm netstat .Op Fl bdn .Op Fl I Ar interface .Op Fl M Ar core .Op Fl N Ar system .Op Fl w Ar wait .Nm netstat .Op Fl p Ar protocol .Op Fl M Ar core .Op Fl N Ar system .Sh 解説 .Nm netstat コマンドは、ネットワークに関連したさまざまな情報を、シンボル表示を 交えてわかりやすく表示します。 出力の形式は指定オプションによって何種類かにわかれます。 第1の形式は、プロトコルごとのアクティブソケットの一覧です。 第2の形式は、選択したオプションによる、他のネットワークのデータ構造です。 第3の形式は、コンフィギュレーションされているネットワークインタフェースの パケットトラフィックを .Ar wait で指定したインターバル毎に継続して表示します。 第4の形式は、指定したプロトコルに関する統計情報を表示します。 .Pp 本コマンドでは、以下のオプションを指定可能です。 .Bl -tag -width flag .It Fl A デフォルトの表示では、ソケットと関係したすべてのプロトコル制御ブロックの アドレスが表示されます。通常これらはデバッグに用いられます。 .It Fl a デフォルトの表示では、すべてのソケットの状態が表示されます。通常 は、サーバプロセスで利用されているソケットは表示されません。 .It Fl b 本オプションをネットワークインタフェース表示 (後述の .Fl i オプション)と併用した場合には、入力、出力したバイト数を表示します。 .It Fl d 本オプションをネットワークインタフェース表示( .Fl i オプション、もしくは後述のインターバルオプション) と併用した場合には、欠落したパケット数を併せて表示します。 .It Fl f Ar address_family 表示する統計情報あるいはアドレス制御ブロック情報を .Ar address family の指定に合致するアドレスファミリのものに限定します。 アドレスファミリについては、 .Ar inet が .Dv AF_INET (インターネットプロトコルファミリ)として、 .Ar ipx が .Dv AF_IPX として、 .Ar atalk が .Dv AF_APPLETALK (ddp) (アップルトークプロトコル)として、 .\".Ar ns .\"が .\".Dv AF_NS .\"(XEROX NSプロトコルファミリ)として、 .\".Ar iso .\"が .\".Dv AF_ISO .\"(ISOプロトコルファミリ)として、そして .Ar unix が .Dv AF_UNIX (UNIXドメインプロトコルファミリ)として解釈されます。 .It Fl g マルチキャスト(グループアドレス)ルーティングに関連した情報を表示します。 デフォルトでは、IPマルチキャスト仮想インタフェースおよびルーティング テーブルについて表示します。 .Fl s オプションが同時に指定された場合、マルチキャストルーティングについての 統計情報も表示します。 .It Fl h .Tn IMP ホストテーブルの状態を表示します(時代遅れ)。 .It Fl I Ar interface 指定したインタフェースについての情報を表示します。本オプションは、 インターバルオプション .Ar wait と同時に指定し て使われます。このインターバルオプションについての詳細は後述します。 .It Fl i 自動コンフィギュレーションされているネットワークインタフェースの状態 を表示します(静的にシステムにコンフィギュレーションされているインタ フェースについて表示しますが、ブート時にコンフィギュレーションされて いないものについては表示しません)。 .Fl a オプションが同時に指定されている場合には、各イーサネットインタフェース および各IPインタフェースアドレス について、現在使用されているマルチキャストアドレスが表示 されます。マルチキャストアドレスは、 各々対応するインタフェースアドレスに続いて表示 されます。 .It Fl M デフォルトで使用される .Pa /dev/kmem の代わりに指定した core から、ネームリストに関連する各値を 取り出します。 .It Fl m メモリ管理ルーチンによって記録されているメモリ使用の統計情報を表 示します。 (ネットワーク管理システムは、独自にメモリバッファを確保しています)。 .It Fl N .Pa /kernel のかわりに、指定したカーネルモジュールからネームリストを取り出します。 .It Fl n ネットワークアドレスを数字で表示します(通常、 .Nm netstat コマンドは、IPアドレスを可能な限りホスト名などのシンボリックなものに置 き換えようとします)。 本オプションは、どのような表示形式の場合にも使用できます。 .It Fl p Ar protocol .Ar protocol で指定したプロトコルについての統計情報を表示します。 プロトコルとしては、よく知られている名称、もしくは別名定義されている名称 を指定します。プロトコルのいくつかは .Pa /etc/protocols の中で定義されています。 +特別なプロトコル名 ``bdg'' は、ブリッジの状態を表示するために使用します。 プロトコルについて情報が表示されない場合は、通常、 報告すべき有意な数値がないことを意味します。 .Ar protocol で指定したプロトコルが未知のものである場合、もしくはそのプロトコルの統 計情報記録ルーチンがない場合には、プログラムはその旨メッセージを出しま す。 .It Fl s プロトコルごとの統計情報を表示します。 このオプションが複数指定された場合、カウンタの値がゼロのものは 表示が抑制されます。 .It Fl r ルーティングテーブルを表示します。 .Fl s オプションが同時に指定された場合には、ルーティングの統計情報について 表示します。 .It Fl w Ar wait ネットワークインタフェースの統計情報について、 .Ar wait で指定した秒ごとに定期的に表示します。 .El .Pp デフォルトのアクティブソケット表示では、ローカルおよびリモートアドレス、送 受信キューのサイズ(バイト単位)、プロトコル、そしてプロトコルの内部状態が それぞれ表示されます。 アドレス形式については、``host.port''もしくは、ソケットのアドレスが ネットワーク単位でしか特定できない場合には``network.port''という形式が採用 されます。 ホストもしくはネットワークアドレスがデータベース .Pa /etc/hosts や .Pa /etc/networks の内容にしたがって変換可能である場合、各アドレスは名前で 表示されます。このような変換が不可能な場合、もしくは .Fl n オプションが指定された場合には、アドレスはアドレスファミリに従って 数値で表示されます。 インターネットアドレスの形式についてさらに知りたい場合には、 .Xr inet 3 を参照して下さい。 特にアドレスが指定されてない場合や、アドレスがワイルドカード 指定されている場合には、その部分のアドレスやポート番号のところには ``*'' が表示されます。 .Pp インタフェース表示では、パケット転送、エラー、コリジョンに関する 累積情報を見ることができます。また、インタフェースの ネットワークアドレスおよび最大転送可能ユニットサイズ(``mtu'')も 見ることができます。 .Pp ルーティングテーブル表示では、利用可能な経路とその状態が表示 されます。各経路は、到達先ホストもしくはネットワークと、 パケットの転送(forward)に使用されるゲートウェイから成ります。 フラグフィールドは、 ルーティングに関する状態の集合が表示されます。フラグフィールドの 各フラグについては、 .Xr route 8 および .Xr route 4 を参照して下さい。 表示される文字とフラグの間の対応は以下の通りです。 .Bl -column XXXX RTF_BLACKHOLE 1 RTF_PROTO1 ルーティングフラグ#1にて特定されるプロトコル 2 RTF_PROTO2 ルーティングフラグ#2にて特定されるプロトコル 3 RTF_PROTO3 ルーティングフラグ#3にて特定されるプロトコル B RTF_BLACKHOLE 破棄されるパケット b RTF_BROADCAST ブロードキャストアドレスを表現する経路 C RTF_CLONING 新しい経路を生成する c RTF_PRCLONING 使用時に、プロトコル専用の新しい経路を生成する D RTF_DYNAMIC (リダイレクトによって)動的に生成される G RTF_GATEWAY ゲートウェイ等による中継を必要としている到達先 H RTF_HOST ホストエントリ(これ以外はネットワーク) L RTF_LLINFO アドレス変換を連動させられる正当なアドレス M RTF_MODIFIED (リダイレクトによって)動的に変更される R RTF_REJECT 到達不可能なホストもしくはネットワーク S RTF_STATIC 手動で追加された U RTF_UP 使用可能経路 W RTF_WASCLONED クローンした結果として作成された経路 X RTF_XRESOLVE 外部のdaemonがプロトコルからリンクアドレス変換を行なう .El .Pp 直接到達可能な経路は、ローカルホストにアタッチされた各インタフェースごとに 生成されます。このようなエントリのゲートウェイフィールドは、 対外インタフェースのアドレスを表します。 refcntフィールドは、使用されている経路の現在数を示します。 コネクション指向のプロトコルは、通常、コネクションの間じゅう 単一の経路を保持します。 他方で、コネクションレス型のプロトコルは、同じ到達先に対して パケットを送る場合にも、新たに経路を確保します。 useフィールドは、その経路を通って送られたパケット数を表示します。 インタフェースエントリは、その経路用に用いられる ネットワークインタフェースを表示します。 .Pp .Nm netstat が .Fl w オプションと .Ar wait インターバル引数を与えられて起動された場合、ネットワークインタフェースに 関連した統計情報を定期的に表示します。 ほとんど使われませんが、オプション指定なしで数字だけをnetstatの引数と して指定することもでき、本オプションと同様の動作をさせることができます。 しかし、この使い方は過去との互換性のためにのみ存在します。 デフォルトでは、本表示は すべてのインタフェースについてのサマリ情報からなります。 .Fl I オプションを用いることで、特定の インタフェースの情報を表示させることが可能です。 .Sh 関連項目 .Xr nfsstat 1 , .Xr ps 1 , .Xr hosts 5 , .Xr networks 5 , .Xr protocols 5 , .Xr services 5 , .Xr iostat 8 , .Xr trpt 8 , .Xr vmstat 8 .Sh 歴史 .Nm netstat コマンドは、 .Bx 4.2 にはじめて登場しました。 .\" .Sh 関連ファイル .\" .Bl -tag -width /dev/kmem -compact .\" .It Pa /netbsd .\" default kernel namelist .\" .It Pa /dev/kmem .\" default memory file .\" .El .Sh バグ エラーの概念については、定義が間違っています。 diff --git a/ja/man/man1/sh.1 b/ja/man/man1/sh.1 index 9328e91d74..10c978a3ef 100644 --- a/ja/man/man1/sh.1 +++ b/ja/man/man1/sh.1 @@ -1,1211 +1,1211 @@ .\" 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.23.2.1 1999/04/12 15:46:02 cracauer Exp % +.\" %Id: sh.1,v 1.23.2.2 1999/04/19 18:54:06 max 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 /+abCEefIimnpsTuVvx .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 + でオプションを指定することは、そのオプションを無効にすることを意味します。 .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 風のコマンド行編集機能を有効にします (それ以前に .Fl V オプションが指定された場合、それを無効にします)。 .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 T Li asynctraps 子を待つとき、即座にトラップを実行します。 本オプションが設定されていないと、 .St -p1003.2 で指定されているように、子が終了した後にトラップが実行されます。 この非標準オプションは、 シグナルをブロックする子の周囲に保護シェルを置くために有用です。 周囲のシェルは子を殺したり、 次のように、制御を tty に戻して子だけを残したりできます: .Bd -literal -offset indent sh -T -c "trap 'exit 1' 2 ; some-blocking-program" .Ed .Pp .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) をクローズします。 .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 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 それぞれのコマンドは異なる方法で実行されます。 .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) のなかの組み込みコマンドは、現在のシェルには影響を与えません。 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 コマンドは、組み込みコマンドとして実装されています。 .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 は組み込みコマンドとして 実装されています。 .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 で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .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 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) -f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Xr case 1 コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは ``!''、 ``*''、 ``?''、 ``['' です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 (``*'') は、どのような文字列とも一致します。 クエスチョンマーク文字 (``?'') は、任意の文字 1 文字と一致します。 左大括弧 (``['') は文字クラスを開始します。 文字クラスの最後は右大括弧 (``]'') です。``]'' がない場合 は、``['' は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク (``!'') を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 ``]'' を含めるには、 ``]'' を文字クラスの最初 (``!'' を 置く場合はそのあと) に置きます。 文字クラスにマイナス記号を含めるときも同様で、 リストの最初もしくは最後に置きます。 .Ss 組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 さらに、効率を上げるために組み込まれているかもしれないコマンド (例えば .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 は、シェル組み込みコマンドや関数ではない、本物の プログラムでなければなりません)。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 は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 .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)、最後に 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 モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 キー によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 関連項目 .Xr expr 1 , .Xr test 1 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja/man/man1/tcopy.1 b/ja/man/man1/tcopy.1 index 050d324077..33677a90af 100644 --- a/ja/man/man1/tcopy.1 +++ b/ja/man/man1/tcopy.1 @@ -1,90 +1,90 @@ .\" Copyright (c) 1985, 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. .\" .\" @(#)tcopy.1 8.2 (Berkeley) 4/17/94 .\" jpman %Id: tcopy.1,v 1.2 1997/03/29 11:44:52 horikawa Stab % .\" .Dd April 17, 1994 .Dt TCOPY 1 .Os BSD 4.3 .Sh 名称 .Nm tcopy .Nd 磁気テープのコピー、ベリファイを行う .Sh 書式 .Nm .Op Fl cvx .Op Fl s Ar maxblk .Oo Ar src Op Ar dest .Oc .Sh 解説 .Nm は、磁気テープのコピーのためのプログラムです。 記録したデータの終わりに 2 つのテープマークがあるような 磁気テープを想定しています。 ソーステープ (デフォルトでは -.Ar /dev/rst0 ) +.Ar /dev/rsa0 ) だけが指定された場合は、 レコードサイズとテープのファイルに関する情報を表示します。 ディスティネーションが指定された場合は、ソーステープがコピーされます。 ディスティネーションテープのブロッキングはソーステープと同じになります。 テープをコピーすると、サイズを表示する場合と同様の表示が得られます。 .Pp オプションには次のものがあります。 .Bl -tag -width s_maxblk .It Fl c .Ar src から .Ar dest へコピーした後、両方のテープが同一であることを確認するためベリファイをします。 .It Fl s Ar maxblk ブロックサイズの最大値を .Ar maxblk で指定した値にします。 .It Fl v .Ar src と .Ar dest の両方のテープが同一であることを確認するためベリファイのみを行ないます。 .It Fl x 標準出力へ全メッセージを出力します。 このオプションは .Ar dest が .Pa /dev/stdout の時に役に立ちます。 .El .Sh 関連項目 .Xr mtio 4 .Sh 歴史 .Nm コマンドは .Bx 4.3 から登場しました。 diff --git a/ja/man/man5/nologin.5 b/ja/man/man5/nologin.5 index f7b73a0776..76ad6a0f55 100644 --- a/ja/man/man5/nologin.5 +++ b/ja/man/man5/nologin.5 @@ -1,67 +1,68 @@ .\" Copyright (c) 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. .\" .\" @(#)nologin.8 8.1 (Berkeley) 6/19/93 -.\" %Id: nologin.5,v 1.5 1999/01/12 14:09:23 asami Exp % +.\" %Id: nologin.5,v 1.5.2.1 1999/04/29 09:43:49 jkoshy Exp % .\" .\" jpman %Id: nologin.5,v 1.3 1998/06/13 09:47:03 kumano Stab % .\" .Dd June 19, 1993 .Dt NOLOGIN 5 .Os FreeBSD 2.1 .Sh 名称 .Nm nologin .Nd ログインを拒否する .Sh 解説 .Nm は、 .Pa /var/run/nologin ファイルがあるとログインを拒否します。 このプログラムはユーザに .Pa /var/run/nologin の内容を表示し、終了します。 .Sh セキュリティ ユーザ root の .Xr login 1 では無視されます。 .Sh 関連ファイル .Bl -tag -width /var/run/nologinxxx -compact .It Pa /var/run/nologin .Nm ファイルは .Pa /var/run にあります。 .El .Sh 関連項目 .Xr login 1 , .Xr rlogin 1 , .Xr telnet 1 , +.Xr nologin 8 , .Xr shutdown 8 diff --git a/ja/man/man5/passwd.5 b/ja/man/man5/passwd.5 index e14dca8e0d..6f67b642eb 100644 --- a/ja/man/man5/passwd.5 +++ b/ja/man/man5/passwd.5 @@ -1,678 +1,681 @@ .\" 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.22 1998/08/31 16:41:07 wosch Exp % +.\" %Id: passwd.5,v 1.22.2.1 1999/04/23 03:54:19 grog 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 個の欄が含まれます。 +コロン (``:'') で区切られた 10 個の欄が含まれます。 これらの欄は以下の通りです: .Pp .Bl -tag -width password -offset indent .It name ユーザのログイン名。 .It password ユーザの .Em 暗号化された パスワード。 .It uid ユーザのid。 .It gid -ユーザのログイングループid。 +ユーザのログイングループ id。 .It class ユーザのログインクラス。 .It change パスワードの変更時間。 .It expire アカウントの有効期限。 .It gecos ユーザについての一般的な情報。 .It home_dir ユーザのホームディレクトリ。 .It shell ユーザのログインシェル。 .El .Pp -最初の空白文字でない文字がポンド記号(#)であるような行は注釈であり、無視 +最初の空白文字でない文字がポンド記号 (#) であるような行は注釈であり、無視 されます。スペース、タブ、改行だけからなる空行もまた無視されます。 .Pp .Ar name 欄はコンピュータアカウントにアクセスするのに用いられるログインであり、 .Ar uid 欄はそれに結び付けられた数字です。これらはファイルアクセスを制御するので、 -両方共そのシステム(またしばしば複数のシステムにわたる1つのグループ)の中 +両方共そのシステム (またしばしば複数のシステムにわたる 1 つのグループ) の中 で一意であるべきです。 .Pp -同じログイン名や同じユーザidのエントリを複数持つことは可能で +同じログイン名や同じユーザ id のエントリを複数持つことは可能で すが、普通それは誤りです。これらのファイルを取り扱うルーチンはしばしばそ の複数エントリの 1 つだけを返しますし、 そしてそれはランダムな選択によるものです。 .Pp -ログイン名は決してハイフン(``-'')で始めてはいけません。また、メーラを -混乱させる傾向にあるので、大文字やドット(``.'')も絶対に名前の一部にしな -いことを強く推奨します。コロン(``:'')は歴史的にユーザデータベース中の欄 +ログイン名は決してハイフン (``-'') で始めてはいけません。また、メーラを +混乱させる傾向にあるので、大文字やドット (``.'') も絶対に名前の一部にしな +いことを強く推奨します。コロン (``:'') は歴史的にユーザデータベース中の欄 を分けるために用いられてきたので、いかなる欄にも含まれません。 .Pp -password欄はパスワードの +password 欄はパスワードの .Em 暗号化された 形です。 .Ar password 欄が空ならば、そのマシンへアクセスするのに何のパスワードも必要としないで しょう。これはほとんど恒常的に誤りです。これらのファイルは暗号化された ユーザパスワードを含んでいるので、 適当な権利無しにはいかなる人によっても可読であっ -てはいけません。管理上のアカウントは1個のアスタリスク +てはいけません。管理上のアカウントは 1 個のアスタリスク .Ql \&* を含むパスワード欄を有しており、これは通常のログインを許しません。 .Pp -group欄はユーザがログインした上で位置付けられるグループです。このシステムは +group 欄はユーザがログインした上で位置付けられるグループです。このシステムは マルチグループ( .Xr groups 1 参照) -をサポートしますが、この欄はユーザの1次グループを指名します。2次グループの -メンバは +をサポートしますが、この欄はユーザの 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をセットしておけば良いです。 +この欄を空欄にしておくか 0 をセットしておけば良いです。 .Pp .Ar expire 欄は .Dv GMT における基準時点からの秒数を表したものであり、 その時にアカウントが消滅します。 アカウント再設定機能をなくすには、 -この欄を空にセットしておくか0をセットしておけば良いです。 +この欄を空にセットしておくか 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欄はユーザの好むインタプリタです。 +shell 欄はユーザの好むインタプリタです。 .Ar shell 欄になにも無ければ Bourne シェル .Pq Pa /bin/sh が仮定されます。セキュリティ上の理由により、シェルがシステムへのアクセス -を許さないスクリプト(例えば +を許さないスクリプト (例えば .Xr nologin 8 -スクリプト)に設定されている場合、いかなる環境変数も渡されないように配慮さ +スクリプト) に設定されている場合、いかなる環境変数も渡されないように配慮さ れるべきです。 .Xr sh 1 については、これは .Fl p フラグを指定することで可能です。これが他のシェルでどのように行なわれるか は、特定のシェルの文書を調べてください。 .Sh YP/NIS との相互作用 -.Ss NISパスワードデータへのアクセスを可能にする +.Ss NIS パスワードデータへのアクセスを可能にする システム管理者は .Pa /etc/master.passwd ファイルに特別なレコードを付け加えることによって、パスワード情報について -NIS/YPを用いるように +NIS/YP を用いるように .Tn FreeBSD を設定できます。ハッシュされたパスワードデータベースおよび .Pa /etc/passwd -ファイル( +ファイル ( .Pa /etc/passwd -は絶対に手動で編集してはいけません)に変更が適切にマージされるように、 +は絶対に手動で編集してはいけません) に変更が適切にマージされるように、 エントリは .Xr vipw 8 で付加するべきです。別の方法としては、なんらかの方法で .Pa /etc/master.passwd を修正した後、 .Xr pwd_mkdb 8 を用いてパスワードデータベースを手動で更新することができます。 .Pp -NISを活性化するための最も簡単な方法は、名前欄にプラス符号(`+')だけを持つ、 +NIS を活性化するための最も簡単な方法は、名前欄にプラス符号 (`+') だけを持つ、 以下のような空のレコードを付け加えることです。 .Bd -literal -offset indent +::::::::: .Ed `+' は、 .Tn FreeBSD の標準Cライブラリの .Xr getpwent 3 ルーチンに対し、 検索において NIS パスワードマップを使用開始するよう指示します。 .Pp 上記のエントリは .Em ワイルドカード -エントリとして知られていることに注意してください。なぜなら、それは全ての +エントリとして知られていることに注意してください。なぜなら、それはすべての ユーザと一致し (他に情報を持たない `+' は、全員に一致します)、 全 NIS パスワードデータを無変更にて引き出すことを許します。 一方、 NIS エントリで `+' の次にユーザ名やネットグループ名を指定することによって、 どのようなデータが NIS パスワードマップから展開されるのか、 およびそれがどのように解釈されるのかについて、 管理者が影響を与えることができます。 -この特徴を示す、少数のレコード例を挙げます(1 つの +この特徴を示す、少数のレコード例を挙げます (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パスワードマップで指定されたシェルの値が、ローカル +これは、NIS パスワードマップで指定されたシェルの値が、ローカル .Pa master.passwd -ファイルの特別なNISエントリで指定された値によって上書きされることを意味します。 +ファイルの特別な +NIS エントリで指定された値によって上書きされることを意味します。 ユーザ ``ken'' は csh シェルを割り当てておいても良いかも知れません。 なぜなら、 政治的あるいは技術的な理由でクライアントマシンにインストールされていない 別のシェルを、彼の NIS パスワードエントリに指定されているかもしれないためです。 -他方、``rejected-users''ネットグループのユーザは、そのUID、 +他方、``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パスワードデータベースレコードは、(マイナスエントリ -を使って指定した全てのユーザと共に)全て無視されます。先に示した例 +のどれとも一致しない NIS パスワードデータベースレコードは、(マイナスエントリ +を使って指定したすべてのユーザと共に) すべて無視されます。先に示した例 ではリストの最後にワイルドカードエントリが無いので、 ``ken'' と ``dennis'' と ``staff'' ネットグループと -``permitted-users'' ネットグループとを除く全てのユーザを +``permitted-users'' ネットグループとを除くすべてのユーザを システムは権限があるユーザとして認識しないでしょう。 ``rejected-users'' ネットグループは認識されますが、 全メンバのシェルは再マップされますので、 -アクセスは拒否されるでしょう。他の全てのNISパスワードレコードは無視され +アクセスは拒否されるでしょう。他のすべての NIS パスワードレコードは無視され るでしょう。 管理者は以下のようなワイルドカードエントリをリストの最後に 付けても良いでしょう。 .Bd -literal -offset indent +:::::::::/usr/local/bin/go_away .Ed -このエントリは他の全てのエントリと一致しない全てのユーザを一挙にとらえる +このエントリは他のすべてのエントリと一致しないすべてのユーザを一挙にとらえる 働きをします。 .Pa /usr/local/bin/go_away は、システムにアクセスを許可されないユーザに伝えるメッセージを出力する短か いスクリプトまたはプログラムでしょう。 必ずしもログインアクセスを許可せずに、 -特定のNISドメイン内の全ユーザをシステムが認識可能であることが望ましいときには、 +特定の +NIS ドメイン内の全ユーザをシステムが認識可能であることが望ましいときには、 このテクニックが有効なことがあります。 ログインシェルとシェルスクリプトを使用するときのセキュリティに関する事柄 について、上記のシェル欄の記述を参照してください。 .Pp この .Pa 上書き 機能の主な用途は、 -管理者がNISクライアント上でアクセス制限を強化可能とすることです。 +管理者が NIS クライアント上でアクセス制限を強化可能とすることです。 単に特定のネットグループに対してユーザを追加したり削除したりするだけで、 そのユーザにあるマシン群へのアクセスを許可し、 かつ他のマシン群へのアクセスを拒否することができます。 ネットグループデータベースもまた NIS 経由でアクセスできるので、 1 個所すなわち NIS マスタサーバからアクセス制限を管理できます。 一旦ホストのアクセスリストが .Pa /etc/master.passwd に設定されると、新にネットグループが作られない限りそれは再度変更する必要 はありません。 .Sh 注釈 -.Ss NIS経由のシャドウパスワード +.Ss NIS 経由のシャドウパスワード .Tn FreeBSD はシャドウパスワード法を採用しており、 ユーザの暗号化されたパスワードはスーパユーザだけが読み書き可能な .Pa /etc/master.passwd および .Pa /etc/spwd.db にのみに記憶されます。 暗号化されたパスワードをパスワード推測プログラムに通すことにより、 ユーザが他のユーザアカウントに対して不正アクセスすることを防ぐためです。 NIS にはパスワード隠蔽のための標準的な方法がありません。 これは、 -パスワードデータを全て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の再マップ +.Ss NIS の上書きに伴なう UID および GID の再マップ .Tn SunOS や Sun の NIS コードを利用しているオペレーティングシステムとは異なり、 .Tn FreeBSD -ではユーザがNIS +ではユーザが NIS .Pa passwd エントリ中の -.Pa 全て +.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' ネットグループ中の全てのユーザは、 +このエントリにより、`foo-users' ネットグループ中のすべてのユーザは、 UID、GID、パスワードを含めて -.Pa 全て +.Pa すべて のパスワード情報を上書きされます。この結果、彼等のパスワードは不正な -値に再マップされるので、全ての `foo-users' はシステムから締め出さ +値に再マップされるので、すべての `foo-users' はシステムから締め出さ れることになるでしょう。 .Pp -以下のようにNISワイルドカードエントリを使う習慣のある人が多いので、 +以下のように NIS ワイルドカードエントリを使う習慣のある人が多いので、 このことは覚えておくべき重要なことです。 .Bd -literal -offset indent +:*:0:0::: .Ed これはしばしば新米の .Tn FreeBSD 管理者が以下のように .Pa master.passwd -ファイルのNISエントリを選んでしまうことにつながります。 +ファイルの NIS エントリを選んでしまうことにつながります。 .Bd -literal -offset indent +:*:0:0:::::: .Ed 更に悪く、以下のようにしてしまうこともあります。 .Bd -literal -offset indent +::0:0:::::: .Ed .Sy Pa master.passwd .Sy ファイルには「絶対に」このようなエントリは入れないでください!! 最初のものは、 -全てのパスワードを `*' に再マップし (これは誰もログインできなくします)、 -全ての UID および GID を 0 に再マップする (これは皆をスーパユーザにします) +すべてのパスワードを `*' に再マップし (これは誰もログインできなくします)、 +すべての UID および GID を 0 に再マップする (これは皆をスーパユーザにします) ことを .Tn FreeBSD に指示します。 2 番目のものは全 UID および GID をちょうど 0 にマップします が、これは -.Pa 全てのユーザがrootになってしまう +.Pa すべてのユーザが root になってしまう ことを意味します! .Pp -.Ss NIS上書き評価の互換性 -Sunが最初に +.Ss NIS 上書き評価の互換性 +Sun が最初に .Xr getpwent 3 -ルーチンにNISサポートを追加したとき、 +ルーチンに NIS サポートを追加したとき、 .Tn SunOS のパスワードファイル .Pa /etc/passwd はプレーン .Tn ASCII フォーマットであるということが考慮されていました。 .Tn SunOS のドキュメントによれば、パスワードファイルに '+' エントリを付け加えると、 パスワードファイル中の '+' エントリがある位置に NIS パスワードデータベースの内容が「挿入」されます。例えば 管理者が .Pa /etc/passwd の中央に +:::::: エントリを置いた場合、 NIS パスワードマップの全体の内容が パスワードファイルの中央にコピーされたかのように現われるでしょう。 管理者が +:::::: エントリを .Pa /etc/passwd -の中央と最後の両方に置けばNISパスワードマップは2度現われることになるでしょ -う。すなわち 1 度目はそのファイルの中央に現れ、もう 1 度は最後に現れます +の中央と最後の両方に置けば 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 つ のフィルタを作ります。各 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クライアントの振舞いは +の構成のうち 99% においては NIS クライアントの振舞いは .Tn SunOS や他の同種のシステムのそれと区別できないものとなるでしょう。それでもこれ らのアーキテクチャ的な違いを知っておくことは必要です。 .Pp -.Ss NIS上書きに関しネットグループの代りにグループを用いる +.Ss NIS 上書きに関しネットグループの代りにグループを用いる .Tn FreeBSD はネットグループではなくユーザグループに基づいた上書き照合を行なう能力 を提供します。例えば NIS エントリが以下のように指定されたとき、 .Bd -literal -offset indent +@operator::::::::: .Ed システムはまず `operator' と呼ばれるネットグループに対してユーザを 照合しようとします。 `operator' ネットグループが存在しないとき、 システムは代りに通常の `operator' グループに対して照合しようとします。 -.Ss FreeBSDの古いバージョンからの動作の変遷 +.Ss FreeBSD の古いバージョンからの動作の変遷 .Tn FreeBSD -のNIS/YPの取り扱いについてはいくつかのバグフィックスと改善がありました。 +の 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版形式の +は現在 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 pw 8 , .Xr vipw 8 .Sh バグ -ユーザ情報は他のどこか に入れるべき(そして結局は入れることになる)でしょう。 +ユーザ情報は他のどこか に入れるべき (そして結局は入れることになる) でしょう。 .Pp -YP/NISパスワードデータベースでは、 +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の機能は +で現われました。YP/NIS の機能は .Tn SunOS を雛型として .Fx 1.1 で初めて現われました。上書き機能は .Fx 2.0 において新しく組み込まれました。上書き機能はネットグループを適切に サポートするために .Fx 2.0.5 で更新されました。注釈のサポートは .Fx 3.0 で初めてサポートされました。 diff --git a/ja/man/man6/sail.6 b/ja/man/man6/sail.6 index 63761fcbd5..bba959f988 100644 --- a/ja/man/man6/sail.6 +++ b/ja/man/man6/sail.6 @@ -1,1048 +1,1048 @@ .\" Copyright (c) 1988, 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. .\" .\" @(#)sail.6 8.2 (Berkeley) 12/30/93 .\" %Id: sail.6,v 1.4 1997/02/22 14:46:58 peter Exp % .\" .\" jpman %Id: sail.6,v 1.4 1999/01/16 17:11:32 kuma Stab % .\" .\" WORD: wooden ships and iron men 「帆船の戦い」[sail.6] .\" WORD: captain 艦長[sail.6] .\" WORD: weather gage 風上(hold the weather gage...風上を取る)[sail.6] .\" WORD: Version 7 Version 7(固有名詞扱い) .\" WORD: turn ターン(ゲーム用語) .\" WORD: square rigger 横帆船[sail.6] .\" WORD: broadside 片舷/片舷斉射[sail.6] .\" WORD: bow 船首[sail.6] .\" WORD: stern 船尾[sail.6] .\" WORD: rake 縦撃[sail.6] .\" WORD: carronade カロネード砲[sail.6] .\" .TH SAIL 6 "December 30, 1993" .UC 4 .SH 名称 sail \- マルチユーザ版ゲーム「帆船の戦い」 .SH 書式 .B sail [ .B \-s [ .B \-l ] ] [ .B \-x ] [ .B \-b ] [ .B num ] .br .fi .SH 解説 .I sail は、もともとは、S. Craig Taylor によって開発された、アバロンヒル社の戦闘帆船 ボードゲームのコンピュータ版です。 .PP -.I Sail +.I sail のプレイヤーは、旧式の戦艦の指揮をとり他のプレイヤーやコンピュータと 戦います。 プレイヤーは、ゲームの中に記録された数多くの歴史上の海戦の中の一つを再現しても よいし、空想上の戦闘を選ぶこともできます。 .PP .I sail 海軍の艦長として、プレイヤーは自分の艦の活動については完全な管理ができます。 プレイヤーは全ての操作を命令し、帆装を変更し、そして片舷斉射の恐ろしい破壊力 を解き放つ正しい瞬間を判断しなければなりません。 更に、敵と戦うことに加えて、プレイヤーは、風と海の力を味方につけて 自分のために働かせなければなりません。 帆船時代の多くの海戦の勝敗は、ある一人の艦長の '風上' をとる能力により 決せられました。 .PP フラグは: .TP .B \-s 上位 10 位までの船員の名前と艦を表示します。 .TP .B \-l ログイン名を表示します。\fB-s\fP とともに指定したときだけ有効です。 .TP .B \-x どの艦にするかという選択を求められるかわりに、 最初に利用できる艦でプレイします。 .\"X 「を選択して」だと、プレイヤー自身の選択操作が必要に思えるので .TP .B \-b ベルを鳴らしません。 .SH 実装 .I sail は実は二つのプログラムを一つにまとめたものです。 各プレイヤーは彼自身の船を動作させるプロセスを起動します。 それに加えて、(最初のプレイヤーによって) 起動された .I ドライバ[driver] プロセスが、コンピュータ船を動作させ、 さらに全体にわたる記録計算を引き受けて処理します。 .PP .I ドライバ プロセスは、それが制御している全ての船の動きを計算しなければならないので、 より多くの船をコンピュータがプレイすればするほど、ゲームはよりゆっくり進行 しているように見えるでしょう。 .PP もし、あるプレイヤーが現在進行中のゲームに参加したとすると、 他のプレイヤーと同期して同じ速度になるでしょう (皆にすれば 幾分か遅くなります)。 .\"X 一人参加することで、今までプレイしていた人も含めてみんなの状態が .\"X どうなるかを説明しようとしているのでしょう。 そして、その後、彼は他のプレイヤーと同じ速度でプレイするでしょう。 .\"X play along with the rest ... ここで「他のプレイヤーと一緒に」という .\"X 必要はないはず。ならば、「他のプレイヤーと同様に」という意味だろう。 .PP マルチユーザゲームを Version 7 UNIX \(em これは .I sail がその上で最初に書かれたオペレーティングシステムでした \(em に実装するためには、 通信しているプロセスがメッセージを読み書きする場所として共通の一時ファイル を使う必要がありました。 それに加えて、共有ファイルへの排他的アクセスを保証するため、 ロック機構が供給されなければなりませんでした。 例えば、 -.I Sail +.I sail はシナリオ 21 については、 /tmp/#sailsink.21 という名前の一時ファイルを使います。 そして、他のシナリオに対してはそれに類するファイル名を使用します。 一時ファイルへの排他的アクセスを供給するために、 .I sail は Jeff Cohen 作の "pubcaves" と呼ばれる古いゲームから盗んだテクニックを 使っています。 "/tmp/#saillock.??" という名前のファイル ("??" はゲームのシナリオ番号に対応しています) への リンクを作成できるまでの間、プロセスが次のようなループ .br .sp .ce 2 for (n = 0; link(sync_file, sync_lock) < 0 && n < 30; n++) sleep(2); .br .sp でビジーウェイトをしています。 UNIX はリンクが唯一つのファイル をポイントするものであることを保証しているので、リンクに成功したプロセスは 一時ファイルへの排他的アクセスを獲得します。 .PP この仕組みが実際に機能するかどうかについては、さらなる考察が必要でしょう。 .\"X is open to speculation ... 「熟慮しないまま放ってある」だと思う。 それというのも、マシン ucbmiro (=miro.berkeley.edu の BITNET アドレス) が 暴走してリブートしたとき、ファイルシステム検査プログラムによって、 .I sail の一時ファイルとそれがリンクしているファイルの間に、3 個のリンクが発見され ましたから。 .SH プレイヤープロセスとドライバプロセスとを分離した結果 プレイヤー達が移動や発砲などの全体の興味に関わる重要な行動をするときには、 ドライバプロセスはゲーム中の他の船の行動とその行動とを 調整しなければなりません。 例えば、もしあるプレイヤーがある方向に移動したい場合には、彼の 船を移動させることをドライバプロセスに要求するメッセージを、 一時ファイルに書き込まなければ なりません。 ターンのたびに、ドライバプロセスはプレイヤー達から送られたメッセージを 全て読んで、起こったことを決定します。 それから、ドライバプロセスは変数の新しい値などを一時ファイル に書き戻します。 .PP この通信がゲームに及ぼす最も顕著な効果は移動の遅れです。 もしもプレイヤーが彼の船の移動をタイプして、リターンキーを叩いたとしましょう。 次に何が起こるでしょうか? プレイヤープロセスは一時ファイルに書き込むべきメッセージをバッファに 溜込みます。 およそ 7 秒おきに、プレイヤープロセスは一時ファイルへの排他的アクセス を獲得して、そのバッファを一時ファイルに書き出します。 ドライバプロセスは非同期的に動作しています。これは、移動コマンドを 読み込み、そのコマンドを処理し、そしてその結果を書き出さなければなりません。 これには、一時ファイルへの 2 回の排他的アクセスを必要とします。 最後に、プレイヤープロセスがもう 1 回の更新にやっと取り掛かる頃、 移動の結果がスクリーン上に表示されます。 それゆえ、プレイヤーが自分が行なった移動結果を知るまでに、 移動それぞれにつき、一時ファイルへ排他的アクセス 4 回 (1 回の排他的アクセスに 7 秒から 21 秒の間のどれくらいの時間を要するかは、 非同期性に依存しています) が要求されます。 .PP 実際は、遅れはそう見えるほどには厄介なものではありません。 移動には、パイプライン処理の余地があります。 プレイヤーは1番めの移動メッセージを書き込んだあと、2番目の移動コマンドを 入力できます。 1 番目のメッセージは、一時ファイルの中でドライバプロセスの読み込みを 待ちます。そして、 2 番目のメッセージは、ファイルバッファにあってファイルに書き出されるのを待って います。 そういうわけで、常に1回だけターンを先行して移動コマンドを打ち込むことで、 プレイヤーはじゅうぶん素早く帆走することができます。 .PP もしプレイヤーが 7 秒間隔の更新 2 回の間に数個の移動コマンドを 打ち込んだとすると、ドライバプロセスに見えるのは最後の移動コマンドだけです。 同じ更新期間中の複数の移動コマンドは、ある意味で互いに上書きし合います。 .SH SAILの歴史 筆者は .I sail の最初のバージョンを 1980 年の秋に PDP 11/70 の上で書きました。 言うまでもなく、コードは恐ろしいもので、 移植可能とはとうてい言えるものでもなく、そして動きもしませんでした。 プログラムは、全くモジュール化されていない上に、数行おきに fseek() や fwrite() がありました。 トップダウン手法による徹底的な書き換えによって、1981 年までに筆者は最初の 機能するバージョンを仕上げました。 .\"X got .... up の up は「仕上げた」というニュアンスかと。 片舷斉射の発射や方角の発見に関していくつかのやっかいなバグがありました。 ところで、 .I sail は浮動小数点を使っていません。それで、方角についてのルーチンは、すこし 手が込んだものになっています。 Ed Wangは、1981 年に angle() ルーチンをより間違いのないものに書き換えました。 (しかしながら、それは、まだ完全には機能していません)。 そして、彼はゲームの始めで (最初に利用可能な船の代わりに) プレイヤーが 自分の望む船を選べるようなコードを加えました。 .PP ハッピィ艦長 (Craig Leres) が、 .I sail を移植可能にすることに初めて責任をもちました。 ちなみに、これはとても難しい仕事でした。2 や 10 といった定数が コードにはとても頻繁に現れます。また、 .I sail の中で「Riggle 記念構造体 ("Dave Riggle":筆者)」を使ってしまった ということでも名前を売ってしまったぐらいですし。 筆者の構造体参照の多くはとても長いので、ラインプリンタの印字ページを はみ出してしまいます。もし、笑わないと約束して下さるなら、ここに一例を お見せしましょう。 .br .sp .ce specs[scene[flog.fgamenum].ship[flog.fshipnum].shipnum].pts .br .sp .PP .I sail には、1983 年の夏と秋に最も徹底的な 4 回目の書き換えがなされました。 Ed Wang はコードを殆ど何もない状態から書き換えモジュール化しました (記念碑的な偉業です)。 彼は、多くの新しいバグを導入したにもかかわらず、最終的な結果は とても奇麗で、(?) より速いものになりました。彼は、ウィンドウ移動コマンド と艦船発見コマンドを加えました。 .SH 歴史的情報 古い横帆船 [Square Rigger] は、複雑な帆走が可能で、とても操作しやすい船です。 これら横帆船の唯一つの弱点は、風上にぎりぎりに間切って帆走できない ことです。 木造船の設計は大砲を左舷と右舷の方向に向けることだけを考慮していました。 .\"X 船の設計が考慮するのは大砲ではなく、大砲の狙いの付け方のはず。 少数の小さな大砲 (通常 6 ポンド砲か 9 ポンド砲) だけが前方に狙いをつける ことができました。しかし、それらの砲は、68 門の 24 ポンド砲か 32 ポンド砲 からなる舷側砲の片舷斉射に比べれば、その効果は小さいものでした。 大砲は大体つぎのような方向に向けられます。 .nf \\ b---------------- ---0 \\ \\ \\ 10の範囲まで (砲丸 [round shot] の場合) \\ \\ \\ .fi 片舷斉射が敵艦の縦方向に打ち抜かれたときには、興味深い現象が起きました。 砲弾は甲板 [こうはん] に沿ってはねまわり数倍の損害を加えがちでした。 この現象は縦射 [rake] と呼ばれました。船の船首 [bow] は非常に強固で船尾 [stern] より小さな標的だったので、船尾縦射 [stern rake](船尾より船首の方向の着弾) は船首縦射 [bow rake] によるよりも大きな損害を与えました。 .nf b 00 ---- 船尾縦射 [stern rake]! a .fi 大抵の船は、カロネード砲 [carronade] を装備していました。この大砲は、 非常に大きく、射程距離の短いものでした。 アメリカの艦船にはフランス革命から 1812 年の戦争 (米英戦争) まで、 .\"X the revolution はフランス革命でいいと思います。確かフランス革命後の .\"X 英仏対立にアメリカが一口噛んでいたはず。 ほぼすべての艦船に カロネード砲が装備されていました。 .PP .I sail で扱っている時代は、ほぼ 1770 年代から 1815 年にナポレオンのフランス支配が 終るまでです。 帆船時代に関しては、素晴らしい本が多くあります。筆者の好きな作家は Captain Frederick Marryat です。 もっと現代の作家達の中では、C.S. Forester や Alexander Kent です。 .PP 艦船には、装備された兵器で区別される分類があります。 どの艦隊でもメインマストをなす艦船は、戦列艦 [Ship of the Line]、即ち、 戦列をなす戦艦 [Line of Battle Ship] です。 これらの艦船がこのように名付けられた理由は、これらが大きな列 を作って交戦するからです。 彼らは、互いに助け合えるぐらい近くに位置しますが、それでも、 どの艦もその両舷側の片舷斉射 [broadside] を 発射できるようにします。 現代の「遠洋定期船 [ocean liner]」とか「定期船 [liner]」、 そして「戦艦 [battleship]」という言葉は 「戦列艦 [Ship of the Line]」から派生したものです。 最もありふれた分類は、74 砲門で 2 層甲板の戦列艦です。 2 層の砲列甲板には普通 18 ポンド砲か 24 ポンド砲が搭載してありました。 .PP 第 1 に来る分類は、艦隊の誇りとなる船です。 これらの艦船は、80 砲門から 136 砲門の大砲を搭載した巨大な 3 層甲板戦列艦です。 3 層の大砲は、普通 18 ポンド砲、24 ポンド砲、そして 32 ポンド砲でした。 これらの大砲は、この順番で上から下に搭載されていました。 .PP 他のさまざまな船が次の分類になります。 これらの戦艦は殆んど全て「レイジー[razee]」、すなわち、甲板を 1 層切り落とした 戦列艦です。 これらの戦列艦は、40-64 砲門の大砲を搭載した、 フリゲート艦 [frigate] と戦列艦 の貧弱なあいのこです。 .\"X a poor cross ... 粗末なあいのこ?貧弱でどうかな? レイジーには、フリゲート艦のスピードもなければ、戦列艦の火力も ありませんでした。 .PP その次に来る分類が、「艦隊の目」です。 フリゲート艦 [frigate] は 32 砲門から 44 砲門の大砲をどこにでも搭載していて 大きさはさまざまです。 これらは、大変便利な船です。 フリゲート艦は、より大きな船に対しては航行速度でまさり、より小さな船に 対しては火力でまさります。 フリゲート艦は、ずっと大きな 74 砲門の戦列艦がやるように戦列を組んで 戦ったりはしませんでした。 その代わり、これらの船は、敵の背後をおびやかし、傷ついて戦えなくなった船を だ捕しました。 これらの船は、艦隊から離れて行なう任務で、はるかに効果を発揮しました。 例えば、長い航海を短縮するとか、ボートによる戦闘を切り開くとかの任務です。 .\"X boat action ... ??なんか専門用語っポイですな。わからないので .\"X そのままにしときます。 これらは、強力な一撃のあと、ずばやく引くことができました。 .PP 最後に来る分類には、コルベット艦 [corvette](平甲板 1 段砲装の帆装戦艦)、 スループ帆船 [sloop](1 本マストの縦帆船)、そして ブリッグ帆船 [brig](2 本マストの横帆船) があります。 これらは、一般的には 20 砲門以下の大砲を搭載しているより小さな船です。 コルベット艦は、フリゲート艦よりほんのちょっと小さいだけなので 30 砲門までの 大砲を載せられたでしょう。 スループ帆船は急送公文書や船客を搬送するのに使われました。 ブリッグ帆船は陸地で囲まれた湖のために建造されたものです。 .\"X you は特定の読者を指すのではなく一般的な人間を指すと思う。 .SH SAIL 固有の詳細 .I sail では、船は 2 文字で表されます。 1 番目の文字は、船首 [bow] を表します。もう 1 方の文字は、 船尾 [stern] を表します。 .\" WORD: nationarities 船籍(国籍とちゃうか?)[sail.6] 船には、船籍と番号があります。 ある船籍の最初の船は番号 0 です。2 番目の船は番号 1、などなど。 したがって、ゲームの最初の英国船は「b0」と印字されます。 2番目の英国野郎は「b1」、そして、5 番目のスペイン紳士は 「s4」となります。 .PP 船は、戦闘帆 [Battle Sail] と呼ばれている通常の帆装をつけられます。 また、それに加えて総帆 [Full Sail] と呼ばれる全帆を結びつけられます。 .\"X extra canvas ... Battle Sail 状態に加えて帆をつけて Full Sail になる .\"X ということと読んだ> extra 総帆の船は本当に美しい眺めです。 そして、総帆の船は戦闘帆装の船よりずっと速く航行できます。 総帆装についての唯一の問題は、帆と索具に非常に大きな応力がかかるので、 狙い澄ました砲丸は、帆をちりじりに引き裂いてしまうことができるということです。 これにひきかえ、ゆるんだ帆には、砲丸は小さな穴しか開けられません。 この理由で、総帆装をつけた船では、索具への損傷は 2 倍になります。 このことで、総帆を使うことを思いとどまらないで下さい。 筆者は、総帆を戦闘たけなわとなるまで維持するのが好きです。 総帆装の船には船籍として大文字を設定します。 例えば、蛙食いのフランス野郎「f0」が総帆であれば、「F0」と印字されます。 .PP 船が、傾いた廃船 [listing hulk] になるまで叩き潰されたときは、 最後まで残っていた者が 「旗を下ろして降伏」します。 この儀式は、船の正式な降伏です。 降伏した船の船籍文字は、「!」として印字されます。 例えば、最後の例のフランス野郎は、すぐに「!0」になるでしょう。 .PP 船が傾いた廃船の段階に至ったときには、 船が出火したり沈没したりする可能性が確率的に生じます。 沈みつつある船は、その船籍として「~」が印字されます。 出火していて、今にも爆発しそうなときには、「#」が印字されます。 .PP だ捕された船はだ捕船回航員の船籍になります。 それゆえ、もしアメリカ船が英国船をだ捕したならば、英国船の船籍として、「a」 が印字されます。 更に、船の番号は最初の番号しだいで「&」,「'」, 「(」, ,「)」, 「*」, 及び 「+」 につけかえられます。 例えば、アメリカ船にだ捕された「b0」は、「a&」となります。 フランス野郎にだ捕された「s4」は「f*」となります。 .PP 究極の例は、もちろん、アメリカ船に捕獲された爆発しそうな イギリス野郎です:「#&」 .SH 移動 多くの人にとって、移動は .I sail の最も困惑させられる部分でしょう。 艦船は 8 方向を向くことができます: .nf 0 0 0 b b b0 b b b 0b b 0 0 0 .fi 艦艇が舵を切ると、その船の「船尾 [stern]」が動きます。 「船首 [bow]」は、動きません。 (風が凪いでさえいなければ)、風には関係なく船はいつでも舵を切ることができます。 すべての船は、船足を失ったときには漂流してしまいます。 もし、船が 2 ターンの間に全く前進しなければ、 その船は漂流し始めます。 もし船が漂流し始めた場合、もし「面舵 [right turn]」を切るか、 「取舵 [left turn]」を切る以外のことをしようとしているなら、 舵を切る前にまず前進しなければなりません。 ちなみに、面舵や取舵を切ることはいつでも可能です。 .\"X if it plans ... は、前の move forward before it turns に掛かるの .\"X でしょう。 .PP .I sail の移動コマンドは、いくつかの前進と旋回からなる文字列です。 例としては、「l3」があります。これは、船に取舵を切らせて、 3 スペース分 前進させます。 上図では、「b0」は 7 回連続して取舵を切っています。 .I sail が移動入力を催促するときには、データ取り込みのための 3 文字を印字します。 例えば、 .nf move (7, 4): .fi 最初の数字は、旋回を含めて、移動できる最大数です。 2 番めの数字は、可能な旋回の最大数です。 時々、数字の間に引用符号の「'」が印字されます。 もし引用符号があれば、それは、船が漂流していることを意味しています。 このとき、舵を切る前に船足を取り戻すため前進しなければなりません (上の説明を参照のこと)。 上述の例で可能な移動のいくつかは、次のようなものです: .nf move (7, 4): 7 move (7, 4): 1 move (7, 4): d /* 漂流、または 何もしない */ move (7, 4): 6r move (7, 4): 5r1 move (7, 4): 4r1r move (7, 4): l1r1r2 move (7, 4): 1r1r1r1 .fi 横帆船は、風上に向かって帆走することには全く惨めなほど 機能を果たしませんでした。 そのため、移動コマンド列のどこかで風上を向いてしまったら、 移動はそこで止まってしまいます。例えば、 .nf move (7, 4): l1l4 Movement Error; Helm: l1l ------ (Helm = 舵輪、舵の動き) .fi そのうえ、旋回を行なうときにはいつでも、移動の許容限度は最小に まで低下します (残っているものといえば、新しい態勢で持てるはずのものです)。 要するに、もし風上によりぎりぎりに間切って舵を切れば、 「move」プロンプトに表示される全許容量を帆走することは、 全くできそうにありません。 .PP 昔の帆船の船長たちは、風について常に気を配っていなければなりませんでした。 .I sail の艦長達も、全く同じです。 船の移動する能力は、風に対する態勢に依存しています。 可能な角度のうち最善のものは、船尾から 45 度の方角から風を受けることです。 即ち、船尾からちょっとずれた方角からです。 スクリーンの脇に現れる指示によって、風に対する方位全てに対する、その船に 可能な移動を知ることができます。 これは、まず、戦闘帆での速度を示し、 次に、総帆での速度を括弧内に示します。 .nf 0 1(2) \\|/ -^-3(6) /|\\ | 4(7) 3(6) .fi 船の船首(「^」で表します)が上を向いており、風がページの下から上へ 吹いているとしましょう。 1 番下の「3(6)」という数字は、その状況での戦闘帆と総帆での速度を表すでしょう。 もし、風が (後方) 45 度から吹いていれば、は「4(7)」移動できます。 もし、風が帆桁方向から (横風) であれば、「3(6)」です。 もし、風が船首からちょっとずれた方向からであれば、 「1(2)」だけしか移動できません。 風に対面してしまったら、全く移動できません。 風に対面してしまった船は、「枷をかけられた」と言われていました。 .SH 風速と風向き 風速と風向きは画面の脇に小さな風信器として表示されます。 風信器の真中の数字は、風速を表します。 そして、+ から - への向きは、風向きを示します。 風は+符号 (高気圧) から - 符号 (低気圧) への向きに吹きます。 例えば、 .nf | 3 + .fi .PP 風速は、 0 = 静穏 [becalmed]、 1 = 軽風 [light breeze]、 2 = 和風 [moderate breeze]、 3 = 疾風 [fresh breeze]、 4 = 雄風 [strong breeze]、 5 = 疾強風 [gale]、 6 = 全強風 [full gale]、 7 = ぐ風 [hurricane]。 .\" Cf. Beaufort wind scale (Tetsuro Furuya : Translator). ぐ風があらわれたら、全艦船が壊滅してしまいます。 .SH 鈎錨による引っかけと絡まり もし、2隻の船が衝突したら、彼らは互いに絡まってしまう危険を冒しています。 これは、「絡まり [fouling]」と呼ばれています。 絡まった船は、一緒にくっついてしまい、どちらも動けません。 双方が望む場合、彼らは絡まりを解除することもできます。 乗船乱入団を他の船に送り出せるのは、敵艦を絡めたか鈎錨で引っかけたときに 限られます。 .PP 船は四つ爪錨 [grapnel] を他の船の索具 [rigging] に投げつけることにより 引っかけることができます。 .PP 船が保持している絡まりと鈎錨の引っかけの数は画面の右上に表示されます。 .SH 乗船乱入 乗船乱入は、人命の点からすると非常に費用のかかる冒険でした。 .I sail では、乗船乱入団が作られるのは次の場合です。 つまり、敵艦に乗船乱入するためか、攻撃に対抗して自分自身の艦を守るため かのいずれかです。 防衛のための乗船乱入団として組織された人々は組織されぬままの人々より2倍も 激しく自艦を守って戦います。 .PP 乗船乱入団の乗船乱入攻撃の強さは、送られる乗員の質と数により決まります。 .SH 乗員の質 英国の船乗りは、彼らの航行能力の優秀さで世界中に盛名を馳せました。 しかし、実は、世界一の船員は、アメリカの船員だったのです。 何故かといえば、アメリカ海軍は、王立海軍の賃金の 2 倍を支払ったので、 海の好きな英国の船員は数千の単位でアメリカへ逃亡したからです。 .PP .I sail では、乗員の質は、5 つのエネルギーレベルに量子化されます。 「精鋭 [Elite]」な乗員は、他の全ての船乗りに対して、 射撃能力においても格闘能力においても凌駕できます。 「一流 [Crack]」な乗員が、次に来ます。 「普通 [Mandane]」な乗員は平均的です。 「未熟 [Green]」な乗員と「反抗的 [Mutinous]」な乗員は、平均以下です。 上手な目の子勘定としては、「一流」と「精鋭」な乗員は 「普通」な乗員に比して片舷斉射あたり 1 発余分に命中させます。 「未熟」な乗員にはあまり多くを期待しないことです。 .SH 舷側砲[broadsides] 各舷側砲 [broadsides] には、次の 4 種類の砲弾を装填できます: ぶどう弾 [grape]、鎖弾 [chain]、砲丸 [round]、2 連発 [double]。 大砲 [gun] とカロネード砲 [carronade] を、 左舷 [port] と右舷 [starboard] の両砲郭に 搭載できます。 カロネード砲 [carronade] は 2 の射程距離しかありません。 そのため、カロネード砲を発射できるほど近付かなければなりません。 他の船の船殻 [hull] を砲撃するか、索具 [rigging] を砲撃するかを 選択することができます。 もし船の距離が 6 よりも遠ければ、読者は索具を砲撃できるだけです。 .PP 砲弾の型とその長所は: .SH 砲丸[round] 10 の射程距離。船殻と索具のいずれの砲撃にも適しています。 .SH 2 連発[double] 1 の射程距離。船殻と索具のいずれの砲撃にも非常に適しています。 2 連発は、装填するのに 2 ターンが必要です。 .SH 鎖弾[chain] 3 の射程距離。 索具を粉砕してしまうのに特に優れています。 しかし、船殻や大砲に損害を加えることはできません。 .SH ぶどう弾[grape] 1 の射程距離。 たまに、敵乗員に圧倒的な効果を示します。 .PP スクリーンの脇には、自分の船に関する極めて重要な情報が表示されます: .nf Load D! R! Hull 9 Crew 4 4 2 Guns 4 4 Carr 2 2 Rigg 5 5 5 5 .fi 「Load (装填)」は、左舷と右舷それぞれの砲に どのような砲弾が装填されているかを示します。 砲弾の後の「!」はそれが最初の片舷斉射であることを示します。 最初の片舷斉射は、戦闘の前に、そして甲板が血で真っ赤に染まる前に、 注意深く装填されています。 その結果、最初の片舷斉射は、後で装填したときの片舷斉射より若干効果的です。 砲弾の型のあとの「*」は、砲側員がまだその砲弾を装填中で、 まだ発砲できないことを示します。 「Hull (船殻)」は、どれくらいの船殻が残されているかを示します。 「Crew (乗員)」は、3 つの区画ごとの乗員を示します。 乗員が死ぬにつれて、読者は砲撃力を失なっていきます。 「Guns (大砲)」と「Carr (カロネード砲)」は、左舷と右舷の 大砲を示します。 大砲を失うと、それだけ砲撃力を失います。 「Rigg (索具)」は、3 本マストや 4 本マストにどれくらいの索具が残って いるかを示します。 索具が打ち払われるにつれて、機動力が失われてゆきます。 .SH 砲撃の効果 船が雷のような大音響をとどろかせて片舷の砲を発射するときは、とても 劇的です。 しかし、ただ行き当たりばったりに片舷斉射を行なっても、 命中は全く保証されません。 片舷斉射の破壊力には、多くの要素が影響します。 まず第一の、そして、主要な要因は、距離です。 10 の距離にある船を砲撃する方が、すぐ横に並んで波を蹴立てて進んでいる 船を砲撃するより困難です。 次は、縦射 [rake] です。 以前に記述した通り、縦射砲撃は、10 の距離にある船の帆柱 をときには折り倒すことができます。 その次には、乗員の数と質が片舷斉射による損害に影響します。 発砲する大砲の数もまた、いわば、実を結んで得点になると言えます。 最後に、天候が片舷斉射の正確さに影響します。 もしも、波が高ければ (5 または 6)、戦列艦は下側の砲門を開くことさえできず、 大砲を出せません。 このことにより、嵐の中では、フリゲート艦や他の平甲板の船は有利になります。 シナリオの .I Pellew vs. The Droits de L'Homme (ペルー艦長対人権号) は、この特殊な状況を利用しています。 .SH 修理 船殻、大砲、索具に対して修理を行なうことができます。3 ターンにつき 2 ポイントの遅い割合で修理が進みます。 それ以上の修理ができなくなったときには、「修理完了 [Repair Completed]」の メッセージが表示されます。 .SH コンピュータ船の特性 .I sail におけるコンピュータ船は、上述の全ての規則に従いますが、しかし少数の 例外があります。 コンピュータ船は、決して損害を修理しません。 もし、コンピュータ船が修理をしたら、プレイヤー達はコンピュータ船に決して 勝てないでしょう。 しかし、今のままでも既に彼らは、十分良くやっています。 慰めとして、コンピュータ船はターンごとに 2 連発の砲撃を行なえます。 まぐれ当たりもあるので、プレイヤーの船は 近付かないのが、合理的というものでしょう。 .I ドライバプロセス が、コンピュータ船の動きを計算します。 .I ドライバプロセス は、典型的な A.I. の距離関数と縦型検索によってコンピュータ船の動きを 計算することで、 最高「得点」を発見します。 これは、かなりうまく機能しているように見えます。 しかしながら、この A.I. が完璧でないことは筆者が真っ先に認めましょう。 .SH 遊び方 .I sail にコマンドを与えるには、文字を 1 文字タイプします。 そのとき、更に入力するよう催促されます。 コマンドの短い要約を次に示します。 .br .SH コマンドの要約 .nf 'f' 可能なら、片舷斉射を行ないます 'l' 再装填 'L' 舷側砲から弾を抜きます (弾薬を交換するため) 'm' 移動 'i' 最寄りの船を表示 'I' 全艦船を表示 'F' 特定パターンの船を 1 隻または数隻探します (例えば全アメリカ船は「a?」) 's' 艦隊全体にメッセージを送信 'b' 敵艦への乗船乱入の試み 'B' 乗船乱入隊を呼び返します 'c' 帆装を交換 'r' 修理 'u' 絡んだ索具をほどく試み 'g' 鈎錨を引っかける/はずす 'v' ゲームのバージョンナンバの表示 '^L' 画面の再描画 'Q' 終了 'C'\ \ \ \ \ 読者の船をウィンドウの真中にします 'U'\ \ \ \ \ ウィンドウを上へ移動 'D','N'\ ウィンドウを下へ移動 'H'\ \ \ \ \ ウィンドウを左へ移動 'J'\ \ \ \ \ ウィンドウを右へ移動 'S'\ \ \ \ \ ウィンドウを自分の船についていかせるか今の位置を保つかを反転 .fi .bg .SH シナリオ 以下に、 .I sail のシナリオの要約を示します: .br .SH Ranger vs. Drake: .nf 北からの風、疾風。 (a) Ranger 19 砲門 スループ帆船 (一流の乗員) (7 点) (b) Drake 17 砲門 スループ帆船 (一流の乗員) (6 点) .SH The Battle of Flamborough Head: .nf 南からの風、疾風。 .fi これは、ジョン・ポール・ジョーンズの最初の有名な海戦です。 ボノム・リシャールに乗り組んだ彼は、素早くセラピスに乗船乱入したおかげで、 セラピスの優勢な火力を克服できました。 .nf (a) Bonhomme Rich 42 砲門 コルベット艦 (一流の乗員) (11 点) (b) Serapis 44 砲門 フリゲート艦 (一流の乗員) (12 点) .SH Arbuthnot and Des Touches: .nf 北からの風、疾強風。 (b) America 64 砲門 戦列艦 (一流の乗員) (20 点) (b) Befford 74 砲門 戦列艦 (一流の乗員) (26 点) (b) Adamant 50 砲門 戦列艦 (一流の乗員) (17 点) (b) London 98 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (b) Royal Oak 74 砲門 戦列艦 (一流の乗員) (26 点) (f) Neptune 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Duc de Bourgogne 80 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) (f) Conquerant 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Provence 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Romulus 44 砲門 戦列艦 (平均の乗員) (10 点) .SH Suffren and Hughes: .nf 南からの風、疾風。 (b) Monmouth 74 砲門 戦列艦 (平均の乗員) (24 点) (b) Hero 74 砲門 戦列艦 (一流の乗員) (26 点) (b) Isis 50 砲門 戦列艦 (一流の乗員) (17 点) (b) Superb 74 砲門 戦列艦 (一流の乗員) (27 点) (b) Burford 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Flamband 50 砲門 戦列艦 (平均の乗員) (14 点) (f) Annibal 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Severe 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Brilliant 80 砲門 戦列艦 (一流の乗員) (31 点) (f) Sphinx 80 砲門 戦列艦 (平均の乗員) (27 点) .SH Nymphe vs. Cleopatre: .nf 南よりの風、疾風。 (b) Nymphe 36 砲門 フリゲート艦 (一流の乗員) (11 点) (f) Cleopatre 36 砲門 フリゲート艦 (平均の乗員) (10 点) .SH Mars vs. Hercule: 南からの風、疾風。 .nf (b) Mars 74 砲門 戦列艦 (一流の乗員) (26 点) (f) Hercule 74 砲門 戦列艦 (平均の乗員) (23 点) .SH Ambuscade vs. Baionnaise: .nf 北からの風、疾風。 (b) Ambuscade 32 砲門 フリゲート艦 (平均の乗員) (9 点) (f) Baionnaise 24 砲門 コルベット艦 (平均の乗員) (9 点) .SH Constellation vs. Insurgent: .nf 南からの風、疾強風。 (a) Constellation 38 砲門 コルベット艦 (精鋭な乗員) (17 点) (f) Insurgent 36 砲門 コルベット艦 (平均の乗員) (11 点) .SH Constellation vs. Vengeance: .nf 南からの風、疾風。 (a) Constellation 38 砲門 コルベット艦 (精鋭な乗員) (17 点) (f) Vengeance 40 砲門 フリゲート艦 (平均の乗員) (15 点) .SH The Battle of Lissa: .nf 南からの風、疾風。 (b) Amphion 32 砲門 フリゲート艦 (精鋭な乗員) (13 点) (b) Active 38 砲門 フリゲート艦 (精鋭な乗員) (18 点) (b) Volage 22 砲門 フリゲート艦 (精鋭な乗員) (11 点) (b) Cerberus 32 砲門 フリゲート艦 (精鋭な乗員) (13 点) (f) Favorite 40 砲門 フリゲート艦 (平均の乗員) (15 点) (f) Flore 40 砲門 フリゲート艦 (平均の乗員) (15 点) (f) Danae 40 砲門 フリゲート艦 (一流の乗員) (17 点) (f) Bellona 32 砲門 フリゲート艦 (未熟な乗員) (9 点) (f) Corona 40 砲門 フリゲート艦 (未熟な乗員) (12 点) (f) Carolina 32 砲門 フリゲート艦 (未熟な乗員) (7 点) .SH Constitution vs. Guerriere: .nf 南西からの風、疾強風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Guerriere 38 砲門 フリゲート艦 (一流の乗員) (15 点) .SH United States vs. Macedonian: .nf 南からの風、疾風。 (a) United States 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) (b) Macedonian 38 砲門 フリゲート艦 (一流の乗員) (16 点) .SH Constitution vs. Java: .nf 南からの風、疾風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Java 38 砲門 コルベット艦 (一流の乗員) (19 点) .SH Chesapeake vs. Shannon: .nf 南からの風、疾風。 (a) Chesapeake 38 砲門 フリゲート艦 (平均の乗員) (14 点) (b) Shannon 38 砲門 フリゲート艦 (精鋭な乗員) (17 点) .SH The Battle of Lake Erie: .nf 南からの風、軽風。 (a) Lawrence 20 砲門 スループ帆船 (一流の乗員) (9 点) (a) Niagara 20 砲門 スループ帆船 (精鋭な乗員) (12 点) (b) Lady Prevost 13 砲門 ブリッグ帆船 (一流の乗員) (5 点) (b) Detroit 19 砲門 スループ帆船 (一流の乗員) (7 点) (b) Q. Charlotte 17 砲門 スループ帆船 (一流の乗員) (6 点) .SH Wasp vs. Reindeer: .nf 南からの風、軽風。 (a) Wasp 20 砲門 スループ帆船 (精鋭な乗員) (12 点) (b) Reindeer 18 砲門 スループ帆船 (精鋭な乗員) (9 点) .SH Constitution vs. Cyane and Levant: .br .nf 南からの風、和風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Cyane 24 砲門 スループ帆船 (一流の乗員) (11 点) (b) Levant 20 砲門 スループ帆船 (一流の乗員) (10 点) .br .SH Pellew vs. Droits de L'Homme: .nf 北からの風、疾強風。 (b) Indefatigable 44 砲門 フリゲート艦 (精鋭な乗員) (14 点) (b) Amazon 36 砲門 フリゲート艦 (一流の乗員) (14 点) (f) Droits L'Hom 74 砲門 戦列艦 (平均の乗員) (24 点) .SH Algeciras: .nf 南西からの風、和風。 (b) Caesar \080 砲門 戦列艦 (一流の乗員) (31 点) (b) Pompee \074 砲門 戦列艦 (一流の乗員) (27 点) (b) Spencer \074 砲門 戦列艦 (一流の乗員) (26 点) (b) Hannibal \098 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (s) Real-Carlos 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (s) San Fernando \096 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点) (s) Argonauta \080 砲門 戦列艦 (未熟な乗員) (23 点) (s) San Augustine \074 砲門 戦列艦 (未熟な乗員) (20 点) (f) Indomptable \080 砲門 戦列艦 (平均の乗員) (27 点) (f) Desaix \074 砲門 戦列艦 (平均の乗員) (24 点) .SH Lake Champlain: .nf 北からの風、疾風。 (a) Saratoga 26 砲門 スループ帆船 (一流の乗員) (12 点) (a) Eagle 20 砲門 スループ帆船 (一流の乗員) (11 点) (a) Ticonderoga 17 砲門 スループ帆船 (一流の乗員) (9 点) (a) Preble \07 砲門 ブリッグ帆船 (一流の乗員) (4 点) (b) Confiance 37 砲門 フリゲート艦 (一流の乗員) (14 点) (b) Linnet 16 砲門 スループ帆船 (精鋭な乗員) (10 点) (b) Chubb 11 砲門 ブリッグ帆船 (一流の乗員) (5 点) .SH Last Voyage of the USS President: .nf 北からの風、疾風。 (a) President 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) (b) Endymion 40 砲門 フリゲート艦 (一流の乗員) (17 点) (b) Pomone 44 砲門 フリゲート艦 (一流の乗員) (20 点) (b) Tenedos 38 砲門 フリゲート艦 (一流の乗員) (15 点) .SH Hornblower and the Natividad: .nf 東からの風、疾強風。 .fi ホーニィ・ファンの読者のためのシナリオです。 思い起こしていただきたい事は、 ホーンブロワーは、大きな不利と風に抗してナティビダッドを沈めたことです。 ヒント:ナティビダッドに乗船乱入しようとしないで下さい。 この船の乗員は、未熟ではありますが、ずっと多いのです。 .nf (b) Lydia 36 砲門 フリゲート艦 (精鋭な乗員) (13 点) (s) Natividad 50 砲門 戦列艦 (未熟な乗員) (14 点) .SH Curse of the Flying Dutchman(さまよえるオランダ人の呪い): .nf 南からの風、疾風。 ちょっとした戯れです。Piece of Cake の側を取って下さい。 (s) Piece of Cake \024 砲門 コルベット艦 (平均の乗員) (9 点) (f) Flying Dutchy 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) .SH The South Pacific: .nf 南からの風、雄風。 (a) USS Scurvy 136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点) (b) HMS Tahiti 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (s) Australian \032 砲門 フリゲート艦 (平均の乗員) (9 点) (f) Bikini Atoll \0\07 砲門 ブリッグ帆船 (一流の乗員) (4 点) .SH Hornblower and the battle of Rosas bay: .nf 東からの風、疾風。 ホーンブロワーが負けた唯一の海戦です。 しかし、彼は1隻の船のマストを折り、他の船達に船尾縦射を撃ちました。 あなたも同じだけの戦果が挙げられるでしょうか。 .nf (b) Sutherland \074 砲門 戦列艦 (一流の乗員) (26 点) (f) Turenne \080 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) (f) Nightmare \074 砲門 戦列艦 (平均の乗員) (24 点) (f) Paris 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (f) Napoleon \074 砲門 戦列艦 (未熟な乗員) (20 点) .SH Cape Horn: .nf 北東からの風、雄風。 (a) Concord \080 砲門 戦列艦 (平均の乗員) (27 点) (a) Berkeley \098 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (b) Thames 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (s) Madrid 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (f) Musket \080 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) .SH New Orleans: .nf 南東からの風、疾風。 小さな Cypress が行ってしまうのに気をつけて下さい! (a) Alligator 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (b) Firefly \074 砲門 戦列艦 (一流の乗員) (27 点) (b) Cypress \044 砲門 フリゲート艦 (精鋭な乗員) (14 点) .SH Botany Bay: .nf 北からの風、疾風。 (b) Shark 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Coral Snake 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (f) Sea Lion 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) .SH Voyage to the Bottom of the Sea: .nf 北西からの風、疾風。 このシナリオは、Richard BasehartとDavid Hedisonに捧げるものです。 (a) Seaview 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (a) Flying Sub \040 砲門 フリゲート艦 (一流の乗員) (17 点) (b) Mermaid 136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点) (s) Giant Squid 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) .SH Frigate Action: .nf 東からの風、疾風。 (a) Killdeer 40 砲門 フリゲート艦 (平均の乗員) (15 点) (b) Sandpiper 40 砲門 フリゲート艦 (平均の乗員) (15 点) (s) Curlew 38 砲門 フリゲート艦 (一流の乗員) (16 点) .SH The Battle of Midway: .nf 東からの風、和風。 (a) Enterprise \080 砲門 戦列艦 (一流の乗員) (31 点) (a) Yorktown \080 砲門 戦列艦 (平均の乗員) (27 点) (a) Hornet \074 砲門 戦列艦 (平均の乗員) (24 点) (j) Akagi 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (j) Kaga \096 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点) (j) Soryu \080 砲門 戦列艦 (未熟な乗員) (23 点) .SH Star Trek: .nf 南からの風、疾風。 (a) Enterprise 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Yorktown 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Reliant 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Galileo 450 砲門 戦列艦 (精鋭な乗員) (75 点) (k) Kobayashi Maru 450 砲門 戦列艦 (精鋭な乗員) (75 点) (k) Klingon II 450 砲門 戦列艦 (精鋭な乗員) (75 点) (o) Red Orion 450 砲門 戦列艦 (精鋭な乗員) (75 点) (o) Blue Orion 450 砲門 戦列艦 (精鋭な乗員) (75 点) .SH 結語 .I sail は共同作業の成果です。 .SH 作者 Dave Riggle .SH 共作者 Ed Wang .SH 改訂 Craig Leres .SH 顧問 .nf Chris Guthrie Captain Happy Horatio Nelson そして他の多くの優れた人々... .fi .SH 参考文献 .nf Wooden Ships & Iron Men, by Avalon Hill Game Co. (ボードゲーム) Captain Horatio Hornblower Novels, (13 of them) by C.S. Forester 「海の男/ホーンブロワー・シリーズ」 早川書房、セシル・スコット・フォレスター Captain Richard Bolitho Novels, (12 of them) by Alexander Kent 「海の勇士/ボライソー・シリーズ」 早川書房、アレグザンダー・ケント The Complete Works of Captain Frederick Marryat, (about 20) Captain Frederick Marryat全集, (約20)特に .in +6n Mr. Midshipman Easy Peter Simple Jacob Faithful Japhet in Search of a Father Snarleyyow, or The Dog Fiend Frank Mildmay, or The Naval Officer .in -6n .SH バグ 多分、少しはあると思います。 もし、バグを見つけたらどうか "riggle@ernie.berkeley.edu" と "edward@ucbarpa.berkeley.edu" にお知らせ下さい。 .\" Translated by Tetsuro FURUYA , on Dec 2, 1998. .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja/man/man7/environ.7 b/ja/man/man7/environ.7 index ff7b344101..7ac32e0b1a 100644 --- a/ja/man/man7/environ.7 +++ b/ja/man/man7/environ.7 @@ -1,198 +1,196 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)environ.7 8.3 (Berkeley) 4/19/94 -.\" %Id: environ.7,v 1.10 1997/03/08 14:41:44 wosch Exp % -.\" jpman %Id: environ.7,v 1.4 1999/01/21 17:56:13 kuma Stab % +.\" %Id: environ.7,v 1.10.2.1 1999/04/29 09:33:39 jkoshy Exp % .\" +.\" jpman %Id: environ.7,v 1.4 1999/01/21 17:56:13 kuma Stab % .Dd April 19, 1994 .Dt ENVIRON 7 .Os BSD 4.2 .Sh 名称 .Nm environ .Nd ユーザ環境 .Sh 書式 .Ar extern char **environ ; .Sh 解説 .Ar 環境 と呼ばれる文字列の配列は、 プロセス開始時に .Xr execve 2 を呼び出すことによって利用可能になります。 習慣によって、これらの文字列は .Dq Ar name=value という形を取ります。 以下の名前は多くのコマンドによって利用されます: .Bl -tag -width BLOCKSIZE .It Ev BLOCKSIZE いくつかのコマンド (最もよく知られている物としては .Xr df 1 , .Xr du 1 , .Xr ls 1 ) で用いられるブロック単位のサイズ。 .Ev BLOCKSIZE には、数字を指定することによってバイト単位の値を、 数字の後に ``K'' か ``k'' を指定することによってキロバイト単位の値を、 数字の後に ``M'' か ``m'' を指定することによってメガバイト単位の値を、 数字の後に ``G'' か ``g'' を指定することによってギガバイト単位の値を、 指定することができます。 512 バイトより小さい値や 1 ギガバイトより大きい値を指定しても無視されます。 .It Ev EXINIT .Xr ex 1 , -.Xr edit 1 , .Xr vi 1 が参照する、スタートアップ時のコマンドリスト。 .It Ev HOME .Xr login 1 によって、パスワードファイル .Xr passwd 5 を元にセットされるユーザのログインディレクトリ。 .It Ev LANG .Xr setlocale 3 を使用する全てのプログラムを、この変数に指定されたロケールを使うように 設定します。 .It Ev MAIL ユーザのメールボックスの場所です。 .Xr mail 1 , .Xr sh 1 , その他多くのメールクライアントが、デフォルトの /var/mail の 代わりに用います。 .It Ev PATH コロンで区切られたディレクトリの列です。 .Xr csh 1 , .Xr sh 1 , .Xr system 3 , .Xr execvp 3 などが、実行ファイルを探すときに検索します。 .Ev PATH の初期値は、 .Xr login 1 -によって、 ``/usr/bin:/bin'' にセットされます。 +によって、``/usr/bin:/bin'' にセットされます。 .It Ev PRINTER .Xr lpr 1 , .Xr lpq 1 , .Xr lprm 1 によって用いられるデフォルトのプリンタの名前。 .It Ev SHELL ユーザのログインシェルのフルパス名。 .It Ev TERM 出力を準備する必要のある端末の種類。 この情報は .Xr nroff 1 や .Xr plot 1 などの、端末の特殊な機能を駆使するコマンドによって用いられます。 端末タイプのリストは、 .Pa /usr/share/misc/termcap .Pq Xr termcap 5 を参照してください。 .It Ev TERMCAP .Ev TERM で指定した端末の機能を記述する文字列、あるいは、文字列が `/' で -始まる場合、 termcap ファイルの名前。 +始まる場合、termcap ファイルの名前。 下記の .Ev TERMPATH , -.Xr termcap 5 , -.Xr termcap 3 +.Xr termcap 5 を参照してください。 .It Ev TERMPATH -コロンあるいはスペースで区切られた、 termcap のパス名の列で、 +コロンあるいはスペースで区切られた、termcap のパス名の列で、 端末の機能記述を知るために、列挙された順番で検索されます。 .Ev TERMPATH を指定していない場合は、 .Ev TERMPATH を .Dq Pa $HOME/.termcap:/etc/termcap に指定している時と同じ結果になります。 .Ev TERMCAP がフルパス名を含んでいる場合は、 .Ev TERMPATH は無視されます。 .It Ev TMPDIR テンポラリファイルを置くための場所。ほとんどのアプリケーションは .Dq /tmp か .Dq /var/tmp を用います。この変数を指定すれば、他のディレクトリを使うようになるでしょう。 .It Ev TZ 日付を表示する時に使われるタイムゾーン。 通常のフォーマットは、 .Dq Pa /usr/share/zoneinfo からの相対パス名です。 例えば、コマンド .Dq env TZ=America/Los_Angeles date は、カリフォルニアの現在時刻を表示します。 より詳しい情報は、 .Xr tzset 3 を参照してください。 .It Ev USER ユーザのログイン名。 .El .Pp これ以外の名前も、 .Xr sh 1 においては .Xr export コマンドと .Ar name=value 引数によって、 .Xr csh 1 を使用している時には .Xr setenv コマンドによって環境に付け加えることができます。 .Pa .profile ファイルでしばしばエキスポートされる、 .Ev MAIL , .Ev PS1 , .Ev PS2 , .Ev IFS などのいくつかの .Xr sh 1 の変数を変更するのは、自分が何をしているのか十分に理解していない場合には 賢明ではありません。 .Sh 関連項目 .Xr cd 1 , .Xr csh 1 , .Xr ex 1 , .Xr login 1 , .Xr sh 1 , .Xr execve 2 , .Xr execle 3 , .Xr setlocale 3 , .Xr system 3 , .Xr termcap 3 , .Xr termcap 5 .Sh 歴史 .Nm environ マニュアルページは .Bx 4.2 から登場しました。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 99-1-21 diff --git a/ja/man/man7/ports.7 b/ja/man/man7/ports.7 index a3be314260..62e35b69ea 100644 --- a/ja/man/man7/ports.7 +++ b/ja/man/man7/ports.7 @@ -1,342 +1,342 @@ .\" .\" Copyright (c) 1997 David E. O'Brien .\" .\" 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 THE DEVELOPERS ``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 DEVELOPERS 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: ports.7,v 1.9 1998/12/30 17:32:47 hoek Exp % +.\" %Id: ports.7,v 1.9.2.1 1999/04/29 21:41:11 hoek Exp % .\" .\" jpman %Id: ports.7,v 1.3 1999/01/24 06:53:11 horikawa Stab % .Dd January 25, 1998 .Dt PORTS 7 .Os FreeBSD 2.2 .Sh 名称 .Nm ports .Nd 寄贈されたアプリケーション .Sh 解説 .Nm FreeBSD ports コレクション によって、ユーザや管理者は簡単にアプリケーションをインストールする ことができます。 .Em port はそれぞれ、オリジナルのソースコードを BSD 上でコンパイルして実行 させるために必要なパッチのすべてを含んでいます。アプリケーションの コンパイルは、 port のディレクトリで .Ic make build と入力するだけで簡単にできます。 port の .Ql Pa Makefile は、ローカルディスクからもしくは ftp を使って、自動的にアプリケーションの ソースコードを取得 .Pq fetch して、自分のシステムでそれを展開して、 パッチを当て、コンパイルします。すべてが順調に進んだ場合、 .Ic make install を実行することにより、アプリケーションがインストールされます。 .Pp インストールされたシステムよりも新しい ports を、 FreeBSD リポジトリからダウンロードして使用できます。 ただし、最初に適切な「アップグレードキット」を http://www.FreeBSD.ORG/ports/ から取得してインストールすることが重要です! 新しい ports をダウンロードするときには、 .Xr portcheckout 1 スクリプト (もちろんこれも port です!) が役立つでしょう。 .Pp port の利用に関してさらに情報が必要ならば、 .Nm ports コレクション (The Ports Collection) (原文: file:/usr/share/doc/handbook/ports.html または、 http://www.FreeBSD.ORG/handbook/ports.html。 和文: file:/usr/share/doc/ja/handbook/ports.html または、 http://www.FreeBSD.ORG/ja/handbook/ports.html) ) に目を通して下さい。 port を新規に作成するための情報については、 .Nm 自分で port を作る (Porting applications) (原文: file:/usr/share/doc/handbook/porting.html または、 http://www.FreeBSD.ORG/handbook/porting.html、 和文: file:/usr/share/doc/ja/handbook/porting.html または http://www.FreeBSD.ORG/ja/handbook/porting.html) に目を通して下さい。 どちらも FreeBSD ハンドブックの一部です。 .Pp .Sh ターゲット .Pp ターゲットのいくつかは、サブディレクトリを再帰的に make して行きます。 これにより、例えば、biology の port すべてをインストールすることが できます。再帰的に make を行なうターゲットは、 .Ar build , checksum , clean , configure , .Ar depends , extract , fetch , install , .Ar package です。 .Pp 次のターゲットは、それぞれすぐ手前のターゲットによって順に自動的に 実行されます。すなわち、 .Ar build は、 .Pq 必要があれば、 .Ar install によって実行されます。以下のターゲットそれぞれについて、同様のルールが .Ar fetch まで順次適用されます。 通常は、ターゲットとして、 .Ar install を指定するだけでよいはずです。 .Bl -tag -width configure .It Ar fetch MASTER_SITES と PATCH_SITES でリストされたサイトから、 この port を構築するために必要なファイルすべてを取得 .Pq fetch します。 .Ev FETCH_CMD と .Ev MASTER_SITE_OVERRIDE とを参照して下さい。 .It Ar checksum 取得した distfile が port で動作確認されたものと一致するかどうかを検証 します。 .Ev NO_CHECKSUM を定義することで、このステップを飛ばすことができます。 .It Ar depends 現在の port と依存関係にある port をインストール .Pq もしくは、必要がある場合のみコンパイル します。ターゲット .Ar extract もしくは .Ar fetch により呼び出された場合、 .Ar fetch-depends , .Ar build-depends などとしてひとつずつ実行されます。 .Ev NO_DEPENDS を定義することで、このステップを飛ばすことができます。 .It Ar extract distfile を作業用ディレクトリに展開します。 .It Ar patch port に必要なパッチすべてを適用します。 .It Ar configure port を構成 (configure) します。port によっては、この段階で質問して くるものもあります。 .Ev INTERACTIVE と .Ev BATCH を参照して下さい。 .It Ar build port を構築します。これはターゲット .Ar all を呼び出すことと同じです。 .It Ar install port をインストールし、この port をインストールしたことを パッケージシステムに登録します。このターゲットは、実際に必要なこと すべてを行なってくれます。 .El .Pp 次のターゲットは、通常のインストールプロセスでは実行されません。 .Bl -tag -width fetch-list .It Ar fetch-list この port を構築するために取得が必要なファイルのリストを表示します。 .It Ar depends-list package-depends コンパイル依存 port リストと実行依存 port リストを表示します。 また、これらの依存 port リストが依存する port についても表示します。 .It Ar clean 展開されたソースコードを削除します。 .Ev NOCLEANDEPENDS を定義しておかない限り、削除は依存関係にある port に再帰的に適用されます。 .It Ar distclean その port の distfile を削除し、 .Ar clean を実行します。 .Ev NOCLEANDEPENDS を定義しておかない限り、 .Sq clean の部分は依存関係にある port に再帰的に適用されます。しかし、 .Sq distclean の部分は決して再帰的に適用されません .Pq この挙動はひょっとするとバグかもしれません 。 .It Ar reinstall .Ar deinstall を使用すべきところでうっかり .Xr pkg_delete 1 を使ってしまった場合、このターゲットを使って port を復活させて下さい。 .It Ar deinstall .Xr pkg_delete 1 と同様に、インストールした port をシステムから削除します。 .It Ar package この port のバイナリパッケージを作成します。まだインストールされて いなかった場合、その port をインストールします。 パッケージは\ .tgz ファイルであり、その port を他のマシンに .Xr pkg_add 1 を使ってインストールする際に使用することができます。 .Ev PACKAGES で指定されたディレクトリが存在しなければ、パッケージはカレントディレクトリに 置かれます。 .Ev PKGREPOSITORY と .Ev PKGFILE とを参照して下さい。 .It Ar readmes その port の .Pa README.html ファイルを生成します。 ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/ports/templates/README.port を取得 .Pq Xr fetch 1 することが必要で、ディレクトリを .Ev TEMPLATES に設定しておく必要があります。 これはリリースエンジニアになる人のためのターゲットです。ほとんどの人は、 .Pa pkg/COMMENT と .Pa pkg/DESCR とを読むことができるだけです。 .El .Sh 環境変数 これら環境変数のすべてを変更することができます。 .Bl -tag -width MASTER_SITES .It Ev PORTSDIR port ツリーの場所を指定します。これは FreeBSD と OpenBSD では .Pa /usr/ports で、 .\"ZZZ: .Nx NetBSD では .\" .Fx .\" .Ox , .Pa /usr/pkgsrc です。 .It Ev DISTDIR distfile を探す場所であり、取得した distfile を置く場所です。通常は .Ev PORTSDIR の下の .Pa distfiles/ です。 .It Ev PACKAGES ターゲット .Ar package でのみ使用されます。 パッケージツリーのベースディレクトリです。通常は、 .Ev PORTSDIR の下の .Pa packages/ です。 このディレクトリが存在する場合、パッケージツリーが (部分的に) 構築されます。 このディレクトリは存在する必要はありません。存在しない場合、パッケージは カレントディレクトリに置かれます。もしくは、以下のいずれか一方を定義 することができます。 .Bl -tag -width PKGREPOSITORY .It Ev PKGREPOSITORY パッケージを置くディレクトリ。 .It Ev PKGFILE そのパッケージのフルパス。 .El .It Ev PREFIX 一般に、成果物をどこにインストールするかを指定します .Po 通常は .Pa /usr/local か、 .Pa /usr/X11R6 です .Pc 。 .It Ev MASTER_SITES ローカルマシンに配布ファイルが存在しない場合、最初に取得しに行くサイトです。 .It Ev PATCH_SITES ローカルマシンにパッチファイルが存在しない場合、最初に取得しに行くサイトです。 .It Ev MASTER_SITE_FREEBSD これが設定されている場合、すべてのファイルを FreeBSD のマスタサイトに 取りに行きます。 .It Ev MASTER_SITE_OVERRIDE すべてのファイルとパッチについて、まずこのサイトに行って取得を試みます。 .It Ev NOCLEANDEPENDS これが定義されている場合、依存関係にある port に対して .Sq clean を再帰的に適用しません。 .It Ev FETCH_CMD ファイルを取得する際に使用するコマンドです。通常は .Xr fetch 1 です。 .It Ev FORCE_PKG_REGISTER これが設定されている場合、既にシステムに存在するパッケージ登録情報を 上書きします。 .It Ev MOTIFLIB libXm.{a,so} の位置を指定します。 .It Ev INTERACTIVE これが設定されている場合、ユーザ入力が必要な port にのみ動作します。 .It Ev BATCH これが設定されている場合、100% 自動的にインストールできる port にのみ 動作します。 .El .Sh 関連ファイル .Bl -tag -width /usr/ports/xxxx -compact .It Pa /usr/ports デフォルトの port ディレクトリ (FreeBSD と OpenBSD)。 .It Pa /usr/pkgsrc デフォルトの port ディレクトリ (NetBSD)。 .It Pa /usr/share/mk/bsd.port.mk .\"kuma: big Kahuna というのはモアイのような巨大石のものらしい。 .\"kuma: だれか教えて?! ご本尊様であらしゃいます。 .Sh 関連項目 .Xr make 1 , .Xr pkg_add 1 , .Xr pkg_create 1 , .Xr pkg_delete 1 , .Xr pkg_info 1 , .Xr portcheckout 1 (port です), .Xr pib 1 (これも port です). .Pp FreeBSD ハンドブック .Pp http://www.FreeBSD.ORG/ports .Pq port すべてが検索可能なインデックス .Sh 作者 このマニュアルページは、もともとは .An David O'Brien によるものです。 ports コレクションは .An Satoshi Asami と恐るべき port チームによって維持管理されています。 .Sh 歴史 .Nm ports コレクション は、 .Fx 1.0 で登場しました。 .Sh バグ port に関する文書が 4 か所に分散されてしまっています。 -.Pa /usr/share/mk/bsd.port.mk , +.Pa /usr/ports/Mk/bsd.port.mk , ハンドブックの .Dq port コレクション のセクションと、 .Dq 既存のソフトウェアを port にする のセクション、 .Xr ports 7 の 4 つです。 .Pp このマニュアルページは長過ぎです。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai, 98-12-26 diff --git a/ja/man/man8/IPXrouted.8 b/ja/man/man8/IPXrouted.8 index 59f00bb84b..1f57eae2e4 100644 --- a/ja/man/man8/IPXrouted.8 +++ b/ja/man/man8/IPXrouted.8 @@ -1,177 +1,180 @@ .\" Copyright (c) 1986, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Copyright (c) 1995 John Hay. 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. .\" jpman %Id: IPXrouted.8,v 1.3 1997/07/27 13:00:54 horikawa Stab % .\" .Dd Oct 11, 1995 .Dt IPXROUTED 8 .Os FreeBSD .Sh 名称 .Nm IPXrouted .Nd IPX Routing Information Protocol デーモン .Sh 書式 .Nm IPXrouted +.Op Fl N .Op Fl q .Op Fl s .Op Fl S .Op Fl t .Op Ar logfile .Sh 解説 .Nm は IPX 経路テーブルを扱うために、ブート時に起動されます。 IPX 経路デーモンは、カーネルの経路テーブルエントリを最新に 保つために Novell の IPX Routing Information Protocol を用います。 .Pp 使用可能なオプション: .Bl -tag -width logfile +.It Fl N +GetNearestServer SAP 要求に対して応答しません。 .It Fl q (下記の .Fl s オプションとは反対に) 経路情報を提供しません。 .It Fl s ネットワークをつなぐルータであるないにかかわらず、 .Nm が強制的に経路情報を提供するようにします。 .It Fl S Service Advertizing Protocol .Nm (SAP) 情報を提供しません。デフォルトでは .Nm SAP 情報を提供します。 .It Fl t 送信・受信されたすべてのパケットを標準出力に表示します。 加えて、 .Nm は制御端末から切り離されないので、キーボードからの 割り込みはプロセスを kill することになります。 .It Ar logfile .Nm IPXrouted の 行動が記録されるファイル名を指定します。 このログには、経路テーブルのすべての変更についての情報や、 経路の変更に関わる最近の送受信メッセージの履歴が記録されます。 .El .Pp 通常、 .Nm は経路情報パケットを listen します。 ホストが複数の IPX ネットワークに接続されている場合には、 直接接続されているホストやネットワークすべてに経路テーブルの コピーを定期的に提供します。 .Pp .Nm が起動されると、 .Dv SIOCGIFCONF .Xr ioctl 2 を用いて、システムに組み込まれ、 .Dq up となっているインタフェースを探します (ソフトウェアループバックインタフェースは無視されます)。 インタフェースが複数ある場合には、そのホストがネットワーク間で パケットを転送するとみなします。 そして .Nm は各インタフェースに .Em リクエスト パケットを送信し(インタフェースがサポートしていれば ブロードキャストパケットを用います)、他のホストから .Em リクエスト と .Em レスポンス のパケットが来るのを listen し続けます。 .Pp .Em リクエスト パケットを受け取ると、内部のテーブルに基づく情報から返答パケットを 作成します。 作成された .Em レスポンス パケットは既知の経路の一覧を含み、各々は .Dq hop count metric を持っています(16 以上の count は .Dq 無限大 (到達不可能) を示します)。 返答された各々の経路に関する metric は、送信元からの .Em "相対的な" metric を提供します。 .Pp 以下の条件を一つでも満たす場合、 .Nm が受け取った .Em レスポンス パケットは経路テーブルの更新に使われます: .Bl -bullet .It 宛先となるネットワークやホストへの経路テーブルエントリが 存在せず、 metric が宛先が到達可能であるとしている (hop count が無限大でない)とき。 .It パケットの送信元ホストが、保持している経路テーブルエントリ内の ルータと同じであるとき。 すなわち更新された情報が、 宛先へのパケットが経由するネットワーク間ルータからもたらされたとき。 .It 経路テーブル内に存在するエントリがしばらくの間(定義では 90 秒) 更新されず、その経路が現在の経路と少なくとも同じ程度効率的であるとき。 .It 現在経路テーブル内に保持しているものよりも、新しい経路のほうが短いとき。 この判断にはテーブル内の経路の metric と新しい経路の metric が 比較されます。 .El .Pp 更新が受け入れられた場合、 .Nm は変更を内部テーブルに記録し、 .Em レスポンス パケットをすべての直接つながったホストとネットワークに流します。 .Xr routed 8 は、カーネルの経路テーブルを更新する前に、不安定な状態から 抜け出せるようにするために、しばらくの間(30 秒以内)待ちます。 .Pp .Nm は入ってくるパケットを処理するだけではなく、経路テーブル エントリを定期的にチェックします。 エントリが 3 分間更新されなかった場合、エントリの metric は 無限大に設定され、削除予定の印がつけられます。 実際の削除は、エントリの無効化が他のルータに伝わるのを確実に するために、さらに 60 秒後に行われます。 .Pp ネットワークをつなぐルータとなっているホストは、 30 秒ごとに 直接つながったすべてのホストとネットワークに自分の 経路テーブルを提供します。 .Pp .Nm が SIGINFO シグナルを受け取った場合、RIP と SAP テーブルの 現在の内容がファイル /tmp/ipxrouted.dmp に追加されます。 .Sh 関連項目 .Xr ipx 3 .Sh 歴史 diff --git a/ja/man/man8/ibcs2.8 b/ja/man/man8/ibcs2.8 index 55cd31b999..82e2531a03 100644 --- a/ja/man/man8/ibcs2.8 +++ b/ja/man/man8/ibcs2.8 @@ -1,64 +1,64 @@ .\" .\" Copyright (c) 1995 Lyndon Nerenberg .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" 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 THE DEVELOPERS ``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 DEVELOPERS 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: ibcs2.8,v 1.6.2.2 1999/04/06 13:59:14 ghelmer Exp % +.\" %Id: ibcs2.8,v 1.6.2.3 1999/04/23 16:15:28 ghelmer Exp % .\" .\" jpman %Id: ibcs2.8,v 1.3 1997/09/08 08:46:54 kuma Stab % .Dd November 27, 1995 .Dt IBCS2 8 .Os FreeBSD .Sh 名称 .Nm ibcs2 .Nd SCO および ISC バイナリのための iBCS2 ランタイムサポートをロードする .Sh 書式 .Nm ibcs2 .Sh 解説 .Nm ユーティリティは iBCS2 互換プログラムの カーネルランタイムサポートをロードします。 本ランタイムサポートの範囲は iBCS2 システムコールインタフェースの エミュレーションに限定されており、完全サポートには程遠いです。 COFF バイナリおよび共有ライブラリはサポートされていますが、 FreeBSD での配布には共有ライブラリは提供されていません。 .Sh 関連ファイル .Bl -tag -width /usr/share/examples/ibcs2/* -compact .It Pa /modules/ibcs2.ko .It Pa /modules/ibcs2_coff.ko iBCS2 ローダブルカーネルモジュール。 .Pp .It Pa /usr/share/examples/ibcs2/* エミュレータ検査用のサンプルオブジェクトファイル。 .Sh 関連項目 -.\"no equivalent yet for kld:.Xr lkm 4 , +.Xr kld 4 , .Xr kldload 8 .Sh バグ エミュレータは全く不完全です。 .Pp 動的にリンクされたバイナリを実行するにあたり、 既存の SCO システムの共有ライブラリへのアクセスが不可欠です。 .Pp 使用にあたりソースコードを読むことが不可欠です。 diff --git a/ja/man/man8/ipfw.8 b/ja/man/man8/ipfw.8 index 5db0e6ae78..a414e0d4e1 100644 --- a/ja/man/man8/ipfw.8 +++ b/ja/man/man8/ipfw.8 @@ -1,598 +1,601 @@ -.Dd July 20, 1996 +.\" +.\" %Id: ipfw.8,v 1.47.2.3 1999/04/29 19:22:13 ghelmer Exp % +.\" .\" jpman %Id: ipfw.8,v 1.4 1997/05/19 17:19:51 horikawa Stab % +.Dd July 20, 1996 .Dt IPFW 8 SMM .Os FreeBSD .Sh 名称 .Nm ipfw .Nd IPファイアウォール制御ユーティリィティ .Sh 書式 .Nm ipfw .Op Fl q .Oo .Fl p Ar preproc .Op Fl D Ar macro Ns Op Ns =value .Op Fl U Ar macro .Oc 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 .Fl p Ar preproc を使用して、 .Ar file がパイプされるプリプロセッサを指定することもできます。 有用なプリプロセッサには .Xr cpp 1 と .Xr m4 1 があります。 .Ar preproc の最初の文字がスラッシュから始まらない場合、 .Ev PATH を使用した通常の名前検索行われます。 .Nm が実行されるときまでに全ファイルシステムが (まだ) マウントされないような環境 (例えば NFS 経由でマウントされる場合) では、本件に注意してください。 ひとたび .Fl p が指定されると、オプションの .Fl D と .Fl U の指定を続けることが可能となり、これらがプリプロセッサに渡されます。 これにより、(ローカルホスト名により条件付けするなど) 柔軟性のある設定ファイルを作成可能となり、IP アドレスのように 頻繁に必要となる引数を集中管理するためのマクロを使用可能となります。 .Pp .Nm はパケットごとに、マッチするルールが見つかるまでルールリストを調べます。 各ルールにはパケット数とパケットサイズの 2 つのカウンタが用意されていて、 パケットがマッチするとカウンタ値は更新されます。 .Pp 全ルールは 1 から 65534 の範囲の行番号で順序付けられます。この番号によって ルールの並べ変えと削除を行ないます。 ルールのマッチングは昇順で行なわれ、最初にマッチしたものが適用されます。 複数のルールが同じ番号を共有することも可能です。この場合はルールが追加された 順序でマッチングが行なわれます。 .Pp 番号を指定せずにルールを追加した場合は、 既に定義されているルールの最大の番号に 100 を加えたものとなります。 ルールの番号が 65435 以上の場合は、新しいルールは同じ番号が与えられます。 。 .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 しかしながら、カーネルオプション .Dq IPFIREWALL_DEFAULT_TO_ACCEPT が有効な場合、ルールは次のようになります: .Bd -literal -offset center 65535 allow all from any to any .Ed .Pp このバリエーションでは全てが通過可能です。 このオプションを有効にしてよいのは特定の状況だけであり、 例えば通常は解放しており、 必要に応じてサービス拒否 (denial-of-service) フィルタとなる ファイアウォールシステムを使用する場合がこれに該当します。 .Pp オプションは以下のものが利用可能です。 .Bl -tag -width flag .It Fl a list 操作の時、カウンタの値を表示します。 show の項を参照のこと。 .It Fl f 操作を実行する際に確認メッセージを表示しません。 flush 操作も無条件に実行されます。 .Ar (注意) プロセスに tty が関連付けられていない場合には、 このオプションが指定されているものとして実行されます。 .It Fl q ルールを 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 fwd ipaddr Op ,port マッチしたパケットの次のホップを .Ar ipaddr に変更します。これはドット付き 4 つ組の IP アドレスでもホスト名でもよいです。 .Ar ipaddr が直接到達可能なアドレスではない場合、その IP に対して ローカルルーティングテーブルでみつかる経路を使用します。 .Ar ipaddr がローカルアドレスの場合、 リモートホストからこのシステムにパケットが到着すると、 そのパケットをローカルマシンの .Ar port に転換します。 その際、 ソケットのローカルアドレスは、 パケットの元々の宛先の IP アドレスのままとします。 これは透過的プロキシサーバのためにあります。 IP が ローカルアドレスではない場合、ポート番号は (指定されていても) 無視され、 ルールはシステムから出て行くパケットに対してのみ適用されます。 また、」 パケットローカルに生成された時にもアドレスをローカルポートにマップします。 検索はルールがマッチしたときに終了します。 ポート番号が与えられなかった場合、パケット中のポート番号が使用され、 外部マシンのポート Y へのパケットは ローカルポート Y へ転送されます。 カーネルは、 オプション IPFIREWALL_FORWARD 付きでコンパイルされている必要があります。 .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 ネットワーク越しにログインしている場合、KLD 版の .Nm をロードすることはそれほど単純なことではありません。 以下のコマンドを奨めます。 .Bd -literal -offset center kldload /modules/ipfw.ko && \e ipfw add 32000 allow all from any to any .Ed .Pp これに引続き、同じような状況で .Bd -literal -offset center ipfw flush .Ed .Pp とするのは良くありません。 .Pp システムセキュリティレベルが 3 以上に設定されている場合、 IP フィルタリストを変更できません (システムセキュリティレベルについては .Xr init 8 を参照してください)。 .Sh パケットの行き先変更 指定されたポートを見ているソケットは、そのポートへ行き先変更されたパケットを、 全部受けとります。 .Xr divert 4 を参照して下さい。ポートを見ているソケットがない場合やカーネルがパケットの行き 先変更をサポートするようにはコンパイルされていない場合、パケットは破棄されます 。 .Sh 使用例 次のコマンドは .Em cracker.evil.org から .Em wolf.tambov.su の telnet ポートへ送られる全ての TCP パケットを拒否するルールを追加します。 .Pp .Dl ipfw add deny tcp from cracker.evil.org to wolf.tambov.su 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 cpp 1 , .Xr m4 1 , .Xr divert 4 , .Xr ip 4 , .Xr ipfirewall 4 , .Xr protocols 5 , .Xr services 5 , .Xr init 8 , .Xr kldload 8 , .Xr reboot 8 , .Xr sysctl 8 , .Xr syslogd 8 .Sh バグ .Pp .Em WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!! .Pp このプログラムはコンピュータをかなり使いにくい状態にしてしまう可能性があります 。 はじめて使用する時はコンソール上で実行し、理解していない操作は .Em 絶対に実行しない ようにして下さい。 .Pp 連続したエントリの操作もしくは追加に際し、サービス名やプロトコル名は使用できま せん。 .Pp 入ってきたパケットの断片(フラグメント)が .Ar divert によって行き先を変更されると、ソケットに配送される前に、組み立て直しをします。 それに対し、 .Ar tee を経由した断片(フラグメント)は、組み立て直しされません。 .Pp ポートの別名でダッシュ (-) を含むものは、リストの最初には書けません。 .Pp ``tee'' アクションは未実装です。 .Sh 作者 .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/joy.8 b/ja/man/man8/joy.8 index b6627cbeb5..9dd78128ce 100644 --- a/ja/man/man8/joy.8 +++ b/ja/man/man8/joy.8 @@ -1,46 +1,46 @@ .\" .\" Copyright (c) 1996 Jean-Marc Zucconi .\" 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 THE DEVELOPERS ``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 DEVELOPERS 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: joy.8,v 1.4.2.1 1999/04/06 13:55:20 ghelmer Exp % +.\" %Id: joy.8,v 1.4.2.2 1999/04/23 16:15:39 ghelmer Exp % .\" .\" jpman %Id: joy.8,v 1.3 1997/07/22 16:48:04 horikawa Stab % .Dd March 16, 1996 .Dt JOY 8 .Os FreeBSD .Sh 名称 .Nm joy .Nd ジョイスティックドライバのカーネルモジュールを読み込む。 .Sh 書式 .Nm joy .Sh 解説 .Nm は、ジョイスティックドライバのカーネルモジュールを読み込みます。 .Sh 関連ファイル .Bl -tag -width /modules/joy.ko .It Pa /modules/joy.ko ジョイスティックの読み込み可能カーネルモジュール .Sh 関連項目 .Xr joy 4 , -.\"no equivalent for kld's yet":.Xr lkm 4 , +.Xr kld 4 , .Xr kldload 8 diff --git a/ja/man/man8/linux.8 b/ja/man/man8/linux.8 index ebf498fdf5..693d7d2e12 100644 --- a/ja/man/man8/linux.8 +++ b/ja/man/man8/linux.8 @@ -1,47 +1,47 @@ .\" .\" Copyright (c) 1997 .\" The FreeBSD Project. 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 THE DEVELOPERS ``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 DEVELOPERS 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: linux.8,v 1.3.2.1 1999/04/06 13:51:38 ghelmer Exp % +.\" %Id: linux.8,v 1.3.2.2 1999/04/23 16:15:50 ghelmer Exp % .\" .\" jpman %Id: linux.8,v 1.3 1997/07/22 16:50:43 horikawa Stab % .Dd January 9, 1997 .Dt LINUX 8 .Os FreeBSD .Sh 名称 .Nm linux .Nd Linux エミュレータのカーネルモジュールを読み込む .Sh 書式 .Nm linux .Sh 解説 .Nm は、Linux エミュレータのカーネルモジュールを読み込みます。 .Sh 関連ファイル .Bl -tag -width /modules/linux.ko .It Pa /modules/linux.ko Linux エミュレータの読み込み可能カーネルモジュール .Sh 関連項目 -.\"Can't find equivalent for modules (n_hibma@freebsd.org):.Xr lkm 4 , +.Xr kld 4 , .Xr kldload 8 , .Xr kldunload 8 , .Xr kldstat 8 diff --git a/ja/man/man8/mount_cd9660.8 b/ja/man/man8/mount_cd9660.8 index 6d8180e0b3..25ae416fe4 100644 --- a/ja/man/man8/mount_cd9660.8 +++ b/ja/man/man8/mount_cd9660.8 @@ -1,122 +1,124 @@ .\" Copyright (c) 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" Christopher G. Demetriou. .\" .\" 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_cd9660.8 8.3 (Berkeley) 3/27/94 .\" jpman %Id: mount_cd9660.8,v 1.2 1997/04/12 15:50:31 horikawa Stab % .Dd March 27, 1994 .Dt MOUNT_CD9660 8 .Os BSD 4 .Sh 名称 .Nm mount_cd9660 .Nd ISO-9660 ファイルシステムのマウント .Sh 書式 .Nm mount_cd9660 .Op Fl egrv .Op Fl o Ar options .Op Fl s Ar startsector .Ar special | node .Sh 解説 .Nm コマンドは、デバイス名 .Pa special 上の ISO-9660 ファイルシステムを、 グローバルファイルシステムの名前空間の .Pa node の示す位置に接続します。 通常このコマンドは、ブート時に .Xr mount 8 によって実行されます。 .Pp オプションは、次の通りです: .Bl -tag -width indent .It Fl e 拡張属性を使用します。 .It Fl g ファイルのバージョン番号を取り除きません (デフォルトでは、ディスク上に 異なったバージョン番号を持つファイルが存在する場合、最新のものだけが 見えます)。 どちらの場合でも、明示的にバージョン番号を指定しなくてもファイルを オープンする事が出来ます。 +.It Fl j +ファイルシステムに含まれる Joliet 拡張を使用しません。 .It Fl o .Fl o フラグの後には、コンマで区切ったオプション文字列を指定することができます。 指定可能なオプションとその意味は、 .Xr mount 8 マニュアルページを参照して下さい。 .It Fl r ファイルシステムに含まれるロックリッジ拡張 (Rockridge extension) を 使用しません。 .It Fl s Ar startsector ファイルシステム開始位置を .Ar startsector とします。 通常、対象のデバイスが CD-ROM ドライブの場合、 .Nm はデータを持つ CD-ROM の最後のトラックを見つけて、 ファイルシステム開始位置をそこであるとします。 デバイスが CD-ROM でない場合もしくは目録が判明しない場合、 ファイルシステムはセクタ 0 から開始されます。 このオプションはこの動作を変更するものです。 .Ar startsector は CD-ROM ブロック、すなわち 2048 バイトが単位であることに注意して下さい。 これは .Xr cdcontrol 8 の .Cm info コマンドノ例が示す通りです。 .It Fl v どのセクタから開始するかについての決定について冗長に報告します。 .El .Sh 関連項目 .Xr mount 2 , .Xr unmount 2 , .Xr fstab 5 , .Xr cdcontrol 8 , .Xr mount 8 .Sh バグ POSIX デバイスノードマッピングは、現在サポートしていません。 .Pp ロックリッジ拡張 (Rockridge extension) で使用している場合、 バージョン番号を取り除きません。 この場合、ロックリッジ名を持たないファイルをバージョン番号なしで アクセスすると、バージョン番号の最も大きいファイルではなく、 小さいファイルをアクセスします。 .Pp ECMA はサポートしていません。 .Sh 歴史 .Nm ユーティリティは、 .Bx 4.4 で最初に登場しました。 diff --git a/ja/man/man8/nologin.8 b/ja/man/man8/nologin.8 index f7f50635fa..b93f2e31ea 100644 --- a/ja/man/man8/nologin.8 +++ b/ja/man/man8/nologin.8 @@ -1,57 +1,58 @@ .\" Copyright (c) 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. .\" .\" @(#)nologin.8 8.1 (Berkeley) 6/19/93 -.\" %Id: nologin.8,v 1.2 1998/07/15 06:37:07 charnier Exp % -.\" jpman %Id: nologin.8,v 1.2 1997/03/31 14:54:31 horikawa Stab % +.\" %Id: nologin.8,v 1.2.2.1 1999/04/29 09:45:38 jkoshy Exp % .\" +.\" jpman %Id: nologin.8,v 1.2 1997/03/31 14:54:31 horikawa Stab % .Dd June 19, 1993 .Dt NOLOGIN 8 .Os BSD 4.4 .Sh 名称 .Nm nologin .Nd 丁寧に login を断る .Sh 書式 .Nm nologin .Sh 解説 .Nm は、 そのアカウントが利用出来ない旨のメッセージを表示して、 0 でない値を返して終了します。 このコマンドは、利用不可能とするアカウントの shell フィールドを 置き換えるという用途を想定しています。 .Sh 関連項目 -.Xr login 1 +.Xr login 1 , +.Xr nologin 5 .Sh 歴史 .Nm コマンドは .Bx 4.4 から登場しています。 diff --git a/ja/man/man8/periodic.8 b/ja/man/man8/periodic.8 index b0e94dba6a..e128bcba42 100644 --- a/ja/man/man8/periodic.8 +++ b/ja/man/man8/periodic.8 @@ -1,142 +1,142 @@ .\" Copyright (c) 1997 FreeBSD, Inc. .\" 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 THE AUTHOR 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. .\" -.\" %Id: periodic.8,v 1.8 1998/12/29 22:45:15 hoek Exp % +.\" %Id: periodic.8,v 1.8.2.2 1999/04/23 18:28:10 ghelmer Exp % .\" jpman %Id: periodic.8,v 1.3 1998/10/10 09:07:49 yohta Stab % .\" .\" WORD: registry レジストリ .\" WORD: script fragment スクリプトフラグメント .\" .Dd 13 August 1997 .Os FreeBSD 3.0 .Dt PERIODIC 8 .Sh 名称 .Nm periodic .Nd 定期的なシステム機能を実行する .Sh 書式 .Nm periodic .Ao .Cm daily | weekly | monthly | .Ar path Op path ... .Ac .Sh 解説 .Nm プログラムは指定されたディレクトリにあるシェルスクリプトを実行するために、 cron(8) に呼び出されることを意図しています。 .Pp 以下の引数からひとつだけを必ず指定しなければいけません : .Bl -tag -width Fl .It Cm daily 標準的な 1 日周期の実行ファイルを実行します。 これはよく (その地域の時刻で) 朝早くに行なわれます。 .It Cm weekly 標準的な 1 週間周期の実行ファイルを実行します。 これはよく日曜日の朝に行なわれます。 .It Cm monthly 標準的な 1 ヶ月周期の実行ファイルを実行します。 これはよく月の 1 日目に行なわれます。 .It Ar path 実行すべき一連の実行ファイルがあるディレクトリの絶対パスを指定します。 .El .Pp .Nm プログラムは指定されたディレクトリ (複数指定可) にある 各実行可能ファイルを実行します。もし実行可能ビットが セットされていないファイルがあっても、無視するだけで それに関するメッセージも表示しません。 .Sh 環境変数 .Nm コマンドは環境変数 .Ev PATH をすべての標準的なシステムディレクトリを含むように設定します。 ただし、 .Pa /usr/local/bin のような追加的なディレクトリは含めません。もし他のパスに 依存するような実行ファイルを加えるなら、それぞれの実行ファイルが 自己の環境変数を適切に設定する責任を負う必要があります。 .Sh 関連ファイル .Bl -tag -width /etc/periodic .It Pa /etc/crontab 典型的な .Nm プログラムの呼び出しはシステムのデフォルト cron テーブル内の エントリから行なわれます。 .It Pa /etc/periodic サブディレクトリとして .Pa daily , .Pa weekly , .Pa monthly を含む上層のディレクトリです。これらのサブディレクトリには システムの標準的な定期的実行ファイルが置かれます。 .It Pa /etc/rc.conf .Pa rc.conf システムレジストリは変数 .Va local_periodic を含みます。これは .Pa /usr/local/etc/periodic や .Pa /usr/X11R6/etc/periodic などのような、定期的に実行する標準の上層ディレクトリを 追加指定するのに使用できます。 .El .Sh 使用例 システム crontab には下の例のような .Nm のエントリが記述されているはずです : .Pp .Dl # do daily/weekly/monthly maintenance .Dl 0 2 * * * root periodic daily 2>&1 .Dl 0 3 * * 6 root periodic weekly 2>&1 .Dl 0 5 1 * * root periodic monthly 2>&1 .Pp さらに、典型的なシステムレジストリには変数 -.Va local_cron +.Va local_periodic について次のように記述してあるでしょう : -.Dl local_cron="/usr/local/etc/periodic /usr/X11R6/etc/periodic" # cron script dirs. +.Dl local_periodic="/usr/local/etc/periodic /usr/X11R6/etc/periodic" # cron script dirs. .Sh 関連項目 .Xr sh 1 , .Xr crontab 5 , .Xr rc.conf 5 , .Xr cron 8 .Rs .Sh 診断 終了状態は成功時には 0 です。もし以下のいずれかの理由で コマンドが失敗すれば、終了状態は 1 になります : .Bl -diag .It usage: periodic スクリプトフラグメントがどこにあるかを指定する ディレクトリパス引数が .Nm に渡されませんでした。 .It not found 説明するまでもありません。(訳注: 指定したディレクトリが見つかりません。) .El .Sh 歴史 .Nm プログラムは .Fx 3.0 に初めて登場しました。 .Sh 作者 .An Paul Traina Aq pst@FreeBSD.org diff --git a/ja/man/man8/ppp.8 b/ja/man/man8/ppp.8 index e9a8bb447a..58179ecb8f 100644 --- a/ja/man/man8/ppp.8 +++ b/ja/man/man8/ppp.8 @@ -1,4686 +1,4691 @@ -.\" %Id: ppp.8,v 1.142.2.3 1999/03/24 18:03:12 brian Exp % +.\" %Id: ppp.8,v 1.142.2.5 1999/04/23 13:46:28 brian Exp % .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .\" WORD: expect string 受信待ち文字列 (chat.8) .\" WORD: negotiation 交渉 .Dd 20 September 1995 .nr XX \w'\fC00' .Os FreeBSD .Dt PPP 8 .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Oo .Fl auto | .Fl background | .Fl ddial | .Fl direct | .Fl dedicated .Oc .Op Fl alias .Op Ar system Ns .No ... .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 クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It パケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP (rfc 1994) による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice は、集中データベースまたは分散データベースに、 ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Pa libradius が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP をサポート デバイス名が .Em host Ns No : Ns Em port 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、データ転送のための TCP 接続を開きます。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを 交渉することができます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 次のコマンドラインスイッチを .Nm ppp は理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクにデスクリプタ 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm はコマンドラインで指定されたシステムをロードし、対話プロンプトを提供します。 .It Fl alias このフラグは .Nm のモードを制御しません。 .Dq enable alias yes と等価です。さらに、 .Fl auto もまた指定されている場合、暗黙的に .Dq enable iface-alias が実行されます。 詳細については後述しているものを参照してください。 .Pp IP エイリアシングを有効にすると、 .Nm は、内部 LAN 上の全マシンに対する NAT もしくはマスカレーディングエンジンとして動作します。詳細は .Xr libalias 3 を参照してください。 .El .Pp さらに、1 つ以上の system をコマンドライン上に指定可能です。 .Sq system は .Pa /etc/ppp/ppp.conf の設定エントリです。起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Pp .Fl auto , .Fl background , .Fl ddial , .Fl direct , .Fl dedicated , .Fl interactive のいずれか 1 つのスイッチのみ指定可能です。 .Nm の .Sq モード は、 .Dq set mode コマンド (後述) を使用することで後で変更可能です。 .Pp 以降、対話モードの使用方法について説明します。 .Pp 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていなければ なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。 もし含まれていない場合や複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .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 シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは .Pq Xr named 8 を用いて ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq name-server 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm ppp のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 .Pq set to Dq none されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のモデム設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show modem Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接モデムと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらの開始交渉を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、交渉開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先との交渉に成功しなかったことをを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show modem * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時に交渉する場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .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 Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェースに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルの交渉に成功し、使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 .Po たとえば、 .Dq set server +3000 mypasswd とすると .Pc 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar maxinc は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar maxinc のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 .It Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .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 のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .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 を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの 交渉を有効にすることが可能です。 下記の記述を参照してください。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm ppp で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap .Pq もしくはその両方 を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号交渉時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669 .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバと交渉できないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .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/24 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 .Ar MyAuthPasswd が .Pq Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .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 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0/24 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 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 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 パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Oo .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Oo Ar proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Oc .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 19 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny のいずれかです。 もし、あるパケットがルールに一致した場合、 結びつけられた action が直ちに実行されます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .It .Ar proto は .Sq icmp , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It パケットにマッチするルールが無い場合は、パケットは破棄 (ブロック) されます。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 .Pp 3 分 です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Pq 接続相手が両方のプロトコルをサポートしていると仮定しています。 .Pp デフォルトでは、DEFLATE について交渉するときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を 交渉に使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE 交渉を成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .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 上の例の意味は次の通りです: .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 アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .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 コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります。 .Pq Dq \&: : .Bd -literal -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .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 秒以内に受信できなければ、 もう 1 度 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 または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** Ns が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp FreeBSD では cuaa0 が 1 つめのシリアルポートになります。 OpenBSD で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 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 プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Pp .Ed ローカル DNS を走らせている場合には、これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: 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 XX .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 .El .Pp .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname .Pq と Sq authkey について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続の交渉を行います。 .Pp デフォルトでは .Po .Sq deflink と呼ばれる .Pc ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 link deflink remove .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードで交渉をすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードの交渉を行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width XX .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手と交渉するかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width XX .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は非常に良く似たフィールドを持ちますので、 簡単に圧縮可能です。 .It chap Ns Op \&05 デフォルト: 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" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、MS-CHAP 認証を要求することは 決してありません。 .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 Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd と交渉する能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとの交渉を許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS 交渉を許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、ppp は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注釈: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .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 と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) の交渉を行うために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードの交渉時に .Pq 12 ビットの 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手と交渉しません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティック経路 リストは依然として保守されます。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq modem のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl alias が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 IP エイリアシングが有効な場合のみ .Pq Dq alias enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを IP エイリアスエンジン .Pq Xr libalias 5 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq alias enable off として IP エイリアシングを disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op \&! .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add! コマンド .Po .Dq \&! に注意 .Pc 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR もしくは .Dq MYADDR を含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR もしくは .Dv MYADDR の値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 ユーザレベルでのアクセスは可能であり、 設定ファイルのラベルと .Nm の実行モードに依存します。 例えば、ユーザ .Sq fred のみがラベル .Sq fredlabel に .Fl background モードでアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width XX .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドが指定されると、 .Dq allow users が記載されているセクションに列挙されているユーザのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。後続する .Dq allow users コマンドは、先行するコマンドに優先します。 あるラベル以外のすべてにアクセスを許すことが可能であり、 そのためにはデフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをこのあるラベルに指定します。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It alias Ar command Op Ar args このコマンドは .Nm 組込みのエイリアシング (マスカレーディング) 機能を 制御するために使用します。 あなたのシステムでエイリアシングが有効になると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width XX .It alias enable Op yes|no エイリアシングを有効もしくは無効にします。 .Fl alias コマンドラインフラグは .Dq alias enable yes と同じ意味です。 .It alias addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It alias deny_incoming Op yes|no yes に設定すると、 ファイアウォールとほぼ同様にパケットを落とすことにより、 このコマンドは全入力接続を拒否します。 .It alias help|? このコマンドは、使用可能な alias コマンドのまとめを表示します。 .It alias log Op yes|no このオプションは、alias の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 -.It alias port Xo -.Op Ar proto -.Ar targetIP Ns No \&: Ns Ar targetPORT -.Op Ar aliasIP Ns No \&: Ns -.Ar aliasPORT +.It alias port Ar proto Ar targetIP Ns Xo +.No : Ns Ar port Ns +.Oo +.No - Ns Ar port +.Oc Ar aliasport Ns +.Oo +.No - Ns Ar aliasport Ns +.Oc .Xc -このコマンドにより、 -マシン -.Ar aliasIP -の -.Ar aliasPORT -へ到着する接続を、 +このコマンドは、ポート +.Ar aliasport +への入力の +.Ar proto +接続を、 .Ar targetIP -の -.Ar targetPORT +のポート +.Ar port へリダイレクトします。 -.Ar aliasIP -のデフォルトは、現在のインタフェースアドレスです。 .Ar proto -は -.Sq tcp -もしくは -.Sq udp -のいずれかで、指定したプロトコルの接続のみマッチします。 +は、 +.Dq tcp +または +.Dq udp +です。 +.Pp +ポート番号の範囲は、前述のように指定可能です。 +範囲は同じ大きさであることが必用です。 +.Pp あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 -.It "alias pptp" Op Ar addr +しかし、ポートあたり内部マシン 1 台のみに接続可能という制限があります。 +.It alias pptp Op Ar addr すべての .Em G Ns No eneral .Em R Ns No outing .Em E Ns No encapsulated .Pq Dv IPPROTO_GRE パケットを、ローカルインタフェースアドレスではなく .Ar addr を使用することにより、 .Nm にエイリアスさせます。 これは、マシンの内部ネットワーク上で .Em P Ns No oint to .Em P Ns No oint .Em T Ns No unneling .Em P Ns No rotocol の使用を許します。 .Pp .Ar addr を指定しないと、 .Dv PPTP エイリアスは無効になります。 .It "alias proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It alias same_ports Op yes|no 有効になると、 エイリアスライブラリが出力パケットのポート番号を変更しようとすることを 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It alias use_sockets Op yes|no 有効になると、 エイリアスライブラリにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It alias unregistered_only Op yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.alias ファイル中でも議論されています。 .Pp .It Op \&! Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear modem|ipcp Op current|overall|peak... .Dq modem もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op \&! 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term .Pq 後述 を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq \&! が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP 交渉を開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op \&! .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete! コマンドが使用された場合 .Po 最後の .Dq \&! に注意 .Pc 、存在しない経路について .Nm は文句を言わなくなります。 .It dial|call Op Ar label 引数なしで使用された場合、このコマンドは .Dq open コマンドと同一です。 .Ar label が 1 つ以上指定された場合、最初に .Dq load が実行されます。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、モデムはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op \&! .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op \&! .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm ppp が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width XX .It iface add[!] Ar addr[[/bits| mask] peer] 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です .Pq addr との間に空白を入れてはなりません 。指定したアドレスが既に存在する場合、 .Dq \&! を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP 交渉されたアドレス以外の全アドレスがインタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op \&! Ns .No |rm Ns Op \&! .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq \&! が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 .Dq open コマンドを引数なしで用いることは .Dq dial を引数なしで用いることと同一です。 すなわちすべての閉じられたリンクが、現在の設定を用いて起動されます ( .Dq set autoload コマンドに基づいた自動リンクの中には起動されないものもあります)。 .Pp LCP 層がすでにオープンされているときに .Dq lcp を指定すると、LCP は再度交渉されます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度交渉された後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度交渉されます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度交渉され、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It save このオプションは (まだ) 実装されていません。 .It set Ns Xo .No Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width XX .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手と交渉され、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP の交渉で使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\P シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq \& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp .Dq \&! を無視し、前述の .Dq !bg コマンドと同様に特殊な名前を同様に置換しながら、 .Ar value は実行すべきプログラムとしてパーズされます。 プログラムを実行すると、 .Nm はこのプログラムに対して 3 行の入力を与えます。 各行は改行文字で終了しています: .Bl -bullet .It CHAP チャレンジに含めて送られるホスト名。 .It CHAP チャレンジに含めて送られるチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp 2 行の出力が期待されています: .Bl -bullet .It CHAP 応答と共に送るべき .Dq authname 。 .It チャレンジと要求 ID で暗号化した .Dq authkey であり、応答は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることが期待されます。 指定されたチャレンジに対する適切な秘密情報を、 暗号化デバイスまたは Secure ID カードが計算することが求められています。 .It set authname Ar id クライアントモードでの PAP または CHAP の交渉で使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar max-duration max-load Op Ar min-duration min-load .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はすべて 0 です。 1 つ以上の .Ar demand-dial .Po .Fl auto としても知られる .Pc モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクは、 .Ar max-duration 秒の間、送出キューに .Ar max-load 以上のパケットが存在した場合にのみ開かれます。 両方のデフォルト値が 0 であるため、 .Ar demand-dial リンクはデフォルトでは 1 つだけオープンされます。 .Pp 複数のリンクが開かれていて、少なくともその内の 1 つが .Ar demand-dial リンクである場合、 .Ar min-duration 秒の間、送出キューに最大 .Ar min-packets 未満のパケットしか存在しなかったときに閉じられます。 .Ar min-duration が 0 の場合には、タイマは無効になります。 デフォルトでは両方の値が 0 であるため、 .Ar demand-dial リンクはバンドルされたアイドルタイマが期限切れになるまで アクティブであり続けます。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードで、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、これを指定する必要があります。 .El .Pp .It set cbcp Oo Xo .No *| Ns Ar number Ns No .Oo .No , Ns Ar number Ns .Oc .No ... .Op Ar delay Op Ar retry .Oc .Xc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Ar seconds Ns Op \&! 通常、ログインスクリプト完了の 1 秒後に、 .Nm はキャリアの存在をチェックします。 キャリアが設定されていないと、 デバイスがキャリアをサポートしていない (ほとんどのヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実を記録して、キャリアのチェックを止めます。 しかし、モデムによってはキャリアのアサートに時間がかかるものがあるので、 リンクが落ちたときを .Nm ppp は検知できなくなります。 .Ar seconds は、ログインスクリプトが完了してから最初のキャリアチェックを行う前に、 .Nm が待つべき秒数を指定します。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq \&! がある場合、 .Nm はキャリアを .Em 要求 します。 最初のチェックでキャリアを検知しないと、リンクは切断されているとみなされます。 .Pp リンクが tty でない場合、キャリアの .Em 必要性 は無視されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 20 パケット (マルチリンクモードでは .Em 20 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 全シリアルデバイス名は .Pa /dev/ から始まることが仮定されています。 .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq \&! から始めるか、 .Dq host:port の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .Dq host:port の組が与えられる場合、 .Nm は、指定された .Dq host の指定された .Dq port と接続しようとします。 詳細は上述の .Em PPP オーバ TCP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -unfilled -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 が対話モードで実行されている場合、ファイルデスクリプタ 3 は .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 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP 交渉の前に設定されると、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bd -unfilled -offset indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前に交渉されますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .Ed .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny .Oo Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc Oo tcp|udp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Oc .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングは、 エイリアスエンジンが行う IP 変更の前に適用されます。 デフォルトでは、全フィルタセットが全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script モデムを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp .Ar hisaddr に IP 番号の範囲として .Bd -literal -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc No ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP 接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP 交渉で使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装と交渉するときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP 交渉で使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp .Po PAP か CHAP が .Dq enable である場合 .Pc クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手との交渉を避けるために、 どのような交渉セッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注釈: コマンド .Dq set mode auto を発行し、IP エイリアシングが enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP 交渉を有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Op Ar value デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 引数が指定されないと、1500 が仮定されます。 .It set mtu Op Ar value デフォルトの MTU は 1500 です。 交渉時に、(296 バイト未満でなければ) 相手が望むいかなる MRU および MRRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU/MRRU の値を受け付けなくなります。 交渉が完了すると、相手がより大きな MRU/MRRU を要求していたとしても、 インタフェースに対して MTU が割り当てられます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar 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 Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP 交渉で合意された相手の MRU より小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP 交渉において .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar maxinc 回だけです。 .Ar maxinc のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq \&! を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set server|socket Ar TcpPort|LocalName|none password Op Ar mask このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定する必要があります。 .Sq 0 から始まる 4 桁 8 進数で指定します。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd コマンドを使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed Ar value シリアルデバイスの速度を指定します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮を交渉するか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手と交渉をします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 20 .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 .Po Dq iface show と同じです .Pc を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show modem 現在の下位レベルリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はモデムに送られます。 モデムから読んだ文字はスクリーンに表示されます。 モデムの相手側に .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq alias ? , .Dq enable ? , .Dq set ? , .Dq show ? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It http://www.FreeBSD.org/FAQ/userppp.html .It http://www.FreeBSD.org/handbook/userppp.html .El .Pp .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width XX .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/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr libalias 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr route 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、 FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。 .Pp 1997 年中に Brian Somers (brian@Awfulhak.org) が本格的な修正をし、 11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを Brian Somers が書き直しました。 diff --git a/ja/man/man8/ypset.8 b/ja/man/man8/ypset.8 index e951f543ab..aebbc481fe 100644 --- a/ja/man/man8/ypset.8 +++ b/ja/man/man8/ypset.8 @@ -1,89 +1,89 @@ .\" .\" Copyright (c) 1994 Jason R. Thorpe .\" 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 Jason Thorpe. .\" 4. 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 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: ypset.8,v 1.6 1998/03/23 08:31:20 charnier Exp % .\" jpman %Id: ypset.8,v 1.2 1997/04/06 14:59:23 horikawa Stab % .\" .Dd October 25, 1994 .Dt YPSET 8 .Os .Sh 名称 .Nm ypset .Nd .Xr ypbind 8 に使用すべき YP サーバを指示する .Sh 書式 .Nm ypset .Op Fl h Ar host .Op Fl d Ar domain .Ar server .Sh 解説 .Nm ypset は、同一マシン上の .Xr ypbind 8 プロセスに、通信すべき YP サーバプロセスを指示します。 もし .Ar server がダウンしていたり YP サーバプロセスが動作していない場合、 YP クライアントプロセスが YP マップにアクセスしようと試みるまでは検知されません。 YP マップをアクセスしようとした時に、 .Xr ypbind 8 はバインドをテストして適切な処理を行います。 .Pp .Nm ypset は、最も近い YP サーバともブロードキャストネットワークが異なる YP クライアントをバインドする場合に最も有用ですが、 ローカルなネットワークの YP の構成をデバッグする場合、 特定の YP クライアントのプログラムをテストする場合、 ローカルネットワークに存在する複数の YP サーバの中から 特定のサーバにバインドする場合にも使用できます。 .Pp オプションは以下の通りです: .Bl -tag -width flag .It Fl h Ar host ローカルマシンではなく、指定したホスト .Ar host にバインドします。 .It Fl d Ar domain .Xr domainname 1 が返すデフォルトドメインではなく、指定した YP ドメイン .Ar domain を使用します。 .El .Sh 関連項目 .Xr domainname 1 , -.Xr yp 4 .Xr ypcat 1 , .Xr ypmatch 1 , +.Xr yp 4 , .Xr ypbind 8 , .Sh 作者 .An Theo De Raadt diff --git a/ja_JP.eucJP/man/man1/login.1 b/ja_JP.eucJP/man/man1/login.1 index 6bc248f021..deb56386a4 100644 --- a/ja_JP.eucJP/man/man1/login.1 +++ b/ja_JP.eucJP/man/man1/login.1 @@ -1,192 +1,193 @@ .\" %NetBSD: login.1,v 1.5 1994/12/23 06:53:00 jtc Exp % .\" .\" 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. .\" .\" @(#)login.1 8.2 (Berkeley) 5/5/94 -.\" %Id: login.1,v 1.13 1999/01/11 09:07:42 asami Exp % -.\" jpman %Id: login.1,v 1.3 1997/05/19 16:39:53 horikawa Stab % +.\" %Id: login.1,v 1.13.2.1 1999/04/29 09:42:21 jkoshy Exp % .\" +.\" jpman %Id: login.1,v 1.3 1997/05/19 16:39:53 horikawa Stab % .Dd May 5, 1994 .Dt LOGIN 1 .Os BSD 4 .Sh 名称 .Nm login .Nd 指定したユーザでログインする .Sh 書式 .Nm .Op Fl fp .Op Fl h Ar hostname .Op Ar user .Sh 解説 .Nm は、指定したユーザでログインするものです。 .Pp user を指定しなかった場合、もしくは指定した user でのログインに失敗した ときには、 .Nm は、再度ユーザ名の入力を求めるプロンプトを表示します。 ユーザの確認は入力されたパスワードにより行われます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl f パスワードによるユーザの確認を省略します。このオプションは、スーパーユーザ か、すでにログインしているユーザが同じユーザ名で login を実行す るときのみ指定可能です。 .It Fl h コネクションを受信可能なホスト名を指定します。この機能は .Xr telnetd 8 などのデーモンによって使われています。このオプションはスーパーユーザ しか指定することができません。 .It Fl p .Nm は、デフォルトでは実行時の環境 (環境変数など) を引き継ぎ ませんが、このオプションを指定すると、実行時の環境を引き継ぎます。 .El .Pp もし .Pa /var/run/nologin ファイルが存在した場合、 .Nm はそのファイル内容 を表示してログイン処理をせずに終了します。この機能は .Xr shutdown 8 で使用されており、システムの終了処理実行中にユーザがログインしないよう にしています。 .Pp もし .Pa /etc/login.access ファイルが存在した場合、 .Nm はそのファイルから、ユーザとホストの組が特別に許可されている、もしくは 拒否されているかどうかをチェックします。 .Pp もし .Pa /etc/fbtab ファイルが存在した場合、 .Nm はそのファイルに記述された幾つかのデバイスのプロテクトと所有者を変えます。 .Pp ファイル .Pa /etc/skeykeys が存在する場合、このファイル中にユーザのエントリが存在する時には、 .Nm は S/key パスワード認証を行います。 .Pa /etc/skey.access により、 接続元のホストやネットワークに応じて S/key パスワード使用の義務を制御します。 .Pp 通常、ユーザがログインすると、 .Nm はシステムのコピーライト表示、 ユーザが最後にログインした日付と時間、その日のメッセージなどの 情報を表示します。ただし、ユーザのホームディレクトリに .Dq Pa .hushlogin というファイルが存在した場合は、これらのメッセージを表示 しないようにします (これは .Xr uucp 1 のようなプログラムがユーザとしてログインするためにあります)。 このあと、 .Nm は .Xr wtmp 5 と .Xr utmp 5 ファイルに記録し、ユーザのコマンドインタプリタ (シェル) を起動します。 .Pp なお、環境変数 ( .Xr environ 7 ) HOME, SHELL, PATH, TERM, LOGNAME, USER は .Nm によりセットされます。 他の環境変数はログインクラスケーパビリティデータベースの エントリにより設定されるかも知れません。 ログインクラスはユーザのシステムパスワードレコードに割り当てられています。 ログインクラスは、当該ログインに許された最大および現在の資源制約、 プロセス優先度や他の多くのユーザログイン環境を制御します。 .Pp 標準シェルである .Xr csh 1 と .Xr sh 1 は、 .Nm が実行されてから起動します。 .Sh 関連ファイル .Bl -tag -width /var/mail/userXXX -compact .It Pa /etc/fbtab デバイスのプロテクトの変更 .It Pa /etc/login.access ログインアクセス制御表 .It Pa /etc/login.conf ログインクラスケーパビリティデータベース .It Pa /etc/motd ログイン時に最初に表示するメッセージ .It Pa /var/run/nologin ログインを拒否する時に表示するメッセージ .It Pa /etc/skey.access skey パスワード制御表 .It Pa /etc/skeykeys skey パスワードデータベース .It Pa /var/run/utmp 現在のログイン状況 .It Pa /var/log/lastlog 最後にログインした記録 last login account records .It Pa /var/log/wtmp ログイン・ログアウト状況 .It Pa /var/mail/user ユーザごとのメイルボックス .It Pa \&.hushlogin ログインメッセージを抑止するファイル .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr chpass 1 , .Xr passwd 1 , .Xr rlogin 1 , .Xr skey 1 , .Xr getpass 3 , .Xr fbtab 5 , .Xr login.access 5 , .Xr login.conf 5 , +.Xr nologin 5 , .Xr skey.access 5 , .Xr utmp 5 , .Xr environ 7 , .Xr nologin 8 , .Xr pam 8 .Sh 歴史 .Nm login ユーティリティは .At v6 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/ls.1 b/ja_JP.eucJP/man/man1/ls.1 index 2236aec4eb..80cb96df0e 100644 --- a/ja_JP.eucJP/man/man1/ls.1 +++ b/ja_JP.eucJP/man/man1/ls.1 @@ -1,376 +1,377 @@ .\" Copyright (c) 1980, 1990, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" 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. .\" .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 -.\" %Id: ls.1,v 1.26 1998/11/30 22:56:44 billf Exp % -.\" jpman %Id: ls.1,v 1.3 1997/05/19 17:21:06 horikawa Stab % +.\" %Id: ls.1,v 1.26.2.1 1999/04/27 23:34:21 hoek Exp % .\" +.\" jpman %Id: ls.1,v 1.3 1997/05/19 17:21:06 horikawa Stab % .Dd July 29, 1994 .Dt LS 1 .Os .Sh 名称 .Nm ls .Nd ディレクトリの内容のリストを表示する .Sh 書式 .Nm ls .Op Fl ABCFHLPRTWabcdfgikloqrstu1 .Op Ar file ... .Sh 解説 .Nm は .Ar file で指定されたファイル名およびオプションの指定にしたがって、 ファイルに関する各種の情報を表示します。なお、 .Ar file としてディレクトリが指定された場合は、そのディレクトリ配下のファイル に関する情報を表示します。 .Pp .Ar file が指定されなかった場合は、カレントディレクトリのファイルを表示します。 表示はファイル名のアルファベット順にソートされます。ただし、 .Ar file としてディレクトリファイルとそれ以外のファイルを混在して指定した 場合は、ディレクトリ以外のファイルが先に表示され、その後 ディレクトリ配下のファイルが表示されます。 .Pp オプションとしては、以下のものがあります。 .Bl -tag -width indent .It Fl A .Ql \&. と .Ql \&.. を除く全てのエントリを表示します。スーパユーザの場合は、通常 このオプションがセットされています。 .It Fl B ファイル名中の非グラフィック文字を強制的に \\xxx の形式で表示します。 xxx は文字の数値であり 8 進数です。 .It Fl C マルチカラム形式で出力します。端末への出力の場合は、 これがデフォルトになります。 .It Fl F それぞれのパス名の最後に、ディレクトリならばスラッシュ (/)、 実行可能ファイルならばアスタリスク (*)、 シンボリックリンクならばアットマーク (@)、ソケットファイルならば等号 (=)、 .Tn FIFO ならば縦棒 (|) をつけて表示します。 .It Fl H コマンドラインのシンボリックリンクを追跡します。 .Fl F , .Fl d , .Fl l オプションが指定された場合、 このオプションが仮定されます。 .It Fl L 引数がシンボリックリンクファイルの場合、リンクファイル自体ではなく、 リンク先のファイルやディレクトリを表示します。 このオプションは .Fl P オプションを打ち消します。 .It Fl P 引数がシンボリックリンクの場合、リンクが参照しているオブジェクトではなく リンク自身を表示します。 このオプションは .Fl H , .Fl L オプションを打ち消します。 .It Fl R サブディレクトリを再帰的に表示します。 .It Fl T ファイルの日付と時間に関する詳細情報 (月・日・時・分・秒・年) を表示します。 .It Fl W ディレクトリ走査時にホワイトアウトも表示します。 .It Fl a ドット (.) で始まるファイルも含めて表示します。 .It Fl b .Fl B と同様ですが、可能であれば C のエスケープコードを使用します。 .It Fl c ファイルソートや時刻出力の際、ファイルステータスの最終変更日付を使用します。 .It Fl d 引数がディレクトリの場合、ディレクトリそのものの情報について表示します (再帰的に表示しません)。 .It Fl f ソートせずに表示します .It Fl g このオプションは、 .Bx 4.3 との互換性のためにだけ利用すべきです。 これは、 ロングフォーマットオプション .Pq Fl l を使ってグループの名前を表示したい時に使います。 .It Fl i 各ファイルについて、i ノード番号を表示します。 .It Fl k .Fl s オプションとともに使用し、ファイルサイズを ブロック単位ではなく K バイト単位で表示します。 このオプションは環境変数 BLOCKSIZE に優先します。 .It Fl l (``エル (L)'' の小文字)。ファイルの詳細情報をロングフォーマットで 表示します (下記参照)。 端末に出力している場合、ロングフォーマットの前の行に、全ファイル のサイズの合計値を表示します。 .It Fl o .Pq Fl l オプションによる詳細情報に、ファイルフラグも含めて表示します。 .It Fl q ファイル名に表示できない文字が使われていたとき、`?' として表示します。 端末に表示するときは、デフォルトでこの指定になります。 .It Fl r 辞書式順序で逆順または時刻の古い順にソートします。 .It Fl s 各ファイルがファイルシステム上で実際に占有している ブロック数 (512 バイト単位) を表示します。 ブロックの一部だけ占有しているものも整数値に切り上げられます。 端末に表示するときは、表示の先頭行に、全ファイルのサイズの合計値 を表示します。 環境変数 BLOCKSIZE は単位サイズ 512 バイトに優先します。 .It Fl t ファイルをアルファベット順に表示する前に、ファイルの最終修正日時の順 (新しいものほど先にくる) にソートします。 .It Fl u .Pq Fl t オプションや .Pq Fl l オプションで、ファイルの最終修正日時の代わりに、ファイルの最終アクセス日時を 使用します。 .It Fl \&1 (数字の ``1'')。 1 行につき 1 エントリの形式で表示します。 端末への出力でない場合には、これがデフォルトです。 .El .Pp .Fl 1 , .Fl C , .Fl l オプションは、互いに他を上書きします。最後に指定されたオプションが有効と なります。 .Pp .Fl c と .Fl u オプションは、互いに他を上書きします。最後に指定されたオプションが有効と なります。 .Pp .Fl B , .Fl b , .Fl q オプションは互いに優先し合う関係にあります。 最後に指定されたものが印字不可文字の書式を決定します。 .Pp .Fl H, .Fl L , .Fl P オプションは互いに優先し合う関係にあります(部分的もしくは全体的)。 指定された順序で適用されます。 .Pp デフォルトでは .Nm は標準出力に 1 行 1 エントリずつ表示します。 ただし、出力先が端末である場合および .Fl C オプションが指定された場合は別です。 .Pp .Fl i , .Fl s , .Fl l オプションが指定された場合、関連するファイルの情報は 1 個以上の空白 をあけて表示されます。 .Ss ロングフォーマット .Fl l オプションがつけられた場合、それぞれのファイルに対して以下に示す情報が 表示されます: ファイルモード・ リンク数・所有者名・所有グループ名・ ファイルのバイト数・月の短縮形・最終更新が行なわれた際の日付・時・分・ パス名。 さらに、各ディレクトリに対して、 ディレクトリ内のファイル情報が表示される直前に、 ファイルサイズの合計値が 512 バイトブロック単位で表示されます。 .Pp ファイルの修正修正時刻が 6 ヶ月以上過去もしくは未来の場合、 最終修正年が時間と分のフィールドに表示されます。 .Pp 所有者または所有グループ名が不明の場合、 ID 番号で表示されます。 .Pp ファイルがキャラクタ型もしくはブロック型の特殊ファイルである場合、 ファイルサイズフィールドには ファイルのメジャー番号とマイナー番号が表示されます。 ファイルがシンボリックリンクファイルである場合、 リンク先ファイルのパス名が .Dq \-> によって表示されます。 .Pp .Fl l オプションのもとで表示されるファイルモードは、エントリタイプ、 所有者アクセス許可、所有グループアクセス許可などで成り立っています。 エントリタイプの文字はファイルのタイプを表しており、 各文字の意味は次のとおりです: .Pp .Bl -tag -width 4n -offset indent -compact .It Sy b ブロック型特殊ファイル .It Sy c キャラクタ型特殊ファイル .It Sy d ディレクトリ .It Sy l シンボリックリンクファイル .It Sy s ソケットファイル .It Sy p .Tn FIFO .It Sy \- 通常ファイル .El .Pp 次の 3 つのフィールドは、それぞれ 3 つの文字からなっています: 所有者に対するアクセス許可・ グループに属するユーザに対するアクセス許可・ 他のユーザに対するアクセス許可。 これらのフィールドはそれぞれ 3 つの文字からなっています: .Bl -enum -offset indent .It もし .Sy r ならば読みだし可能。もし .Sy \- ならば読みだし不能。 .It もし .Sy w ならば書き込み可能。もし .Sy \- ならば書き込み不能。 .It その他の場合: 以下のうち最初に該当するものが用いられる。 .Bl -tag -width 4n -offset indent .It Sy S 所有者に対するアクセス許可において、ファイルが実行可能ではなく、かつ、 実効ユーザ ID (set-user-ID) モードがセットされている場合。 所有グループに対するアクセス許可において、ファイルが実行可能ではなく、 かつ、実効グループ ID (set-group-ID) モードがセットされている場合。 .It Sy s 所有者に対するアクセス許可において、ファイルが実行可能で、かつ、 実効ユーザ ID モードがセットされている場合。 所有グループに対するアクセス許可の中で、ファイルが実行可能で、 かつ、実効グループ ID モードがセットされている場合。 .It Sy x ファイルが実効可能またはディレクトリが検索可能である場合。 .It Sy \- ファイルは、読み出し、書き込み、実行のいずれも許可されておらず、 実効ユーザ ID も実効グループ ID もスティッキービットも設定されていない場合 (以下参照)。 .El .Pp 次の2つは他のユーザに対するアクセス許可の 3 番目の文字に使用されます。 .Bl -tag -width 4n -offset indent .It Sy T スティッキービットがセットされている (モード .Li 1000 ) が、 実行不能あるいは検索不能である場合 ( .Xr chmod 1 または .Xr sticky 8 参照)。 .It Sy t スティッキービットがセットされており (モード .Li 1000 ) 、 かつ、検索可能または実行可能である場合 ( .Xr chmod 1 または .Xr sticky 8 参照)。 .El .El .Pp .Nm ユーティリティは、成功時には 0 を、エラー発生時には 0 より大きい値を 返します。 .Sh 環境変数 以下の環境変数は .Nm の動作に影響を与えます: .Bl -tag -width BLOCKSIZE .It Ev BLOCKSIZE ブロック数の表示を行う際、1 ブロックのサイズとして環境変数 .Ev BLOCKSIZE で指定された値が使用されます ( .Fl s オプション参照)。 .It COLUMNS ターミナルのカラム幅を指定します。マルチカラム表示の際、 1 行あたりいくつのファイル名を表示できるかを算出するために参照されます ( .Fl C 参照)。 .It Ev TZ 日時を表示するときに使われるタイムゾーンを指定します。 詳細は .Xr environ 7 を参照してください。 .It Ev LS_COLWIDTHS この変数が設定されている場合、 コロン区切りのリストで各フィールドの最小幅を指定しているものとみなされます。 適切でなかったり不十分だったりする幅は無視されます (よって 0 を指定すると、フィールド幅が動的に決まります)。 すべてのフィールドの幅を変えられるわけではありません。 フィールドの順序は次の通りです: iノード・ブロック数・リンク数・ユーザ名・グループ名・フラグ・ファイルサイズ・ ファイル名。 .El .Sh 互換性 .St -p1003.2 互換とするため、 ロングフォーマット形式の出力には所有グループ名フィールドが自動的に 含められます。 .Sh 関連項目 +.Xr chflags 1 , .Xr chmod 1 , .Xr symlink 7 , .Xr sticky 8 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 .Sh 規格 .Nm コマンドの機能は .St -p1003.2 のスーパセットであると想定しています。 .Sh バグ 過去との互換性のために、多くのオプションの関係が複雑になっています。 diff --git a/ja_JP.eucJP/man/man1/netstat.1 b/ja_JP.eucJP/man/man1/netstat.1 index f34b063a32..de4d1f61f1 100644 --- a/ja_JP.eucJP/man/man1/netstat.1 +++ b/ja_JP.eucJP/man/man1/netstat.1 @@ -1,305 +1,306 @@ .\" Copyright (c) 1983, 1990, 1992, 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: @(#)netstat.1 8.8 (Berkeley) 4/18/94 .\" jpman %Id: netstat.1,v 1.4 1997/10/11 07:45:56 horikawa Stab % .\" %Id: netstat.1,v 1.6.2.1 1994/08/06 06:32:37 mycroft Exp % .\" .Dd April 18, 1994 .Dt NETSTAT 1 .Os BSD 4.2 .Sh 名称 .Nm netstat .Nd ネットワークの状態を表示する .Sh 書式 .Nm netstat .Op Fl Aan .Op Fl f Ar address_family .Op Fl M Ar core .Op Fl N Ar system .Nm netstat .Op Fl bdghimnrs .Op Fl f Ar address_family .Op Fl M Ar core .Op Fl N Ar system .Nm netstat .Op Fl bdn .Op Fl I Ar interface .Op Fl M Ar core .Op Fl N Ar system .Op Fl w Ar wait .Nm netstat .Op Fl p Ar protocol .Op Fl M Ar core .Op Fl N Ar system .Sh 解説 .Nm netstat コマンドは、ネットワークに関連したさまざまな情報を、シンボル表示を 交えてわかりやすく表示します。 出力の形式は指定オプションによって何種類かにわかれます。 第1の形式は、プロトコルごとのアクティブソケットの一覧です。 第2の形式は、選択したオプションによる、他のネットワークのデータ構造です。 第3の形式は、コンフィギュレーションされているネットワークインタフェースの パケットトラフィックを .Ar wait で指定したインターバル毎に継続して表示します。 第4の形式は、指定したプロトコルに関する統計情報を表示します。 .Pp 本コマンドでは、以下のオプションを指定可能です。 .Bl -tag -width flag .It Fl A デフォルトの表示では、ソケットと関係したすべてのプロトコル制御ブロックの アドレスが表示されます。通常これらはデバッグに用いられます。 .It Fl a デフォルトの表示では、すべてのソケットの状態が表示されます。通常 は、サーバプロセスで利用されているソケットは表示されません。 .It Fl b 本オプションをネットワークインタフェース表示 (後述の .Fl i オプション)と併用した場合には、入力、出力したバイト数を表示します。 .It Fl d 本オプションをネットワークインタフェース表示( .Fl i オプション、もしくは後述のインターバルオプション) と併用した場合には、欠落したパケット数を併せて表示します。 .It Fl f Ar address_family 表示する統計情報あるいはアドレス制御ブロック情報を .Ar address family の指定に合致するアドレスファミリのものに限定します。 アドレスファミリについては、 .Ar inet が .Dv AF_INET (インターネットプロトコルファミリ)として、 .Ar ipx が .Dv AF_IPX として、 .Ar atalk が .Dv AF_APPLETALK (ddp) (アップルトークプロトコル)として、 .\".Ar ns .\"が .\".Dv AF_NS .\"(XEROX NSプロトコルファミリ)として、 .\".Ar iso .\"が .\".Dv AF_ISO .\"(ISOプロトコルファミリ)として、そして .Ar unix が .Dv AF_UNIX (UNIXドメインプロトコルファミリ)として解釈されます。 .It Fl g マルチキャスト(グループアドレス)ルーティングに関連した情報を表示します。 デフォルトでは、IPマルチキャスト仮想インタフェースおよびルーティング テーブルについて表示します。 .Fl s オプションが同時に指定された場合、マルチキャストルーティングについての 統計情報も表示します。 .It Fl h .Tn IMP ホストテーブルの状態を表示します(時代遅れ)。 .It Fl I Ar interface 指定したインタフェースについての情報を表示します。本オプションは、 インターバルオプション .Ar wait と同時に指定し て使われます。このインターバルオプションについての詳細は後述します。 .It Fl i 自動コンフィギュレーションされているネットワークインタフェースの状態 を表示します(静的にシステムにコンフィギュレーションされているインタ フェースについて表示しますが、ブート時にコンフィギュレーションされて いないものについては表示しません)。 .Fl a オプションが同時に指定されている場合には、各イーサネットインタフェース および各IPインタフェースアドレス について、現在使用されているマルチキャストアドレスが表示 されます。マルチキャストアドレスは、 各々対応するインタフェースアドレスに続いて表示 されます。 .It Fl M デフォルトで使用される .Pa /dev/kmem の代わりに指定した core から、ネームリストに関連する各値を 取り出します。 .It Fl m メモリ管理ルーチンによって記録されているメモリ使用の統計情報を表 示します。 (ネットワーク管理システムは、独自にメモリバッファを確保しています)。 .It Fl N .Pa /kernel のかわりに、指定したカーネルモジュールからネームリストを取り出します。 .It Fl n ネットワークアドレスを数字で表示します(通常、 .Nm netstat コマンドは、IPアドレスを可能な限りホスト名などのシンボリックなものに置 き換えようとします)。 本オプションは、どのような表示形式の場合にも使用できます。 .It Fl p Ar protocol .Ar protocol で指定したプロトコルについての統計情報を表示します。 プロトコルとしては、よく知られている名称、もしくは別名定義されている名称 を指定します。プロトコルのいくつかは .Pa /etc/protocols の中で定義されています。 +特別なプロトコル名 ``bdg'' は、ブリッジの状態を表示するために使用します。 プロトコルについて情報が表示されない場合は、通常、 報告すべき有意な数値がないことを意味します。 .Ar protocol で指定したプロトコルが未知のものである場合、もしくはそのプロトコルの統 計情報記録ルーチンがない場合には、プログラムはその旨メッセージを出しま す。 .It Fl s プロトコルごとの統計情報を表示します。 このオプションが複数指定された場合、カウンタの値がゼロのものは 表示が抑制されます。 .It Fl r ルーティングテーブルを表示します。 .Fl s オプションが同時に指定された場合には、ルーティングの統計情報について 表示します。 .It Fl w Ar wait ネットワークインタフェースの統計情報について、 .Ar wait で指定した秒ごとに定期的に表示します。 .El .Pp デフォルトのアクティブソケット表示では、ローカルおよびリモートアドレス、送 受信キューのサイズ(バイト単位)、プロトコル、そしてプロトコルの内部状態が それぞれ表示されます。 アドレス形式については、``host.port''もしくは、ソケットのアドレスが ネットワーク単位でしか特定できない場合には``network.port''という形式が採用 されます。 ホストもしくはネットワークアドレスがデータベース .Pa /etc/hosts や .Pa /etc/networks の内容にしたがって変換可能である場合、各アドレスは名前で 表示されます。このような変換が不可能な場合、もしくは .Fl n オプションが指定された場合には、アドレスはアドレスファミリに従って 数値で表示されます。 インターネットアドレスの形式についてさらに知りたい場合には、 .Xr inet 3 を参照して下さい。 特にアドレスが指定されてない場合や、アドレスがワイルドカード 指定されている場合には、その部分のアドレスやポート番号のところには ``*'' が表示されます。 .Pp インタフェース表示では、パケット転送、エラー、コリジョンに関する 累積情報を見ることができます。また、インタフェースの ネットワークアドレスおよび最大転送可能ユニットサイズ(``mtu'')も 見ることができます。 .Pp ルーティングテーブル表示では、利用可能な経路とその状態が表示 されます。各経路は、到達先ホストもしくはネットワークと、 パケットの転送(forward)に使用されるゲートウェイから成ります。 フラグフィールドは、 ルーティングに関する状態の集合が表示されます。フラグフィールドの 各フラグについては、 .Xr route 8 および .Xr route 4 を参照して下さい。 表示される文字とフラグの間の対応は以下の通りです。 .Bl -column XXXX RTF_BLACKHOLE 1 RTF_PROTO1 ルーティングフラグ#1にて特定されるプロトコル 2 RTF_PROTO2 ルーティングフラグ#2にて特定されるプロトコル 3 RTF_PROTO3 ルーティングフラグ#3にて特定されるプロトコル B RTF_BLACKHOLE 破棄されるパケット b RTF_BROADCAST ブロードキャストアドレスを表現する経路 C RTF_CLONING 新しい経路を生成する c RTF_PRCLONING 使用時に、プロトコル専用の新しい経路を生成する D RTF_DYNAMIC (リダイレクトによって)動的に生成される G RTF_GATEWAY ゲートウェイ等による中継を必要としている到達先 H RTF_HOST ホストエントリ(これ以外はネットワーク) L RTF_LLINFO アドレス変換を連動させられる正当なアドレス M RTF_MODIFIED (リダイレクトによって)動的に変更される R RTF_REJECT 到達不可能なホストもしくはネットワーク S RTF_STATIC 手動で追加された U RTF_UP 使用可能経路 W RTF_WASCLONED クローンした結果として作成された経路 X RTF_XRESOLVE 外部のdaemonがプロトコルからリンクアドレス変換を行なう .El .Pp 直接到達可能な経路は、ローカルホストにアタッチされた各インタフェースごとに 生成されます。このようなエントリのゲートウェイフィールドは、 対外インタフェースのアドレスを表します。 refcntフィールドは、使用されている経路の現在数を示します。 コネクション指向のプロトコルは、通常、コネクションの間じゅう 単一の経路を保持します。 他方で、コネクションレス型のプロトコルは、同じ到達先に対して パケットを送る場合にも、新たに経路を確保します。 useフィールドは、その経路を通って送られたパケット数を表示します。 インタフェースエントリは、その経路用に用いられる ネットワークインタフェースを表示します。 .Pp .Nm netstat が .Fl w オプションと .Ar wait インターバル引数を与えられて起動された場合、ネットワークインタフェースに 関連した統計情報を定期的に表示します。 ほとんど使われませんが、オプション指定なしで数字だけをnetstatの引数と して指定することもでき、本オプションと同様の動作をさせることができます。 しかし、この使い方は過去との互換性のためにのみ存在します。 デフォルトでは、本表示は すべてのインタフェースについてのサマリ情報からなります。 .Fl I オプションを用いることで、特定の インタフェースの情報を表示させることが可能です。 .Sh 関連項目 .Xr nfsstat 1 , .Xr ps 1 , .Xr hosts 5 , .Xr networks 5 , .Xr protocols 5 , .Xr services 5 , .Xr iostat 8 , .Xr trpt 8 , .Xr vmstat 8 .Sh 歴史 .Nm netstat コマンドは、 .Bx 4.2 にはじめて登場しました。 .\" .Sh 関連ファイル .\" .Bl -tag -width /dev/kmem -compact .\" .It Pa /netbsd .\" default kernel namelist .\" .It Pa /dev/kmem .\" default memory file .\" .El .Sh バグ エラーの概念については、定義が間違っています。 diff --git a/ja_JP.eucJP/man/man1/sh.1 b/ja_JP.eucJP/man/man1/sh.1 index 9328e91d74..10c978a3ef 100644 --- a/ja_JP.eucJP/man/man1/sh.1 +++ b/ja_JP.eucJP/man/man1/sh.1 @@ -1,1211 +1,1211 @@ .\" 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.23.2.1 1999/04/12 15:46:02 cracauer Exp % +.\" %Id: sh.1,v 1.23.2.2 1999/04/19 18:54:06 max 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 /+abCEefIimnpsTuVvx .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 + でオプションを指定することは、そのオプションを無効にすることを意味します。 .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 風のコマンド行編集機能を有効にします (それ以前に .Fl V オプションが指定された場合、それを無効にします)。 .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 T Li asynctraps 子を待つとき、即座にトラップを実行します。 本オプションが設定されていないと、 .St -p1003.2 で指定されているように、子が終了した後にトラップが実行されます。 この非標準オプションは、 シグナルをブロックする子の周囲に保護シェルを置くために有用です。 周囲のシェルは子を殺したり、 次のように、制御を tty に戻して子だけを残したりできます: .Bd -literal -offset indent sh -T -c "trap 'exit 1' 2 ; some-blocking-program" .Ed .Pp .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) をクローズします。 .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 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 それぞれのコマンドは異なる方法で実行されます。 .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) のなかの組み込みコマンドは、現在のシェルには影響を与えません。 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 コマンドは、組み込みコマンドとして実装されています。 .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 は組み込みコマンドとして 実装されています。 .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 で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .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 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) -f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Xr case 1 コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは ``!''、 ``*''、 ``?''、 ``['' です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 (``*'') は、どのような文字列とも一致します。 クエスチョンマーク文字 (``?'') は、任意の文字 1 文字と一致します。 左大括弧 (``['') は文字クラスを開始します。 文字クラスの最後は右大括弧 (``]'') です。``]'' がない場合 は、``['' は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク (``!'') を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 ``]'' を含めるには、 ``]'' を文字クラスの最初 (``!'' を 置く場合はそのあと) に置きます。 文字クラスにマイナス記号を含めるときも同様で、 リストの最初もしくは最後に置きます。 .Ss 組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 さらに、効率を上げるために組み込まれているかもしれないコマンド (例えば .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 は、シェル組み込みコマンドや関数ではない、本物の プログラムでなければなりません)。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 は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 .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)、最後に 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 モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 キー によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 関連項目 .Xr expr 1 , .Xr test 1 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja_JP.eucJP/man/man1/tcopy.1 b/ja_JP.eucJP/man/man1/tcopy.1 index 050d324077..33677a90af 100644 --- a/ja_JP.eucJP/man/man1/tcopy.1 +++ b/ja_JP.eucJP/man/man1/tcopy.1 @@ -1,90 +1,90 @@ .\" Copyright (c) 1985, 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. .\" .\" @(#)tcopy.1 8.2 (Berkeley) 4/17/94 .\" jpman %Id: tcopy.1,v 1.2 1997/03/29 11:44:52 horikawa Stab % .\" .Dd April 17, 1994 .Dt TCOPY 1 .Os BSD 4.3 .Sh 名称 .Nm tcopy .Nd 磁気テープのコピー、ベリファイを行う .Sh 書式 .Nm .Op Fl cvx .Op Fl s Ar maxblk .Oo Ar src Op Ar dest .Oc .Sh 解説 .Nm は、磁気テープのコピーのためのプログラムです。 記録したデータの終わりに 2 つのテープマークがあるような 磁気テープを想定しています。 ソーステープ (デフォルトでは -.Ar /dev/rst0 ) +.Ar /dev/rsa0 ) だけが指定された場合は、 レコードサイズとテープのファイルに関する情報を表示します。 ディスティネーションが指定された場合は、ソーステープがコピーされます。 ディスティネーションテープのブロッキングはソーステープと同じになります。 テープをコピーすると、サイズを表示する場合と同様の表示が得られます。 .Pp オプションには次のものがあります。 .Bl -tag -width s_maxblk .It Fl c .Ar src から .Ar dest へコピーした後、両方のテープが同一であることを確認するためベリファイをします。 .It Fl s Ar maxblk ブロックサイズの最大値を .Ar maxblk で指定した値にします。 .It Fl v .Ar src と .Ar dest の両方のテープが同一であることを確認するためベリファイのみを行ないます。 .It Fl x 標準出力へ全メッセージを出力します。 このオプションは .Ar dest が .Pa /dev/stdout の時に役に立ちます。 .El .Sh 関連項目 .Xr mtio 4 .Sh 歴史 .Nm コマンドは .Bx 4.3 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/nologin.5 b/ja_JP.eucJP/man/man5/nologin.5 index f7b73a0776..76ad6a0f55 100644 --- a/ja_JP.eucJP/man/man5/nologin.5 +++ b/ja_JP.eucJP/man/man5/nologin.5 @@ -1,67 +1,68 @@ .\" Copyright (c) 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. .\" .\" @(#)nologin.8 8.1 (Berkeley) 6/19/93 -.\" %Id: nologin.5,v 1.5 1999/01/12 14:09:23 asami Exp % +.\" %Id: nologin.5,v 1.5.2.1 1999/04/29 09:43:49 jkoshy Exp % .\" .\" jpman %Id: nologin.5,v 1.3 1998/06/13 09:47:03 kumano Stab % .\" .Dd June 19, 1993 .Dt NOLOGIN 5 .Os FreeBSD 2.1 .Sh 名称 .Nm nologin .Nd ログインを拒否する .Sh 解説 .Nm は、 .Pa /var/run/nologin ファイルがあるとログインを拒否します。 このプログラムはユーザに .Pa /var/run/nologin の内容を表示し、終了します。 .Sh セキュリティ ユーザ root の .Xr login 1 では無視されます。 .Sh 関連ファイル .Bl -tag -width /var/run/nologinxxx -compact .It Pa /var/run/nologin .Nm ファイルは .Pa /var/run にあります。 .El .Sh 関連項目 .Xr login 1 , .Xr rlogin 1 , .Xr telnet 1 , +.Xr nologin 8 , .Xr shutdown 8 diff --git a/ja_JP.eucJP/man/man5/passwd.5 b/ja_JP.eucJP/man/man5/passwd.5 index e14dca8e0d..6f67b642eb 100644 --- a/ja_JP.eucJP/man/man5/passwd.5 +++ b/ja_JP.eucJP/man/man5/passwd.5 @@ -1,678 +1,681 @@ .\" 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.22 1998/08/31 16:41:07 wosch Exp % +.\" %Id: passwd.5,v 1.22.2.1 1999/04/23 03:54:19 grog 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 個の欄が含まれます。 +コロン (``:'') で区切られた 10 個の欄が含まれます。 これらの欄は以下の通りです: .Pp .Bl -tag -width password -offset indent .It name ユーザのログイン名。 .It password ユーザの .Em 暗号化された パスワード。 .It uid ユーザのid。 .It gid -ユーザのログイングループid。 +ユーザのログイングループ id。 .It class ユーザのログインクラス。 .It change パスワードの変更時間。 .It expire アカウントの有効期限。 .It gecos ユーザについての一般的な情報。 .It home_dir ユーザのホームディレクトリ。 .It shell ユーザのログインシェル。 .El .Pp -最初の空白文字でない文字がポンド記号(#)であるような行は注釈であり、無視 +最初の空白文字でない文字がポンド記号 (#) であるような行は注釈であり、無視 されます。スペース、タブ、改行だけからなる空行もまた無視されます。 .Pp .Ar name 欄はコンピュータアカウントにアクセスするのに用いられるログインであり、 .Ar uid 欄はそれに結び付けられた数字です。これらはファイルアクセスを制御するので、 -両方共そのシステム(またしばしば複数のシステムにわたる1つのグループ)の中 +両方共そのシステム (またしばしば複数のシステムにわたる 1 つのグループ) の中 で一意であるべきです。 .Pp -同じログイン名や同じユーザidのエントリを複数持つことは可能で +同じログイン名や同じユーザ id のエントリを複数持つことは可能で すが、普通それは誤りです。これらのファイルを取り扱うルーチンはしばしばそ の複数エントリの 1 つだけを返しますし、 そしてそれはランダムな選択によるものです。 .Pp -ログイン名は決してハイフン(``-'')で始めてはいけません。また、メーラを -混乱させる傾向にあるので、大文字やドット(``.'')も絶対に名前の一部にしな -いことを強く推奨します。コロン(``:'')は歴史的にユーザデータベース中の欄 +ログイン名は決してハイフン (``-'') で始めてはいけません。また、メーラを +混乱させる傾向にあるので、大文字やドット (``.'') も絶対に名前の一部にしな +いことを強く推奨します。コロン (``:'') は歴史的にユーザデータベース中の欄 を分けるために用いられてきたので、いかなる欄にも含まれません。 .Pp -password欄はパスワードの +password 欄はパスワードの .Em 暗号化された 形です。 .Ar password 欄が空ならば、そのマシンへアクセスするのに何のパスワードも必要としないで しょう。これはほとんど恒常的に誤りです。これらのファイルは暗号化された ユーザパスワードを含んでいるので、 適当な権利無しにはいかなる人によっても可読であっ -てはいけません。管理上のアカウントは1個のアスタリスク +てはいけません。管理上のアカウントは 1 個のアスタリスク .Ql \&* を含むパスワード欄を有しており、これは通常のログインを許しません。 .Pp -group欄はユーザがログインした上で位置付けられるグループです。このシステムは +group 欄はユーザがログインした上で位置付けられるグループです。このシステムは マルチグループ( .Xr groups 1 参照) -をサポートしますが、この欄はユーザの1次グループを指名します。2次グループの -メンバは +をサポートしますが、この欄はユーザの 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をセットしておけば良いです。 +この欄を空欄にしておくか 0 をセットしておけば良いです。 .Pp .Ar expire 欄は .Dv GMT における基準時点からの秒数を表したものであり、 その時にアカウントが消滅します。 アカウント再設定機能をなくすには、 -この欄を空にセットしておくか0をセットしておけば良いです。 +この欄を空にセットしておくか 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欄はユーザの好むインタプリタです。 +shell 欄はユーザの好むインタプリタです。 .Ar shell 欄になにも無ければ Bourne シェル .Pq Pa /bin/sh が仮定されます。セキュリティ上の理由により、シェルがシステムへのアクセス -を許さないスクリプト(例えば +を許さないスクリプト (例えば .Xr nologin 8 -スクリプト)に設定されている場合、いかなる環境変数も渡されないように配慮さ +スクリプト) に設定されている場合、いかなる環境変数も渡されないように配慮さ れるべきです。 .Xr sh 1 については、これは .Fl p フラグを指定することで可能です。これが他のシェルでどのように行なわれるか は、特定のシェルの文書を調べてください。 .Sh YP/NIS との相互作用 -.Ss NISパスワードデータへのアクセスを可能にする +.Ss NIS パスワードデータへのアクセスを可能にする システム管理者は .Pa /etc/master.passwd ファイルに特別なレコードを付け加えることによって、パスワード情報について -NIS/YPを用いるように +NIS/YP を用いるように .Tn FreeBSD を設定できます。ハッシュされたパスワードデータベースおよび .Pa /etc/passwd -ファイル( +ファイル ( .Pa /etc/passwd -は絶対に手動で編集してはいけません)に変更が適切にマージされるように、 +は絶対に手動で編集してはいけません) に変更が適切にマージされるように、 エントリは .Xr vipw 8 で付加するべきです。別の方法としては、なんらかの方法で .Pa /etc/master.passwd を修正した後、 .Xr pwd_mkdb 8 を用いてパスワードデータベースを手動で更新することができます。 .Pp -NISを活性化するための最も簡単な方法は、名前欄にプラス符号(`+')だけを持つ、 +NIS を活性化するための最も簡単な方法は、名前欄にプラス符号 (`+') だけを持つ、 以下のような空のレコードを付け加えることです。 .Bd -literal -offset indent +::::::::: .Ed `+' は、 .Tn FreeBSD の標準Cライブラリの .Xr getpwent 3 ルーチンに対し、 検索において NIS パスワードマップを使用開始するよう指示します。 .Pp 上記のエントリは .Em ワイルドカード -エントリとして知られていることに注意してください。なぜなら、それは全ての +エントリとして知られていることに注意してください。なぜなら、それはすべての ユーザと一致し (他に情報を持たない `+' は、全員に一致します)、 全 NIS パスワードデータを無変更にて引き出すことを許します。 一方、 NIS エントリで `+' の次にユーザ名やネットグループ名を指定することによって、 どのようなデータが NIS パスワードマップから展開されるのか、 およびそれがどのように解釈されるのかについて、 管理者が影響を与えることができます。 -この特徴を示す、少数のレコード例を挙げます(1 つの +この特徴を示す、少数のレコード例を挙げます (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パスワードマップで指定されたシェルの値が、ローカル +これは、NIS パスワードマップで指定されたシェルの値が、ローカル .Pa master.passwd -ファイルの特別なNISエントリで指定された値によって上書きされることを意味します。 +ファイルの特別な +NIS エントリで指定された値によって上書きされることを意味します。 ユーザ ``ken'' は csh シェルを割り当てておいても良いかも知れません。 なぜなら、 政治的あるいは技術的な理由でクライアントマシンにインストールされていない 別のシェルを、彼の NIS パスワードエントリに指定されているかもしれないためです。 -他方、``rejected-users''ネットグループのユーザは、そのUID、 +他方、``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パスワードデータベースレコードは、(マイナスエントリ -を使って指定した全てのユーザと共に)全て無視されます。先に示した例 +のどれとも一致しない NIS パスワードデータベースレコードは、(マイナスエントリ +を使って指定したすべてのユーザと共に) すべて無視されます。先に示した例 ではリストの最後にワイルドカードエントリが無いので、 ``ken'' と ``dennis'' と ``staff'' ネットグループと -``permitted-users'' ネットグループとを除く全てのユーザを +``permitted-users'' ネットグループとを除くすべてのユーザを システムは権限があるユーザとして認識しないでしょう。 ``rejected-users'' ネットグループは認識されますが、 全メンバのシェルは再マップされますので、 -アクセスは拒否されるでしょう。他の全てのNISパスワードレコードは無視され +アクセスは拒否されるでしょう。他のすべての NIS パスワードレコードは無視され るでしょう。 管理者は以下のようなワイルドカードエントリをリストの最後に 付けても良いでしょう。 .Bd -literal -offset indent +:::::::::/usr/local/bin/go_away .Ed -このエントリは他の全てのエントリと一致しない全てのユーザを一挙にとらえる +このエントリは他のすべてのエントリと一致しないすべてのユーザを一挙にとらえる 働きをします。 .Pa /usr/local/bin/go_away は、システムにアクセスを許可されないユーザに伝えるメッセージを出力する短か いスクリプトまたはプログラムでしょう。 必ずしもログインアクセスを許可せずに、 -特定のNISドメイン内の全ユーザをシステムが認識可能であることが望ましいときには、 +特定の +NIS ドメイン内の全ユーザをシステムが認識可能であることが望ましいときには、 このテクニックが有効なことがあります。 ログインシェルとシェルスクリプトを使用するときのセキュリティに関する事柄 について、上記のシェル欄の記述を参照してください。 .Pp この .Pa 上書き 機能の主な用途は、 -管理者がNISクライアント上でアクセス制限を強化可能とすることです。 +管理者が NIS クライアント上でアクセス制限を強化可能とすることです。 単に特定のネットグループに対してユーザを追加したり削除したりするだけで、 そのユーザにあるマシン群へのアクセスを許可し、 かつ他のマシン群へのアクセスを拒否することができます。 ネットグループデータベースもまた NIS 経由でアクセスできるので、 1 個所すなわち NIS マスタサーバからアクセス制限を管理できます。 一旦ホストのアクセスリストが .Pa /etc/master.passwd に設定されると、新にネットグループが作られない限りそれは再度変更する必要 はありません。 .Sh 注釈 -.Ss NIS経由のシャドウパスワード +.Ss NIS 経由のシャドウパスワード .Tn FreeBSD はシャドウパスワード法を採用しており、 ユーザの暗号化されたパスワードはスーパユーザだけが読み書き可能な .Pa /etc/master.passwd および .Pa /etc/spwd.db にのみに記憶されます。 暗号化されたパスワードをパスワード推測プログラムに通すことにより、 ユーザが他のユーザアカウントに対して不正アクセスすることを防ぐためです。 NIS にはパスワード隠蔽のための標準的な方法がありません。 これは、 -パスワードデータを全て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の再マップ +.Ss NIS の上書きに伴なう UID および GID の再マップ .Tn SunOS や Sun の NIS コードを利用しているオペレーティングシステムとは異なり、 .Tn FreeBSD -ではユーザがNIS +ではユーザが NIS .Pa passwd エントリ中の -.Pa 全て +.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' ネットグループ中の全てのユーザは、 +このエントリにより、`foo-users' ネットグループ中のすべてのユーザは、 UID、GID、パスワードを含めて -.Pa 全て +.Pa すべて のパスワード情報を上書きされます。この結果、彼等のパスワードは不正な -値に再マップされるので、全ての `foo-users' はシステムから締め出さ +値に再マップされるので、すべての `foo-users' はシステムから締め出さ れることになるでしょう。 .Pp -以下のようにNISワイルドカードエントリを使う習慣のある人が多いので、 +以下のように NIS ワイルドカードエントリを使う習慣のある人が多いので、 このことは覚えておくべき重要なことです。 .Bd -literal -offset indent +:*:0:0::: .Ed これはしばしば新米の .Tn FreeBSD 管理者が以下のように .Pa master.passwd -ファイルのNISエントリを選んでしまうことにつながります。 +ファイルの NIS エントリを選んでしまうことにつながります。 .Bd -literal -offset indent +:*:0:0:::::: .Ed 更に悪く、以下のようにしてしまうこともあります。 .Bd -literal -offset indent +::0:0:::::: .Ed .Sy Pa master.passwd .Sy ファイルには「絶対に」このようなエントリは入れないでください!! 最初のものは、 -全てのパスワードを `*' に再マップし (これは誰もログインできなくします)、 -全ての UID および GID を 0 に再マップする (これは皆をスーパユーザにします) +すべてのパスワードを `*' に再マップし (これは誰もログインできなくします)、 +すべての UID および GID を 0 に再マップする (これは皆をスーパユーザにします) ことを .Tn FreeBSD に指示します。 2 番目のものは全 UID および GID をちょうど 0 にマップします が、これは -.Pa 全てのユーザがrootになってしまう +.Pa すべてのユーザが root になってしまう ことを意味します! .Pp -.Ss NIS上書き評価の互換性 -Sunが最初に +.Ss NIS 上書き評価の互換性 +Sun が最初に .Xr getpwent 3 -ルーチンにNISサポートを追加したとき、 +ルーチンに NIS サポートを追加したとき、 .Tn SunOS のパスワードファイル .Pa /etc/passwd はプレーン .Tn ASCII フォーマットであるということが考慮されていました。 .Tn SunOS のドキュメントによれば、パスワードファイルに '+' エントリを付け加えると、 パスワードファイル中の '+' エントリがある位置に NIS パスワードデータベースの内容が「挿入」されます。例えば 管理者が .Pa /etc/passwd の中央に +:::::: エントリを置いた場合、 NIS パスワードマップの全体の内容が パスワードファイルの中央にコピーされたかのように現われるでしょう。 管理者が +:::::: エントリを .Pa /etc/passwd -の中央と最後の両方に置けばNISパスワードマップは2度現われることになるでしょ -う。すなわち 1 度目はそのファイルの中央に現れ、もう 1 度は最後に現れます +の中央と最後の両方に置けば 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 つ のフィルタを作ります。各 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クライアントの振舞いは +の構成のうち 99% においては NIS クライアントの振舞いは .Tn SunOS や他の同種のシステムのそれと区別できないものとなるでしょう。それでもこれ らのアーキテクチャ的な違いを知っておくことは必要です。 .Pp -.Ss NIS上書きに関しネットグループの代りにグループを用いる +.Ss NIS 上書きに関しネットグループの代りにグループを用いる .Tn FreeBSD はネットグループではなくユーザグループに基づいた上書き照合を行なう能力 を提供します。例えば NIS エントリが以下のように指定されたとき、 .Bd -literal -offset indent +@operator::::::::: .Ed システムはまず `operator' と呼ばれるネットグループに対してユーザを 照合しようとします。 `operator' ネットグループが存在しないとき、 システムは代りに通常の `operator' グループに対して照合しようとします。 -.Ss FreeBSDの古いバージョンからの動作の変遷 +.Ss FreeBSD の古いバージョンからの動作の変遷 .Tn FreeBSD -のNIS/YPの取り扱いについてはいくつかのバグフィックスと改善がありました。 +の 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版形式の +は現在 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 pw 8 , .Xr vipw 8 .Sh バグ -ユーザ情報は他のどこか に入れるべき(そして結局は入れることになる)でしょう。 +ユーザ情報は他のどこか に入れるべき (そして結局は入れることになる) でしょう。 .Pp -YP/NISパスワードデータベースでは、 +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の機能は +で現われました。YP/NIS の機能は .Tn SunOS を雛型として .Fx 1.1 で初めて現われました。上書き機能は .Fx 2.0 において新しく組み込まれました。上書き機能はネットグループを適切に サポートするために .Fx 2.0.5 で更新されました。注釈のサポートは .Fx 3.0 で初めてサポートされました。 diff --git a/ja_JP.eucJP/man/man6/sail.6 b/ja_JP.eucJP/man/man6/sail.6 index 63761fcbd5..bba959f988 100644 --- a/ja_JP.eucJP/man/man6/sail.6 +++ b/ja_JP.eucJP/man/man6/sail.6 @@ -1,1048 +1,1048 @@ .\" Copyright (c) 1988, 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. .\" .\" @(#)sail.6 8.2 (Berkeley) 12/30/93 .\" %Id: sail.6,v 1.4 1997/02/22 14:46:58 peter Exp % .\" .\" jpman %Id: sail.6,v 1.4 1999/01/16 17:11:32 kuma Stab % .\" .\" WORD: wooden ships and iron men 「帆船の戦い」[sail.6] .\" WORD: captain 艦長[sail.6] .\" WORD: weather gage 風上(hold the weather gage...風上を取る)[sail.6] .\" WORD: Version 7 Version 7(固有名詞扱い) .\" WORD: turn ターン(ゲーム用語) .\" WORD: square rigger 横帆船[sail.6] .\" WORD: broadside 片舷/片舷斉射[sail.6] .\" WORD: bow 船首[sail.6] .\" WORD: stern 船尾[sail.6] .\" WORD: rake 縦撃[sail.6] .\" WORD: carronade カロネード砲[sail.6] .\" .TH SAIL 6 "December 30, 1993" .UC 4 .SH 名称 sail \- マルチユーザ版ゲーム「帆船の戦い」 .SH 書式 .B sail [ .B \-s [ .B \-l ] ] [ .B \-x ] [ .B \-b ] [ .B num ] .br .fi .SH 解説 .I sail は、もともとは、S. Craig Taylor によって開発された、アバロンヒル社の戦闘帆船 ボードゲームのコンピュータ版です。 .PP -.I Sail +.I sail のプレイヤーは、旧式の戦艦の指揮をとり他のプレイヤーやコンピュータと 戦います。 プレイヤーは、ゲームの中に記録された数多くの歴史上の海戦の中の一つを再現しても よいし、空想上の戦闘を選ぶこともできます。 .PP .I sail 海軍の艦長として、プレイヤーは自分の艦の活動については完全な管理ができます。 プレイヤーは全ての操作を命令し、帆装を変更し、そして片舷斉射の恐ろしい破壊力 を解き放つ正しい瞬間を判断しなければなりません。 更に、敵と戦うことに加えて、プレイヤーは、風と海の力を味方につけて 自分のために働かせなければなりません。 帆船時代の多くの海戦の勝敗は、ある一人の艦長の '風上' をとる能力により 決せられました。 .PP フラグは: .TP .B \-s 上位 10 位までの船員の名前と艦を表示します。 .TP .B \-l ログイン名を表示します。\fB-s\fP とともに指定したときだけ有効です。 .TP .B \-x どの艦にするかという選択を求められるかわりに、 最初に利用できる艦でプレイします。 .\"X 「を選択して」だと、プレイヤー自身の選択操作が必要に思えるので .TP .B \-b ベルを鳴らしません。 .SH 実装 .I sail は実は二つのプログラムを一つにまとめたものです。 各プレイヤーは彼自身の船を動作させるプロセスを起動します。 それに加えて、(最初のプレイヤーによって) 起動された .I ドライバ[driver] プロセスが、コンピュータ船を動作させ、 さらに全体にわたる記録計算を引き受けて処理します。 .PP .I ドライバ プロセスは、それが制御している全ての船の動きを計算しなければならないので、 より多くの船をコンピュータがプレイすればするほど、ゲームはよりゆっくり進行 しているように見えるでしょう。 .PP もし、あるプレイヤーが現在進行中のゲームに参加したとすると、 他のプレイヤーと同期して同じ速度になるでしょう (皆にすれば 幾分か遅くなります)。 .\"X 一人参加することで、今までプレイしていた人も含めてみんなの状態が .\"X どうなるかを説明しようとしているのでしょう。 そして、その後、彼は他のプレイヤーと同じ速度でプレイするでしょう。 .\"X play along with the rest ... ここで「他のプレイヤーと一緒に」という .\"X 必要はないはず。ならば、「他のプレイヤーと同様に」という意味だろう。 .PP マルチユーザゲームを Version 7 UNIX \(em これは .I sail がその上で最初に書かれたオペレーティングシステムでした \(em に実装するためには、 通信しているプロセスがメッセージを読み書きする場所として共通の一時ファイル を使う必要がありました。 それに加えて、共有ファイルへの排他的アクセスを保証するため、 ロック機構が供給されなければなりませんでした。 例えば、 -.I Sail +.I sail はシナリオ 21 については、 /tmp/#sailsink.21 という名前の一時ファイルを使います。 そして、他のシナリオに対してはそれに類するファイル名を使用します。 一時ファイルへの排他的アクセスを供給するために、 .I sail は Jeff Cohen 作の "pubcaves" と呼ばれる古いゲームから盗んだテクニックを 使っています。 "/tmp/#saillock.??" という名前のファイル ("??" はゲームのシナリオ番号に対応しています) への リンクを作成できるまでの間、プロセスが次のようなループ .br .sp .ce 2 for (n = 0; link(sync_file, sync_lock) < 0 && n < 30; n++) sleep(2); .br .sp でビジーウェイトをしています。 UNIX はリンクが唯一つのファイル をポイントするものであることを保証しているので、リンクに成功したプロセスは 一時ファイルへの排他的アクセスを獲得します。 .PP この仕組みが実際に機能するかどうかについては、さらなる考察が必要でしょう。 .\"X is open to speculation ... 「熟慮しないまま放ってある」だと思う。 それというのも、マシン ucbmiro (=miro.berkeley.edu の BITNET アドレス) が 暴走してリブートしたとき、ファイルシステム検査プログラムによって、 .I sail の一時ファイルとそれがリンクしているファイルの間に、3 個のリンクが発見され ましたから。 .SH プレイヤープロセスとドライバプロセスとを分離した結果 プレイヤー達が移動や発砲などの全体の興味に関わる重要な行動をするときには、 ドライバプロセスはゲーム中の他の船の行動とその行動とを 調整しなければなりません。 例えば、もしあるプレイヤーがある方向に移動したい場合には、彼の 船を移動させることをドライバプロセスに要求するメッセージを、 一時ファイルに書き込まなければ なりません。 ターンのたびに、ドライバプロセスはプレイヤー達から送られたメッセージを 全て読んで、起こったことを決定します。 それから、ドライバプロセスは変数の新しい値などを一時ファイル に書き戻します。 .PP この通信がゲームに及ぼす最も顕著な効果は移動の遅れです。 もしもプレイヤーが彼の船の移動をタイプして、リターンキーを叩いたとしましょう。 次に何が起こるでしょうか? プレイヤープロセスは一時ファイルに書き込むべきメッセージをバッファに 溜込みます。 およそ 7 秒おきに、プレイヤープロセスは一時ファイルへの排他的アクセス を獲得して、そのバッファを一時ファイルに書き出します。 ドライバプロセスは非同期的に動作しています。これは、移動コマンドを 読み込み、そのコマンドを処理し、そしてその結果を書き出さなければなりません。 これには、一時ファイルへの 2 回の排他的アクセスを必要とします。 最後に、プレイヤープロセスがもう 1 回の更新にやっと取り掛かる頃、 移動の結果がスクリーン上に表示されます。 それゆえ、プレイヤーが自分が行なった移動結果を知るまでに、 移動それぞれにつき、一時ファイルへ排他的アクセス 4 回 (1 回の排他的アクセスに 7 秒から 21 秒の間のどれくらいの時間を要するかは、 非同期性に依存しています) が要求されます。 .PP 実際は、遅れはそう見えるほどには厄介なものではありません。 移動には、パイプライン処理の余地があります。 プレイヤーは1番めの移動メッセージを書き込んだあと、2番目の移動コマンドを 入力できます。 1 番目のメッセージは、一時ファイルの中でドライバプロセスの読み込みを 待ちます。そして、 2 番目のメッセージは、ファイルバッファにあってファイルに書き出されるのを待って います。 そういうわけで、常に1回だけターンを先行して移動コマンドを打ち込むことで、 プレイヤーはじゅうぶん素早く帆走することができます。 .PP もしプレイヤーが 7 秒間隔の更新 2 回の間に数個の移動コマンドを 打ち込んだとすると、ドライバプロセスに見えるのは最後の移動コマンドだけです。 同じ更新期間中の複数の移動コマンドは、ある意味で互いに上書きし合います。 .SH SAILの歴史 筆者は .I sail の最初のバージョンを 1980 年の秋に PDP 11/70 の上で書きました。 言うまでもなく、コードは恐ろしいもので、 移植可能とはとうてい言えるものでもなく、そして動きもしませんでした。 プログラムは、全くモジュール化されていない上に、数行おきに fseek() や fwrite() がありました。 トップダウン手法による徹底的な書き換えによって、1981 年までに筆者は最初の 機能するバージョンを仕上げました。 .\"X got .... up の up は「仕上げた」というニュアンスかと。 片舷斉射の発射や方角の発見に関していくつかのやっかいなバグがありました。 ところで、 .I sail は浮動小数点を使っていません。それで、方角についてのルーチンは、すこし 手が込んだものになっています。 Ed Wangは、1981 年に angle() ルーチンをより間違いのないものに書き換えました。 (しかしながら、それは、まだ完全には機能していません)。 そして、彼はゲームの始めで (最初に利用可能な船の代わりに) プレイヤーが 自分の望む船を選べるようなコードを加えました。 .PP ハッピィ艦長 (Craig Leres) が、 .I sail を移植可能にすることに初めて責任をもちました。 ちなみに、これはとても難しい仕事でした。2 や 10 といった定数が コードにはとても頻繁に現れます。また、 .I sail の中で「Riggle 記念構造体 ("Dave Riggle":筆者)」を使ってしまった ということでも名前を売ってしまったぐらいですし。 筆者の構造体参照の多くはとても長いので、ラインプリンタの印字ページを はみ出してしまいます。もし、笑わないと約束して下さるなら、ここに一例を お見せしましょう。 .br .sp .ce specs[scene[flog.fgamenum].ship[flog.fshipnum].shipnum].pts .br .sp .PP .I sail には、1983 年の夏と秋に最も徹底的な 4 回目の書き換えがなされました。 Ed Wang はコードを殆ど何もない状態から書き換えモジュール化しました (記念碑的な偉業です)。 彼は、多くの新しいバグを導入したにもかかわらず、最終的な結果は とても奇麗で、(?) より速いものになりました。彼は、ウィンドウ移動コマンド と艦船発見コマンドを加えました。 .SH 歴史的情報 古い横帆船 [Square Rigger] は、複雑な帆走が可能で、とても操作しやすい船です。 これら横帆船の唯一つの弱点は、風上にぎりぎりに間切って帆走できない ことです。 木造船の設計は大砲を左舷と右舷の方向に向けることだけを考慮していました。 .\"X 船の設計が考慮するのは大砲ではなく、大砲の狙いの付け方のはず。 少数の小さな大砲 (通常 6 ポンド砲か 9 ポンド砲) だけが前方に狙いをつける ことができました。しかし、それらの砲は、68 門の 24 ポンド砲か 32 ポンド砲 からなる舷側砲の片舷斉射に比べれば、その効果は小さいものでした。 大砲は大体つぎのような方向に向けられます。 .nf \\ b---------------- ---0 \\ \\ \\ 10の範囲まで (砲丸 [round shot] の場合) \\ \\ \\ .fi 片舷斉射が敵艦の縦方向に打ち抜かれたときには、興味深い現象が起きました。 砲弾は甲板 [こうはん] に沿ってはねまわり数倍の損害を加えがちでした。 この現象は縦射 [rake] と呼ばれました。船の船首 [bow] は非常に強固で船尾 [stern] より小さな標的だったので、船尾縦射 [stern rake](船尾より船首の方向の着弾) は船首縦射 [bow rake] によるよりも大きな損害を与えました。 .nf b 00 ---- 船尾縦射 [stern rake]! a .fi 大抵の船は、カロネード砲 [carronade] を装備していました。この大砲は、 非常に大きく、射程距離の短いものでした。 アメリカの艦船にはフランス革命から 1812 年の戦争 (米英戦争) まで、 .\"X the revolution はフランス革命でいいと思います。確かフランス革命後の .\"X 英仏対立にアメリカが一口噛んでいたはず。 ほぼすべての艦船に カロネード砲が装備されていました。 .PP .I sail で扱っている時代は、ほぼ 1770 年代から 1815 年にナポレオンのフランス支配が 終るまでです。 帆船時代に関しては、素晴らしい本が多くあります。筆者の好きな作家は Captain Frederick Marryat です。 もっと現代の作家達の中では、C.S. Forester や Alexander Kent です。 .PP 艦船には、装備された兵器で区別される分類があります。 どの艦隊でもメインマストをなす艦船は、戦列艦 [Ship of the Line]、即ち、 戦列をなす戦艦 [Line of Battle Ship] です。 これらの艦船がこのように名付けられた理由は、これらが大きな列 を作って交戦するからです。 彼らは、互いに助け合えるぐらい近くに位置しますが、それでも、 どの艦もその両舷側の片舷斉射 [broadside] を 発射できるようにします。 現代の「遠洋定期船 [ocean liner]」とか「定期船 [liner]」、 そして「戦艦 [battleship]」という言葉は 「戦列艦 [Ship of the Line]」から派生したものです。 最もありふれた分類は、74 砲門で 2 層甲板の戦列艦です。 2 層の砲列甲板には普通 18 ポンド砲か 24 ポンド砲が搭載してありました。 .PP 第 1 に来る分類は、艦隊の誇りとなる船です。 これらの艦船は、80 砲門から 136 砲門の大砲を搭載した巨大な 3 層甲板戦列艦です。 3 層の大砲は、普通 18 ポンド砲、24 ポンド砲、そして 32 ポンド砲でした。 これらの大砲は、この順番で上から下に搭載されていました。 .PP 他のさまざまな船が次の分類になります。 これらの戦艦は殆んど全て「レイジー[razee]」、すなわち、甲板を 1 層切り落とした 戦列艦です。 これらの戦列艦は、40-64 砲門の大砲を搭載した、 フリゲート艦 [frigate] と戦列艦 の貧弱なあいのこです。 .\"X a poor cross ... 粗末なあいのこ?貧弱でどうかな? レイジーには、フリゲート艦のスピードもなければ、戦列艦の火力も ありませんでした。 .PP その次に来る分類が、「艦隊の目」です。 フリゲート艦 [frigate] は 32 砲門から 44 砲門の大砲をどこにでも搭載していて 大きさはさまざまです。 これらは、大変便利な船です。 フリゲート艦は、より大きな船に対しては航行速度でまさり、より小さな船に 対しては火力でまさります。 フリゲート艦は、ずっと大きな 74 砲門の戦列艦がやるように戦列を組んで 戦ったりはしませんでした。 その代わり、これらの船は、敵の背後をおびやかし、傷ついて戦えなくなった船を だ捕しました。 これらの船は、艦隊から離れて行なう任務で、はるかに効果を発揮しました。 例えば、長い航海を短縮するとか、ボートによる戦闘を切り開くとかの任務です。 .\"X boat action ... ??なんか専門用語っポイですな。わからないので .\"X そのままにしときます。 これらは、強力な一撃のあと、ずばやく引くことができました。 .PP 最後に来る分類には、コルベット艦 [corvette](平甲板 1 段砲装の帆装戦艦)、 スループ帆船 [sloop](1 本マストの縦帆船)、そして ブリッグ帆船 [brig](2 本マストの横帆船) があります。 これらは、一般的には 20 砲門以下の大砲を搭載しているより小さな船です。 コルベット艦は、フリゲート艦よりほんのちょっと小さいだけなので 30 砲門までの 大砲を載せられたでしょう。 スループ帆船は急送公文書や船客を搬送するのに使われました。 ブリッグ帆船は陸地で囲まれた湖のために建造されたものです。 .\"X you は特定の読者を指すのではなく一般的な人間を指すと思う。 .SH SAIL 固有の詳細 .I sail では、船は 2 文字で表されます。 1 番目の文字は、船首 [bow] を表します。もう 1 方の文字は、 船尾 [stern] を表します。 .\" WORD: nationarities 船籍(国籍とちゃうか?)[sail.6] 船には、船籍と番号があります。 ある船籍の最初の船は番号 0 です。2 番目の船は番号 1、などなど。 したがって、ゲームの最初の英国船は「b0」と印字されます。 2番目の英国野郎は「b1」、そして、5 番目のスペイン紳士は 「s4」となります。 .PP 船は、戦闘帆 [Battle Sail] と呼ばれている通常の帆装をつけられます。 また、それに加えて総帆 [Full Sail] と呼ばれる全帆を結びつけられます。 .\"X extra canvas ... Battle Sail 状態に加えて帆をつけて Full Sail になる .\"X ということと読んだ> extra 総帆の船は本当に美しい眺めです。 そして、総帆の船は戦闘帆装の船よりずっと速く航行できます。 総帆装についての唯一の問題は、帆と索具に非常に大きな応力がかかるので、 狙い澄ました砲丸は、帆をちりじりに引き裂いてしまうことができるということです。 これにひきかえ、ゆるんだ帆には、砲丸は小さな穴しか開けられません。 この理由で、総帆装をつけた船では、索具への損傷は 2 倍になります。 このことで、総帆を使うことを思いとどまらないで下さい。 筆者は、総帆を戦闘たけなわとなるまで維持するのが好きです。 総帆装の船には船籍として大文字を設定します。 例えば、蛙食いのフランス野郎「f0」が総帆であれば、「F0」と印字されます。 .PP 船が、傾いた廃船 [listing hulk] になるまで叩き潰されたときは、 最後まで残っていた者が 「旗を下ろして降伏」します。 この儀式は、船の正式な降伏です。 降伏した船の船籍文字は、「!」として印字されます。 例えば、最後の例のフランス野郎は、すぐに「!0」になるでしょう。 .PP 船が傾いた廃船の段階に至ったときには、 船が出火したり沈没したりする可能性が確率的に生じます。 沈みつつある船は、その船籍として「~」が印字されます。 出火していて、今にも爆発しそうなときには、「#」が印字されます。 .PP だ捕された船はだ捕船回航員の船籍になります。 それゆえ、もしアメリカ船が英国船をだ捕したならば、英国船の船籍として、「a」 が印字されます。 更に、船の番号は最初の番号しだいで「&」,「'」, 「(」, ,「)」, 「*」, 及び 「+」 につけかえられます。 例えば、アメリカ船にだ捕された「b0」は、「a&」となります。 フランス野郎にだ捕された「s4」は「f*」となります。 .PP 究極の例は、もちろん、アメリカ船に捕獲された爆発しそうな イギリス野郎です:「#&」 .SH 移動 多くの人にとって、移動は .I sail の最も困惑させられる部分でしょう。 艦船は 8 方向を向くことができます: .nf 0 0 0 b b b0 b b b 0b b 0 0 0 .fi 艦艇が舵を切ると、その船の「船尾 [stern]」が動きます。 「船首 [bow]」は、動きません。 (風が凪いでさえいなければ)、風には関係なく船はいつでも舵を切ることができます。 すべての船は、船足を失ったときには漂流してしまいます。 もし、船が 2 ターンの間に全く前進しなければ、 その船は漂流し始めます。 もし船が漂流し始めた場合、もし「面舵 [right turn]」を切るか、 「取舵 [left turn]」を切る以外のことをしようとしているなら、 舵を切る前にまず前進しなければなりません。 ちなみに、面舵や取舵を切ることはいつでも可能です。 .\"X if it plans ... は、前の move forward before it turns に掛かるの .\"X でしょう。 .PP .I sail の移動コマンドは、いくつかの前進と旋回からなる文字列です。 例としては、「l3」があります。これは、船に取舵を切らせて、 3 スペース分 前進させます。 上図では、「b0」は 7 回連続して取舵を切っています。 .I sail が移動入力を催促するときには、データ取り込みのための 3 文字を印字します。 例えば、 .nf move (7, 4): .fi 最初の数字は、旋回を含めて、移動できる最大数です。 2 番めの数字は、可能な旋回の最大数です。 時々、数字の間に引用符号の「'」が印字されます。 もし引用符号があれば、それは、船が漂流していることを意味しています。 このとき、舵を切る前に船足を取り戻すため前進しなければなりません (上の説明を参照のこと)。 上述の例で可能な移動のいくつかは、次のようなものです: .nf move (7, 4): 7 move (7, 4): 1 move (7, 4): d /* 漂流、または 何もしない */ move (7, 4): 6r move (7, 4): 5r1 move (7, 4): 4r1r move (7, 4): l1r1r2 move (7, 4): 1r1r1r1 .fi 横帆船は、風上に向かって帆走することには全く惨めなほど 機能を果たしませんでした。 そのため、移動コマンド列のどこかで風上を向いてしまったら、 移動はそこで止まってしまいます。例えば、 .nf move (7, 4): l1l4 Movement Error; Helm: l1l ------ (Helm = 舵輪、舵の動き) .fi そのうえ、旋回を行なうときにはいつでも、移動の許容限度は最小に まで低下します (残っているものといえば、新しい態勢で持てるはずのものです)。 要するに、もし風上によりぎりぎりに間切って舵を切れば、 「move」プロンプトに表示される全許容量を帆走することは、 全くできそうにありません。 .PP 昔の帆船の船長たちは、風について常に気を配っていなければなりませんでした。 .I sail の艦長達も、全く同じです。 船の移動する能力は、風に対する態勢に依存しています。 可能な角度のうち最善のものは、船尾から 45 度の方角から風を受けることです。 即ち、船尾からちょっとずれた方角からです。 スクリーンの脇に現れる指示によって、風に対する方位全てに対する、その船に 可能な移動を知ることができます。 これは、まず、戦闘帆での速度を示し、 次に、総帆での速度を括弧内に示します。 .nf 0 1(2) \\|/ -^-3(6) /|\\ | 4(7) 3(6) .fi 船の船首(「^」で表します)が上を向いており、風がページの下から上へ 吹いているとしましょう。 1 番下の「3(6)」という数字は、その状況での戦闘帆と総帆での速度を表すでしょう。 もし、風が (後方) 45 度から吹いていれば、は「4(7)」移動できます。 もし、風が帆桁方向から (横風) であれば、「3(6)」です。 もし、風が船首からちょっとずれた方向からであれば、 「1(2)」だけしか移動できません。 風に対面してしまったら、全く移動できません。 風に対面してしまった船は、「枷をかけられた」と言われていました。 .SH 風速と風向き 風速と風向きは画面の脇に小さな風信器として表示されます。 風信器の真中の数字は、風速を表します。 そして、+ から - への向きは、風向きを示します。 風は+符号 (高気圧) から - 符号 (低気圧) への向きに吹きます。 例えば、 .nf | 3 + .fi .PP 風速は、 0 = 静穏 [becalmed]、 1 = 軽風 [light breeze]、 2 = 和風 [moderate breeze]、 3 = 疾風 [fresh breeze]、 4 = 雄風 [strong breeze]、 5 = 疾強風 [gale]、 6 = 全強風 [full gale]、 7 = ぐ風 [hurricane]。 .\" Cf. Beaufort wind scale (Tetsuro Furuya : Translator). ぐ風があらわれたら、全艦船が壊滅してしまいます。 .SH 鈎錨による引っかけと絡まり もし、2隻の船が衝突したら、彼らは互いに絡まってしまう危険を冒しています。 これは、「絡まり [fouling]」と呼ばれています。 絡まった船は、一緒にくっついてしまい、どちらも動けません。 双方が望む場合、彼らは絡まりを解除することもできます。 乗船乱入団を他の船に送り出せるのは、敵艦を絡めたか鈎錨で引っかけたときに 限られます。 .PP 船は四つ爪錨 [grapnel] を他の船の索具 [rigging] に投げつけることにより 引っかけることができます。 .PP 船が保持している絡まりと鈎錨の引っかけの数は画面の右上に表示されます。 .SH 乗船乱入 乗船乱入は、人命の点からすると非常に費用のかかる冒険でした。 .I sail では、乗船乱入団が作られるのは次の場合です。 つまり、敵艦に乗船乱入するためか、攻撃に対抗して自分自身の艦を守るため かのいずれかです。 防衛のための乗船乱入団として組織された人々は組織されぬままの人々より2倍も 激しく自艦を守って戦います。 .PP 乗船乱入団の乗船乱入攻撃の強さは、送られる乗員の質と数により決まります。 .SH 乗員の質 英国の船乗りは、彼らの航行能力の優秀さで世界中に盛名を馳せました。 しかし、実は、世界一の船員は、アメリカの船員だったのです。 何故かといえば、アメリカ海軍は、王立海軍の賃金の 2 倍を支払ったので、 海の好きな英国の船員は数千の単位でアメリカへ逃亡したからです。 .PP .I sail では、乗員の質は、5 つのエネルギーレベルに量子化されます。 「精鋭 [Elite]」な乗員は、他の全ての船乗りに対して、 射撃能力においても格闘能力においても凌駕できます。 「一流 [Crack]」な乗員が、次に来ます。 「普通 [Mandane]」な乗員は平均的です。 「未熟 [Green]」な乗員と「反抗的 [Mutinous]」な乗員は、平均以下です。 上手な目の子勘定としては、「一流」と「精鋭」な乗員は 「普通」な乗員に比して片舷斉射あたり 1 発余分に命中させます。 「未熟」な乗員にはあまり多くを期待しないことです。 .SH 舷側砲[broadsides] 各舷側砲 [broadsides] には、次の 4 種類の砲弾を装填できます: ぶどう弾 [grape]、鎖弾 [chain]、砲丸 [round]、2 連発 [double]。 大砲 [gun] とカロネード砲 [carronade] を、 左舷 [port] と右舷 [starboard] の両砲郭に 搭載できます。 カロネード砲 [carronade] は 2 の射程距離しかありません。 そのため、カロネード砲を発射できるほど近付かなければなりません。 他の船の船殻 [hull] を砲撃するか、索具 [rigging] を砲撃するかを 選択することができます。 もし船の距離が 6 よりも遠ければ、読者は索具を砲撃できるだけです。 .PP 砲弾の型とその長所は: .SH 砲丸[round] 10 の射程距離。船殻と索具のいずれの砲撃にも適しています。 .SH 2 連発[double] 1 の射程距離。船殻と索具のいずれの砲撃にも非常に適しています。 2 連発は、装填するのに 2 ターンが必要です。 .SH 鎖弾[chain] 3 の射程距離。 索具を粉砕してしまうのに特に優れています。 しかし、船殻や大砲に損害を加えることはできません。 .SH ぶどう弾[grape] 1 の射程距離。 たまに、敵乗員に圧倒的な効果を示します。 .PP スクリーンの脇には、自分の船に関する極めて重要な情報が表示されます: .nf Load D! R! Hull 9 Crew 4 4 2 Guns 4 4 Carr 2 2 Rigg 5 5 5 5 .fi 「Load (装填)」は、左舷と右舷それぞれの砲に どのような砲弾が装填されているかを示します。 砲弾の後の「!」はそれが最初の片舷斉射であることを示します。 最初の片舷斉射は、戦闘の前に、そして甲板が血で真っ赤に染まる前に、 注意深く装填されています。 その結果、最初の片舷斉射は、後で装填したときの片舷斉射より若干効果的です。 砲弾の型のあとの「*」は、砲側員がまだその砲弾を装填中で、 まだ発砲できないことを示します。 「Hull (船殻)」は、どれくらいの船殻が残されているかを示します。 「Crew (乗員)」は、3 つの区画ごとの乗員を示します。 乗員が死ぬにつれて、読者は砲撃力を失なっていきます。 「Guns (大砲)」と「Carr (カロネード砲)」は、左舷と右舷の 大砲を示します。 大砲を失うと、それだけ砲撃力を失います。 「Rigg (索具)」は、3 本マストや 4 本マストにどれくらいの索具が残って いるかを示します。 索具が打ち払われるにつれて、機動力が失われてゆきます。 .SH 砲撃の効果 船が雷のような大音響をとどろかせて片舷の砲を発射するときは、とても 劇的です。 しかし、ただ行き当たりばったりに片舷斉射を行なっても、 命中は全く保証されません。 片舷斉射の破壊力には、多くの要素が影響します。 まず第一の、そして、主要な要因は、距離です。 10 の距離にある船を砲撃する方が、すぐ横に並んで波を蹴立てて進んでいる 船を砲撃するより困難です。 次は、縦射 [rake] です。 以前に記述した通り、縦射砲撃は、10 の距離にある船の帆柱 をときには折り倒すことができます。 その次には、乗員の数と質が片舷斉射による損害に影響します。 発砲する大砲の数もまた、いわば、実を結んで得点になると言えます。 最後に、天候が片舷斉射の正確さに影響します。 もしも、波が高ければ (5 または 6)、戦列艦は下側の砲門を開くことさえできず、 大砲を出せません。 このことにより、嵐の中では、フリゲート艦や他の平甲板の船は有利になります。 シナリオの .I Pellew vs. The Droits de L'Homme (ペルー艦長対人権号) は、この特殊な状況を利用しています。 .SH 修理 船殻、大砲、索具に対して修理を行なうことができます。3 ターンにつき 2 ポイントの遅い割合で修理が進みます。 それ以上の修理ができなくなったときには、「修理完了 [Repair Completed]」の メッセージが表示されます。 .SH コンピュータ船の特性 .I sail におけるコンピュータ船は、上述の全ての規則に従いますが、しかし少数の 例外があります。 コンピュータ船は、決して損害を修理しません。 もし、コンピュータ船が修理をしたら、プレイヤー達はコンピュータ船に決して 勝てないでしょう。 しかし、今のままでも既に彼らは、十分良くやっています。 慰めとして、コンピュータ船はターンごとに 2 連発の砲撃を行なえます。 まぐれ当たりもあるので、プレイヤーの船は 近付かないのが、合理的というものでしょう。 .I ドライバプロセス が、コンピュータ船の動きを計算します。 .I ドライバプロセス は、典型的な A.I. の距離関数と縦型検索によってコンピュータ船の動きを 計算することで、 最高「得点」を発見します。 これは、かなりうまく機能しているように見えます。 しかしながら、この A.I. が完璧でないことは筆者が真っ先に認めましょう。 .SH 遊び方 .I sail にコマンドを与えるには、文字を 1 文字タイプします。 そのとき、更に入力するよう催促されます。 コマンドの短い要約を次に示します。 .br .SH コマンドの要約 .nf 'f' 可能なら、片舷斉射を行ないます 'l' 再装填 'L' 舷側砲から弾を抜きます (弾薬を交換するため) 'm' 移動 'i' 最寄りの船を表示 'I' 全艦船を表示 'F' 特定パターンの船を 1 隻または数隻探します (例えば全アメリカ船は「a?」) 's' 艦隊全体にメッセージを送信 'b' 敵艦への乗船乱入の試み 'B' 乗船乱入隊を呼び返します 'c' 帆装を交換 'r' 修理 'u' 絡んだ索具をほどく試み 'g' 鈎錨を引っかける/はずす 'v' ゲームのバージョンナンバの表示 '^L' 画面の再描画 'Q' 終了 'C'\ \ \ \ \ 読者の船をウィンドウの真中にします 'U'\ \ \ \ \ ウィンドウを上へ移動 'D','N'\ ウィンドウを下へ移動 'H'\ \ \ \ \ ウィンドウを左へ移動 'J'\ \ \ \ \ ウィンドウを右へ移動 'S'\ \ \ \ \ ウィンドウを自分の船についていかせるか今の位置を保つかを反転 .fi .bg .SH シナリオ 以下に、 .I sail のシナリオの要約を示します: .br .SH Ranger vs. Drake: .nf 北からの風、疾風。 (a) Ranger 19 砲門 スループ帆船 (一流の乗員) (7 点) (b) Drake 17 砲門 スループ帆船 (一流の乗員) (6 点) .SH The Battle of Flamborough Head: .nf 南からの風、疾風。 .fi これは、ジョン・ポール・ジョーンズの最初の有名な海戦です。 ボノム・リシャールに乗り組んだ彼は、素早くセラピスに乗船乱入したおかげで、 セラピスの優勢な火力を克服できました。 .nf (a) Bonhomme Rich 42 砲門 コルベット艦 (一流の乗員) (11 点) (b) Serapis 44 砲門 フリゲート艦 (一流の乗員) (12 点) .SH Arbuthnot and Des Touches: .nf 北からの風、疾強風。 (b) America 64 砲門 戦列艦 (一流の乗員) (20 点) (b) Befford 74 砲門 戦列艦 (一流の乗員) (26 点) (b) Adamant 50 砲門 戦列艦 (一流の乗員) (17 点) (b) London 98 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (b) Royal Oak 74 砲門 戦列艦 (一流の乗員) (26 点) (f) Neptune 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Duc de Bourgogne 80 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) (f) Conquerant 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Provence 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Romulus 44 砲門 戦列艦 (平均の乗員) (10 点) .SH Suffren and Hughes: .nf 南からの風、疾風。 (b) Monmouth 74 砲門 戦列艦 (平均の乗員) (24 点) (b) Hero 74 砲門 戦列艦 (一流の乗員) (26 点) (b) Isis 50 砲門 戦列艦 (一流の乗員) (17 点) (b) Superb 74 砲門 戦列艦 (一流の乗員) (27 点) (b) Burford 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Flamband 50 砲門 戦列艦 (平均の乗員) (14 点) (f) Annibal 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Severe 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Brilliant 80 砲門 戦列艦 (一流の乗員) (31 点) (f) Sphinx 80 砲門 戦列艦 (平均の乗員) (27 点) .SH Nymphe vs. Cleopatre: .nf 南よりの風、疾風。 (b) Nymphe 36 砲門 フリゲート艦 (一流の乗員) (11 点) (f) Cleopatre 36 砲門 フリゲート艦 (平均の乗員) (10 点) .SH Mars vs. Hercule: 南からの風、疾風。 .nf (b) Mars 74 砲門 戦列艦 (一流の乗員) (26 点) (f) Hercule 74 砲門 戦列艦 (平均の乗員) (23 点) .SH Ambuscade vs. Baionnaise: .nf 北からの風、疾風。 (b) Ambuscade 32 砲門 フリゲート艦 (平均の乗員) (9 点) (f) Baionnaise 24 砲門 コルベット艦 (平均の乗員) (9 点) .SH Constellation vs. Insurgent: .nf 南からの風、疾強風。 (a) Constellation 38 砲門 コルベット艦 (精鋭な乗員) (17 点) (f) Insurgent 36 砲門 コルベット艦 (平均の乗員) (11 点) .SH Constellation vs. Vengeance: .nf 南からの風、疾風。 (a) Constellation 38 砲門 コルベット艦 (精鋭な乗員) (17 点) (f) Vengeance 40 砲門 フリゲート艦 (平均の乗員) (15 点) .SH The Battle of Lissa: .nf 南からの風、疾風。 (b) Amphion 32 砲門 フリゲート艦 (精鋭な乗員) (13 点) (b) Active 38 砲門 フリゲート艦 (精鋭な乗員) (18 点) (b) Volage 22 砲門 フリゲート艦 (精鋭な乗員) (11 点) (b) Cerberus 32 砲門 フリゲート艦 (精鋭な乗員) (13 点) (f) Favorite 40 砲門 フリゲート艦 (平均の乗員) (15 点) (f) Flore 40 砲門 フリゲート艦 (平均の乗員) (15 点) (f) Danae 40 砲門 フリゲート艦 (一流の乗員) (17 点) (f) Bellona 32 砲門 フリゲート艦 (未熟な乗員) (9 点) (f) Corona 40 砲門 フリゲート艦 (未熟な乗員) (12 点) (f) Carolina 32 砲門 フリゲート艦 (未熟な乗員) (7 点) .SH Constitution vs. Guerriere: .nf 南西からの風、疾強風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Guerriere 38 砲門 フリゲート艦 (一流の乗員) (15 点) .SH United States vs. Macedonian: .nf 南からの風、疾風。 (a) United States 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) (b) Macedonian 38 砲門 フリゲート艦 (一流の乗員) (16 点) .SH Constitution vs. Java: .nf 南からの風、疾風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Java 38 砲門 コルベット艦 (一流の乗員) (19 点) .SH Chesapeake vs. Shannon: .nf 南からの風、疾風。 (a) Chesapeake 38 砲門 フリゲート艦 (平均の乗員) (14 点) (b) Shannon 38 砲門 フリゲート艦 (精鋭な乗員) (17 点) .SH The Battle of Lake Erie: .nf 南からの風、軽風。 (a) Lawrence 20 砲門 スループ帆船 (一流の乗員) (9 点) (a) Niagara 20 砲門 スループ帆船 (精鋭な乗員) (12 点) (b) Lady Prevost 13 砲門 ブリッグ帆船 (一流の乗員) (5 点) (b) Detroit 19 砲門 スループ帆船 (一流の乗員) (7 点) (b) Q. Charlotte 17 砲門 スループ帆船 (一流の乗員) (6 点) .SH Wasp vs. Reindeer: .nf 南からの風、軽風。 (a) Wasp 20 砲門 スループ帆船 (精鋭な乗員) (12 点) (b) Reindeer 18 砲門 スループ帆船 (精鋭な乗員) (9 点) .SH Constitution vs. Cyane and Levant: .br .nf 南からの風、和風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Cyane 24 砲門 スループ帆船 (一流の乗員) (11 点) (b) Levant 20 砲門 スループ帆船 (一流の乗員) (10 点) .br .SH Pellew vs. Droits de L'Homme: .nf 北からの風、疾強風。 (b) Indefatigable 44 砲門 フリゲート艦 (精鋭な乗員) (14 点) (b) Amazon 36 砲門 フリゲート艦 (一流の乗員) (14 点) (f) Droits L'Hom 74 砲門 戦列艦 (平均の乗員) (24 点) .SH Algeciras: .nf 南西からの風、和風。 (b) Caesar \080 砲門 戦列艦 (一流の乗員) (31 点) (b) Pompee \074 砲門 戦列艦 (一流の乗員) (27 点) (b) Spencer \074 砲門 戦列艦 (一流の乗員) (26 点) (b) Hannibal \098 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (s) Real-Carlos 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (s) San Fernando \096 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点) (s) Argonauta \080 砲門 戦列艦 (未熟な乗員) (23 点) (s) San Augustine \074 砲門 戦列艦 (未熟な乗員) (20 点) (f) Indomptable \080 砲門 戦列艦 (平均の乗員) (27 点) (f) Desaix \074 砲門 戦列艦 (平均の乗員) (24 点) .SH Lake Champlain: .nf 北からの風、疾風。 (a) Saratoga 26 砲門 スループ帆船 (一流の乗員) (12 点) (a) Eagle 20 砲門 スループ帆船 (一流の乗員) (11 点) (a) Ticonderoga 17 砲門 スループ帆船 (一流の乗員) (9 点) (a) Preble \07 砲門 ブリッグ帆船 (一流の乗員) (4 点) (b) Confiance 37 砲門 フリゲート艦 (一流の乗員) (14 点) (b) Linnet 16 砲門 スループ帆船 (精鋭な乗員) (10 点) (b) Chubb 11 砲門 ブリッグ帆船 (一流の乗員) (5 点) .SH Last Voyage of the USS President: .nf 北からの風、疾風。 (a) President 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) (b) Endymion 40 砲門 フリゲート艦 (一流の乗員) (17 点) (b) Pomone 44 砲門 フリゲート艦 (一流の乗員) (20 点) (b) Tenedos 38 砲門 フリゲート艦 (一流の乗員) (15 点) .SH Hornblower and the Natividad: .nf 東からの風、疾強風。 .fi ホーニィ・ファンの読者のためのシナリオです。 思い起こしていただきたい事は、 ホーンブロワーは、大きな不利と風に抗してナティビダッドを沈めたことです。 ヒント:ナティビダッドに乗船乱入しようとしないで下さい。 この船の乗員は、未熟ではありますが、ずっと多いのです。 .nf (b) Lydia 36 砲門 フリゲート艦 (精鋭な乗員) (13 点) (s) Natividad 50 砲門 戦列艦 (未熟な乗員) (14 点) .SH Curse of the Flying Dutchman(さまよえるオランダ人の呪い): .nf 南からの風、疾風。 ちょっとした戯れです。Piece of Cake の側を取って下さい。 (s) Piece of Cake \024 砲門 コルベット艦 (平均の乗員) (9 点) (f) Flying Dutchy 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) .SH The South Pacific: .nf 南からの風、雄風。 (a) USS Scurvy 136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点) (b) HMS Tahiti 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (s) Australian \032 砲門 フリゲート艦 (平均の乗員) (9 点) (f) Bikini Atoll \0\07 砲門 ブリッグ帆船 (一流の乗員) (4 点) .SH Hornblower and the battle of Rosas bay: .nf 東からの風、疾風。 ホーンブロワーが負けた唯一の海戦です。 しかし、彼は1隻の船のマストを折り、他の船達に船尾縦射を撃ちました。 あなたも同じだけの戦果が挙げられるでしょうか。 .nf (b) Sutherland \074 砲門 戦列艦 (一流の乗員) (26 点) (f) Turenne \080 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) (f) Nightmare \074 砲門 戦列艦 (平均の乗員) (24 点) (f) Paris 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (f) Napoleon \074 砲門 戦列艦 (未熟な乗員) (20 点) .SH Cape Horn: .nf 北東からの風、雄風。 (a) Concord \080 砲門 戦列艦 (平均の乗員) (27 点) (a) Berkeley \098 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (b) Thames 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (s) Madrid 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (f) Musket \080 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) .SH New Orleans: .nf 南東からの風、疾風。 小さな Cypress が行ってしまうのに気をつけて下さい! (a) Alligator 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (b) Firefly \074 砲門 戦列艦 (一流の乗員) (27 点) (b) Cypress \044 砲門 フリゲート艦 (精鋭な乗員) (14 点) .SH Botany Bay: .nf 北からの風、疾風。 (b) Shark 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Coral Snake 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (f) Sea Lion 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) .SH Voyage to the Bottom of the Sea: .nf 北西からの風、疾風。 このシナリオは、Richard BasehartとDavid Hedisonに捧げるものです。 (a) Seaview 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (a) Flying Sub \040 砲門 フリゲート艦 (一流の乗員) (17 点) (b) Mermaid 136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点) (s) Giant Squid 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) .SH Frigate Action: .nf 東からの風、疾風。 (a) Killdeer 40 砲門 フリゲート艦 (平均の乗員) (15 点) (b) Sandpiper 40 砲門 フリゲート艦 (平均の乗員) (15 点) (s) Curlew 38 砲門 フリゲート艦 (一流の乗員) (16 点) .SH The Battle of Midway: .nf 東からの風、和風。 (a) Enterprise \080 砲門 戦列艦 (一流の乗員) (31 点) (a) Yorktown \080 砲門 戦列艦 (平均の乗員) (27 点) (a) Hornet \074 砲門 戦列艦 (平均の乗員) (24 点) (j) Akagi 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (j) Kaga \096 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点) (j) Soryu \080 砲門 戦列艦 (未熟な乗員) (23 点) .SH Star Trek: .nf 南からの風、疾風。 (a) Enterprise 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Yorktown 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Reliant 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Galileo 450 砲門 戦列艦 (精鋭な乗員) (75 点) (k) Kobayashi Maru 450 砲門 戦列艦 (精鋭な乗員) (75 点) (k) Klingon II 450 砲門 戦列艦 (精鋭な乗員) (75 点) (o) Red Orion 450 砲門 戦列艦 (精鋭な乗員) (75 点) (o) Blue Orion 450 砲門 戦列艦 (精鋭な乗員) (75 点) .SH 結語 .I sail は共同作業の成果です。 .SH 作者 Dave Riggle .SH 共作者 Ed Wang .SH 改訂 Craig Leres .SH 顧問 .nf Chris Guthrie Captain Happy Horatio Nelson そして他の多くの優れた人々... .fi .SH 参考文献 .nf Wooden Ships & Iron Men, by Avalon Hill Game Co. (ボードゲーム) Captain Horatio Hornblower Novels, (13 of them) by C.S. Forester 「海の男/ホーンブロワー・シリーズ」 早川書房、セシル・スコット・フォレスター Captain Richard Bolitho Novels, (12 of them) by Alexander Kent 「海の勇士/ボライソー・シリーズ」 早川書房、アレグザンダー・ケント The Complete Works of Captain Frederick Marryat, (about 20) Captain Frederick Marryat全集, (約20)特に .in +6n Mr. Midshipman Easy Peter Simple Jacob Faithful Japhet in Search of a Father Snarleyyow, or The Dog Fiend Frank Mildmay, or The Naval Officer .in -6n .SH バグ 多分、少しはあると思います。 もし、バグを見つけたらどうか "riggle@ernie.berkeley.edu" と "edward@ucbarpa.berkeley.edu" にお知らせ下さい。 .\" Translated by Tetsuro FURUYA , on Dec 2, 1998. .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja_JP.eucJP/man/man7/environ.7 b/ja_JP.eucJP/man/man7/environ.7 index ff7b344101..7ac32e0b1a 100644 --- a/ja_JP.eucJP/man/man7/environ.7 +++ b/ja_JP.eucJP/man/man7/environ.7 @@ -1,198 +1,196 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)environ.7 8.3 (Berkeley) 4/19/94 -.\" %Id: environ.7,v 1.10 1997/03/08 14:41:44 wosch Exp % -.\" jpman %Id: environ.7,v 1.4 1999/01/21 17:56:13 kuma Stab % +.\" %Id: environ.7,v 1.10.2.1 1999/04/29 09:33:39 jkoshy Exp % .\" +.\" jpman %Id: environ.7,v 1.4 1999/01/21 17:56:13 kuma Stab % .Dd April 19, 1994 .Dt ENVIRON 7 .Os BSD 4.2 .Sh 名称 .Nm environ .Nd ユーザ環境 .Sh 書式 .Ar extern char **environ ; .Sh 解説 .Ar 環境 と呼ばれる文字列の配列は、 プロセス開始時に .Xr execve 2 を呼び出すことによって利用可能になります。 習慣によって、これらの文字列は .Dq Ar name=value という形を取ります。 以下の名前は多くのコマンドによって利用されます: .Bl -tag -width BLOCKSIZE .It Ev BLOCKSIZE いくつかのコマンド (最もよく知られている物としては .Xr df 1 , .Xr du 1 , .Xr ls 1 ) で用いられるブロック単位のサイズ。 .Ev BLOCKSIZE には、数字を指定することによってバイト単位の値を、 数字の後に ``K'' か ``k'' を指定することによってキロバイト単位の値を、 数字の後に ``M'' か ``m'' を指定することによってメガバイト単位の値を、 数字の後に ``G'' か ``g'' を指定することによってギガバイト単位の値を、 指定することができます。 512 バイトより小さい値や 1 ギガバイトより大きい値を指定しても無視されます。 .It Ev EXINIT .Xr ex 1 , -.Xr edit 1 , .Xr vi 1 が参照する、スタートアップ時のコマンドリスト。 .It Ev HOME .Xr login 1 によって、パスワードファイル .Xr passwd 5 を元にセットされるユーザのログインディレクトリ。 .It Ev LANG .Xr setlocale 3 を使用する全てのプログラムを、この変数に指定されたロケールを使うように 設定します。 .It Ev MAIL ユーザのメールボックスの場所です。 .Xr mail 1 , .Xr sh 1 , その他多くのメールクライアントが、デフォルトの /var/mail の 代わりに用います。 .It Ev PATH コロンで区切られたディレクトリの列です。 .Xr csh 1 , .Xr sh 1 , .Xr system 3 , .Xr execvp 3 などが、実行ファイルを探すときに検索します。 .Ev PATH の初期値は、 .Xr login 1 -によって、 ``/usr/bin:/bin'' にセットされます。 +によって、``/usr/bin:/bin'' にセットされます。 .It Ev PRINTER .Xr lpr 1 , .Xr lpq 1 , .Xr lprm 1 によって用いられるデフォルトのプリンタの名前。 .It Ev SHELL ユーザのログインシェルのフルパス名。 .It Ev TERM 出力を準備する必要のある端末の種類。 この情報は .Xr nroff 1 や .Xr plot 1 などの、端末の特殊な機能を駆使するコマンドによって用いられます。 端末タイプのリストは、 .Pa /usr/share/misc/termcap .Pq Xr termcap 5 を参照してください。 .It Ev TERMCAP .Ev TERM で指定した端末の機能を記述する文字列、あるいは、文字列が `/' で -始まる場合、 termcap ファイルの名前。 +始まる場合、termcap ファイルの名前。 下記の .Ev TERMPATH , -.Xr termcap 5 , -.Xr termcap 3 +.Xr termcap 5 を参照してください。 .It Ev TERMPATH -コロンあるいはスペースで区切られた、 termcap のパス名の列で、 +コロンあるいはスペースで区切られた、termcap のパス名の列で、 端末の機能記述を知るために、列挙された順番で検索されます。 .Ev TERMPATH を指定していない場合は、 .Ev TERMPATH を .Dq Pa $HOME/.termcap:/etc/termcap に指定している時と同じ結果になります。 .Ev TERMCAP がフルパス名を含んでいる場合は、 .Ev TERMPATH は無視されます。 .It Ev TMPDIR テンポラリファイルを置くための場所。ほとんどのアプリケーションは .Dq /tmp か .Dq /var/tmp を用います。この変数を指定すれば、他のディレクトリを使うようになるでしょう。 .It Ev TZ 日付を表示する時に使われるタイムゾーン。 通常のフォーマットは、 .Dq Pa /usr/share/zoneinfo からの相対パス名です。 例えば、コマンド .Dq env TZ=America/Los_Angeles date は、カリフォルニアの現在時刻を表示します。 より詳しい情報は、 .Xr tzset 3 を参照してください。 .It Ev USER ユーザのログイン名。 .El .Pp これ以外の名前も、 .Xr sh 1 においては .Xr export コマンドと .Ar name=value 引数によって、 .Xr csh 1 を使用している時には .Xr setenv コマンドによって環境に付け加えることができます。 .Pa .profile ファイルでしばしばエキスポートされる、 .Ev MAIL , .Ev PS1 , .Ev PS2 , .Ev IFS などのいくつかの .Xr sh 1 の変数を変更するのは、自分が何をしているのか十分に理解していない場合には 賢明ではありません。 .Sh 関連項目 .Xr cd 1 , .Xr csh 1 , .Xr ex 1 , .Xr login 1 , .Xr sh 1 , .Xr execve 2 , .Xr execle 3 , .Xr setlocale 3 , .Xr system 3 , .Xr termcap 3 , .Xr termcap 5 .Sh 歴史 .Nm environ マニュアルページは .Bx 4.2 から登場しました。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 99-1-21 diff --git a/ja_JP.eucJP/man/man7/ports.7 b/ja_JP.eucJP/man/man7/ports.7 index a3be314260..62e35b69ea 100644 --- a/ja_JP.eucJP/man/man7/ports.7 +++ b/ja_JP.eucJP/man/man7/ports.7 @@ -1,342 +1,342 @@ .\" .\" Copyright (c) 1997 David E. O'Brien .\" .\" 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 THE DEVELOPERS ``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 DEVELOPERS 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: ports.7,v 1.9 1998/12/30 17:32:47 hoek Exp % +.\" %Id: ports.7,v 1.9.2.1 1999/04/29 21:41:11 hoek Exp % .\" .\" jpman %Id: ports.7,v 1.3 1999/01/24 06:53:11 horikawa Stab % .Dd January 25, 1998 .Dt PORTS 7 .Os FreeBSD 2.2 .Sh 名称 .Nm ports .Nd 寄贈されたアプリケーション .Sh 解説 .Nm FreeBSD ports コレクション によって、ユーザや管理者は簡単にアプリケーションをインストールする ことができます。 .Em port はそれぞれ、オリジナルのソースコードを BSD 上でコンパイルして実行 させるために必要なパッチのすべてを含んでいます。アプリケーションの コンパイルは、 port のディレクトリで .Ic make build と入力するだけで簡単にできます。 port の .Ql Pa Makefile は、ローカルディスクからもしくは ftp を使って、自動的にアプリケーションの ソースコードを取得 .Pq fetch して、自分のシステムでそれを展開して、 パッチを当て、コンパイルします。すべてが順調に進んだ場合、 .Ic make install を実行することにより、アプリケーションがインストールされます。 .Pp インストールされたシステムよりも新しい ports を、 FreeBSD リポジトリからダウンロードして使用できます。 ただし、最初に適切な「アップグレードキット」を http://www.FreeBSD.ORG/ports/ から取得してインストールすることが重要です! 新しい ports をダウンロードするときには、 .Xr portcheckout 1 スクリプト (もちろんこれも port です!) が役立つでしょう。 .Pp port の利用に関してさらに情報が必要ならば、 .Nm ports コレクション (The Ports Collection) (原文: file:/usr/share/doc/handbook/ports.html または、 http://www.FreeBSD.ORG/handbook/ports.html。 和文: file:/usr/share/doc/ja/handbook/ports.html または、 http://www.FreeBSD.ORG/ja/handbook/ports.html) ) に目を通して下さい。 port を新規に作成するための情報については、 .Nm 自分で port を作る (Porting applications) (原文: file:/usr/share/doc/handbook/porting.html または、 http://www.FreeBSD.ORG/handbook/porting.html、 和文: file:/usr/share/doc/ja/handbook/porting.html または http://www.FreeBSD.ORG/ja/handbook/porting.html) に目を通して下さい。 どちらも FreeBSD ハンドブックの一部です。 .Pp .Sh ターゲット .Pp ターゲットのいくつかは、サブディレクトリを再帰的に make して行きます。 これにより、例えば、biology の port すべてをインストールすることが できます。再帰的に make を行なうターゲットは、 .Ar build , checksum , clean , configure , .Ar depends , extract , fetch , install , .Ar package です。 .Pp 次のターゲットは、それぞれすぐ手前のターゲットによって順に自動的に 実行されます。すなわち、 .Ar build は、 .Pq 必要があれば、 .Ar install によって実行されます。以下のターゲットそれぞれについて、同様のルールが .Ar fetch まで順次適用されます。 通常は、ターゲットとして、 .Ar install を指定するだけでよいはずです。 .Bl -tag -width configure .It Ar fetch MASTER_SITES と PATCH_SITES でリストされたサイトから、 この port を構築するために必要なファイルすべてを取得 .Pq fetch します。 .Ev FETCH_CMD と .Ev MASTER_SITE_OVERRIDE とを参照して下さい。 .It Ar checksum 取得した distfile が port で動作確認されたものと一致するかどうかを検証 します。 .Ev NO_CHECKSUM を定義することで、このステップを飛ばすことができます。 .It Ar depends 現在の port と依存関係にある port をインストール .Pq もしくは、必要がある場合のみコンパイル します。ターゲット .Ar extract もしくは .Ar fetch により呼び出された場合、 .Ar fetch-depends , .Ar build-depends などとしてひとつずつ実行されます。 .Ev NO_DEPENDS を定義することで、このステップを飛ばすことができます。 .It Ar extract distfile を作業用ディレクトリに展開します。 .It Ar patch port に必要なパッチすべてを適用します。 .It Ar configure port を構成 (configure) します。port によっては、この段階で質問して くるものもあります。 .Ev INTERACTIVE と .Ev BATCH を参照して下さい。 .It Ar build port を構築します。これはターゲット .Ar all を呼び出すことと同じです。 .It Ar install port をインストールし、この port をインストールしたことを パッケージシステムに登録します。このターゲットは、実際に必要なこと すべてを行なってくれます。 .El .Pp 次のターゲットは、通常のインストールプロセスでは実行されません。 .Bl -tag -width fetch-list .It Ar fetch-list この port を構築するために取得が必要なファイルのリストを表示します。 .It Ar depends-list package-depends コンパイル依存 port リストと実行依存 port リストを表示します。 また、これらの依存 port リストが依存する port についても表示します。 .It Ar clean 展開されたソースコードを削除します。 .Ev NOCLEANDEPENDS を定義しておかない限り、削除は依存関係にある port に再帰的に適用されます。 .It Ar distclean その port の distfile を削除し、 .Ar clean を実行します。 .Ev NOCLEANDEPENDS を定義しておかない限り、 .Sq clean の部分は依存関係にある port に再帰的に適用されます。しかし、 .Sq distclean の部分は決して再帰的に適用されません .Pq この挙動はひょっとするとバグかもしれません 。 .It Ar reinstall .Ar deinstall を使用すべきところでうっかり .Xr pkg_delete 1 を使ってしまった場合、このターゲットを使って port を復活させて下さい。 .It Ar deinstall .Xr pkg_delete 1 と同様に、インストールした port をシステムから削除します。 .It Ar package この port のバイナリパッケージを作成します。まだインストールされて いなかった場合、その port をインストールします。 パッケージは\ .tgz ファイルであり、その port を他のマシンに .Xr pkg_add 1 を使ってインストールする際に使用することができます。 .Ev PACKAGES で指定されたディレクトリが存在しなければ、パッケージはカレントディレクトリに 置かれます。 .Ev PKGREPOSITORY と .Ev PKGFILE とを参照して下さい。 .It Ar readmes その port の .Pa README.html ファイルを生成します。 ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/ports/templates/README.port を取得 .Pq Xr fetch 1 することが必要で、ディレクトリを .Ev TEMPLATES に設定しておく必要があります。 これはリリースエンジニアになる人のためのターゲットです。ほとんどの人は、 .Pa pkg/COMMENT と .Pa pkg/DESCR とを読むことができるだけです。 .El .Sh 環境変数 これら環境変数のすべてを変更することができます。 .Bl -tag -width MASTER_SITES .It Ev PORTSDIR port ツリーの場所を指定します。これは FreeBSD と OpenBSD では .Pa /usr/ports で、 .\"ZZZ: .Nx NetBSD では .\" .Fx .\" .Ox , .Pa /usr/pkgsrc です。 .It Ev DISTDIR distfile を探す場所であり、取得した distfile を置く場所です。通常は .Ev PORTSDIR の下の .Pa distfiles/ です。 .It Ev PACKAGES ターゲット .Ar package でのみ使用されます。 パッケージツリーのベースディレクトリです。通常は、 .Ev PORTSDIR の下の .Pa packages/ です。 このディレクトリが存在する場合、パッケージツリーが (部分的に) 構築されます。 このディレクトリは存在する必要はありません。存在しない場合、パッケージは カレントディレクトリに置かれます。もしくは、以下のいずれか一方を定義 することができます。 .Bl -tag -width PKGREPOSITORY .It Ev PKGREPOSITORY パッケージを置くディレクトリ。 .It Ev PKGFILE そのパッケージのフルパス。 .El .It Ev PREFIX 一般に、成果物をどこにインストールするかを指定します .Po 通常は .Pa /usr/local か、 .Pa /usr/X11R6 です .Pc 。 .It Ev MASTER_SITES ローカルマシンに配布ファイルが存在しない場合、最初に取得しに行くサイトです。 .It Ev PATCH_SITES ローカルマシンにパッチファイルが存在しない場合、最初に取得しに行くサイトです。 .It Ev MASTER_SITE_FREEBSD これが設定されている場合、すべてのファイルを FreeBSD のマスタサイトに 取りに行きます。 .It Ev MASTER_SITE_OVERRIDE すべてのファイルとパッチについて、まずこのサイトに行って取得を試みます。 .It Ev NOCLEANDEPENDS これが定義されている場合、依存関係にある port に対して .Sq clean を再帰的に適用しません。 .It Ev FETCH_CMD ファイルを取得する際に使用するコマンドです。通常は .Xr fetch 1 です。 .It Ev FORCE_PKG_REGISTER これが設定されている場合、既にシステムに存在するパッケージ登録情報を 上書きします。 .It Ev MOTIFLIB libXm.{a,so} の位置を指定します。 .It Ev INTERACTIVE これが設定されている場合、ユーザ入力が必要な port にのみ動作します。 .It Ev BATCH これが設定されている場合、100% 自動的にインストールできる port にのみ 動作します。 .El .Sh 関連ファイル .Bl -tag -width /usr/ports/xxxx -compact .It Pa /usr/ports デフォルトの port ディレクトリ (FreeBSD と OpenBSD)。 .It Pa /usr/pkgsrc デフォルトの port ディレクトリ (NetBSD)。 .It Pa /usr/share/mk/bsd.port.mk .\"kuma: big Kahuna というのはモアイのような巨大石のものらしい。 .\"kuma: だれか教えて?! ご本尊様であらしゃいます。 .Sh 関連項目 .Xr make 1 , .Xr pkg_add 1 , .Xr pkg_create 1 , .Xr pkg_delete 1 , .Xr pkg_info 1 , .Xr portcheckout 1 (port です), .Xr pib 1 (これも port です). .Pp FreeBSD ハンドブック .Pp http://www.FreeBSD.ORG/ports .Pq port すべてが検索可能なインデックス .Sh 作者 このマニュアルページは、もともとは .An David O'Brien によるものです。 ports コレクションは .An Satoshi Asami と恐るべき port チームによって維持管理されています。 .Sh 歴史 .Nm ports コレクション は、 .Fx 1.0 で登場しました。 .Sh バグ port に関する文書が 4 か所に分散されてしまっています。 -.Pa /usr/share/mk/bsd.port.mk , +.Pa /usr/ports/Mk/bsd.port.mk , ハンドブックの .Dq port コレクション のセクションと、 .Dq 既存のソフトウェアを port にする のセクション、 .Xr ports 7 の 4 つです。 .Pp このマニュアルページは長過ぎです。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai, 98-12-26 diff --git a/ja_JP.eucJP/man/man8/IPXrouted.8 b/ja_JP.eucJP/man/man8/IPXrouted.8 index 59f00bb84b..1f57eae2e4 100644 --- a/ja_JP.eucJP/man/man8/IPXrouted.8 +++ b/ja_JP.eucJP/man/man8/IPXrouted.8 @@ -1,177 +1,180 @@ .\" Copyright (c) 1986, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Copyright (c) 1995 John Hay. 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. .\" jpman %Id: IPXrouted.8,v 1.3 1997/07/27 13:00:54 horikawa Stab % .\" .Dd Oct 11, 1995 .Dt IPXROUTED 8 .Os FreeBSD .Sh 名称 .Nm IPXrouted .Nd IPX Routing Information Protocol デーモン .Sh 書式 .Nm IPXrouted +.Op Fl N .Op Fl q .Op Fl s .Op Fl S .Op Fl t .Op Ar logfile .Sh 解説 .Nm は IPX 経路テーブルを扱うために、ブート時に起動されます。 IPX 経路デーモンは、カーネルの経路テーブルエントリを最新に 保つために Novell の IPX Routing Information Protocol を用います。 .Pp 使用可能なオプション: .Bl -tag -width logfile +.It Fl N +GetNearestServer SAP 要求に対して応答しません。 .It Fl q (下記の .Fl s オプションとは反対に) 経路情報を提供しません。 .It Fl s ネットワークをつなぐルータであるないにかかわらず、 .Nm が強制的に経路情報を提供するようにします。 .It Fl S Service Advertizing Protocol .Nm (SAP) 情報を提供しません。デフォルトでは .Nm SAP 情報を提供します。 .It Fl t 送信・受信されたすべてのパケットを標準出力に表示します。 加えて、 .Nm は制御端末から切り離されないので、キーボードからの 割り込みはプロセスを kill することになります。 .It Ar logfile .Nm IPXrouted の 行動が記録されるファイル名を指定します。 このログには、経路テーブルのすべての変更についての情報や、 経路の変更に関わる最近の送受信メッセージの履歴が記録されます。 .El .Pp 通常、 .Nm は経路情報パケットを listen します。 ホストが複数の IPX ネットワークに接続されている場合には、 直接接続されているホストやネットワークすべてに経路テーブルの コピーを定期的に提供します。 .Pp .Nm が起動されると、 .Dv SIOCGIFCONF .Xr ioctl 2 を用いて、システムに組み込まれ、 .Dq up となっているインタフェースを探します (ソフトウェアループバックインタフェースは無視されます)。 インタフェースが複数ある場合には、そのホストがネットワーク間で パケットを転送するとみなします。 そして .Nm は各インタフェースに .Em リクエスト パケットを送信し(インタフェースがサポートしていれば ブロードキャストパケットを用います)、他のホストから .Em リクエスト と .Em レスポンス のパケットが来るのを listen し続けます。 .Pp .Em リクエスト パケットを受け取ると、内部のテーブルに基づく情報から返答パケットを 作成します。 作成された .Em レスポンス パケットは既知の経路の一覧を含み、各々は .Dq hop count metric を持っています(16 以上の count は .Dq 無限大 (到達不可能) を示します)。 返答された各々の経路に関する metric は、送信元からの .Em "相対的な" metric を提供します。 .Pp 以下の条件を一つでも満たす場合、 .Nm が受け取った .Em レスポンス パケットは経路テーブルの更新に使われます: .Bl -bullet .It 宛先となるネットワークやホストへの経路テーブルエントリが 存在せず、 metric が宛先が到達可能であるとしている (hop count が無限大でない)とき。 .It パケットの送信元ホストが、保持している経路テーブルエントリ内の ルータと同じであるとき。 すなわち更新された情報が、 宛先へのパケットが経由するネットワーク間ルータからもたらされたとき。 .It 経路テーブル内に存在するエントリがしばらくの間(定義では 90 秒) 更新されず、その経路が現在の経路と少なくとも同じ程度効率的であるとき。 .It 現在経路テーブル内に保持しているものよりも、新しい経路のほうが短いとき。 この判断にはテーブル内の経路の metric と新しい経路の metric が 比較されます。 .El .Pp 更新が受け入れられた場合、 .Nm は変更を内部テーブルに記録し、 .Em レスポンス パケットをすべての直接つながったホストとネットワークに流します。 .Xr routed 8 は、カーネルの経路テーブルを更新する前に、不安定な状態から 抜け出せるようにするために、しばらくの間(30 秒以内)待ちます。 .Pp .Nm は入ってくるパケットを処理するだけではなく、経路テーブル エントリを定期的にチェックします。 エントリが 3 分間更新されなかった場合、エントリの metric は 無限大に設定され、削除予定の印がつけられます。 実際の削除は、エントリの無効化が他のルータに伝わるのを確実に するために、さらに 60 秒後に行われます。 .Pp ネットワークをつなぐルータとなっているホストは、 30 秒ごとに 直接つながったすべてのホストとネットワークに自分の 経路テーブルを提供します。 .Pp .Nm が SIGINFO シグナルを受け取った場合、RIP と SAP テーブルの 現在の内容がファイル /tmp/ipxrouted.dmp に追加されます。 .Sh 関連項目 .Xr ipx 3 .Sh 歴史 diff --git a/ja_JP.eucJP/man/man8/ibcs2.8 b/ja_JP.eucJP/man/man8/ibcs2.8 index 55cd31b999..82e2531a03 100644 --- a/ja_JP.eucJP/man/man8/ibcs2.8 +++ b/ja_JP.eucJP/man/man8/ibcs2.8 @@ -1,64 +1,64 @@ .\" .\" Copyright (c) 1995 Lyndon Nerenberg .\" .\" All rights reserved. .\" .\" This program is free software. .\" .\" 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 THE DEVELOPERS ``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 DEVELOPERS 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: ibcs2.8,v 1.6.2.2 1999/04/06 13:59:14 ghelmer Exp % +.\" %Id: ibcs2.8,v 1.6.2.3 1999/04/23 16:15:28 ghelmer Exp % .\" .\" jpman %Id: ibcs2.8,v 1.3 1997/09/08 08:46:54 kuma Stab % .Dd November 27, 1995 .Dt IBCS2 8 .Os FreeBSD .Sh 名称 .Nm ibcs2 .Nd SCO および ISC バイナリのための iBCS2 ランタイムサポートをロードする .Sh 書式 .Nm ibcs2 .Sh 解説 .Nm ユーティリティは iBCS2 互換プログラムの カーネルランタイムサポートをロードします。 本ランタイムサポートの範囲は iBCS2 システムコールインタフェースの エミュレーションに限定されており、完全サポートには程遠いです。 COFF バイナリおよび共有ライブラリはサポートされていますが、 FreeBSD での配布には共有ライブラリは提供されていません。 .Sh 関連ファイル .Bl -tag -width /usr/share/examples/ibcs2/* -compact .It Pa /modules/ibcs2.ko .It Pa /modules/ibcs2_coff.ko iBCS2 ローダブルカーネルモジュール。 .Pp .It Pa /usr/share/examples/ibcs2/* エミュレータ検査用のサンプルオブジェクトファイル。 .Sh 関連項目 -.\"no equivalent yet for kld:.Xr lkm 4 , +.Xr kld 4 , .Xr kldload 8 .Sh バグ エミュレータは全く不完全です。 .Pp 動的にリンクされたバイナリを実行するにあたり、 既存の SCO システムの共有ライブラリへのアクセスが不可欠です。 .Pp 使用にあたりソースコードを読むことが不可欠です。 diff --git a/ja_JP.eucJP/man/man8/ipfw.8 b/ja_JP.eucJP/man/man8/ipfw.8 index 5db0e6ae78..a414e0d4e1 100644 --- a/ja_JP.eucJP/man/man8/ipfw.8 +++ b/ja_JP.eucJP/man/man8/ipfw.8 @@ -1,598 +1,601 @@ -.Dd July 20, 1996 +.\" +.\" %Id: ipfw.8,v 1.47.2.3 1999/04/29 19:22:13 ghelmer Exp % +.\" .\" jpman %Id: ipfw.8,v 1.4 1997/05/19 17:19:51 horikawa Stab % +.Dd July 20, 1996 .Dt IPFW 8 SMM .Os FreeBSD .Sh 名称 .Nm ipfw .Nd IPファイアウォール制御ユーティリィティ .Sh 書式 .Nm ipfw .Op Fl q .Oo .Fl p Ar preproc .Op Fl D Ar macro Ns Op Ns =value .Op Fl U Ar macro .Oc 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 .Fl p Ar preproc を使用して、 .Ar file がパイプされるプリプロセッサを指定することもできます。 有用なプリプロセッサには .Xr cpp 1 と .Xr m4 1 があります。 .Ar preproc の最初の文字がスラッシュから始まらない場合、 .Ev PATH を使用した通常の名前検索行われます。 .Nm が実行されるときまでに全ファイルシステムが (まだ) マウントされないような環境 (例えば NFS 経由でマウントされる場合) では、本件に注意してください。 ひとたび .Fl p が指定されると、オプションの .Fl D と .Fl U の指定を続けることが可能となり、これらがプリプロセッサに渡されます。 これにより、(ローカルホスト名により条件付けするなど) 柔軟性のある設定ファイルを作成可能となり、IP アドレスのように 頻繁に必要となる引数を集中管理するためのマクロを使用可能となります。 .Pp .Nm はパケットごとに、マッチするルールが見つかるまでルールリストを調べます。 各ルールにはパケット数とパケットサイズの 2 つのカウンタが用意されていて、 パケットがマッチするとカウンタ値は更新されます。 .Pp 全ルールは 1 から 65534 の範囲の行番号で順序付けられます。この番号によって ルールの並べ変えと削除を行ないます。 ルールのマッチングは昇順で行なわれ、最初にマッチしたものが適用されます。 複数のルールが同じ番号を共有することも可能です。この場合はルールが追加された 順序でマッチングが行なわれます。 .Pp 番号を指定せずにルールを追加した場合は、 既に定義されているルールの最大の番号に 100 を加えたものとなります。 ルールの番号が 65435 以上の場合は、新しいルールは同じ番号が与えられます。 。 .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 しかしながら、カーネルオプション .Dq IPFIREWALL_DEFAULT_TO_ACCEPT が有効な場合、ルールは次のようになります: .Bd -literal -offset center 65535 allow all from any to any .Ed .Pp このバリエーションでは全てが通過可能です。 このオプションを有効にしてよいのは特定の状況だけであり、 例えば通常は解放しており、 必要に応じてサービス拒否 (denial-of-service) フィルタとなる ファイアウォールシステムを使用する場合がこれに該当します。 .Pp オプションは以下のものが利用可能です。 .Bl -tag -width flag .It Fl a list 操作の時、カウンタの値を表示します。 show の項を参照のこと。 .It Fl f 操作を実行する際に確認メッセージを表示しません。 flush 操作も無条件に実行されます。 .Ar (注意) プロセスに tty が関連付けられていない場合には、 このオプションが指定されているものとして実行されます。 .It Fl q ルールを 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 fwd ipaddr Op ,port マッチしたパケットの次のホップを .Ar ipaddr に変更します。これはドット付き 4 つ組の IP アドレスでもホスト名でもよいです。 .Ar ipaddr が直接到達可能なアドレスではない場合、その IP に対して ローカルルーティングテーブルでみつかる経路を使用します。 .Ar ipaddr がローカルアドレスの場合、 リモートホストからこのシステムにパケットが到着すると、 そのパケットをローカルマシンの .Ar port に転換します。 その際、 ソケットのローカルアドレスは、 パケットの元々の宛先の IP アドレスのままとします。 これは透過的プロキシサーバのためにあります。 IP が ローカルアドレスではない場合、ポート番号は (指定されていても) 無視され、 ルールはシステムから出て行くパケットに対してのみ適用されます。 また、」 パケットローカルに生成された時にもアドレスをローカルポートにマップします。 検索はルールがマッチしたときに終了します。 ポート番号が与えられなかった場合、パケット中のポート番号が使用され、 外部マシンのポート Y へのパケットは ローカルポート Y へ転送されます。 カーネルは、 オプション IPFIREWALL_FORWARD 付きでコンパイルされている必要があります。 .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 ネットワーク越しにログインしている場合、KLD 版の .Nm をロードすることはそれほど単純なことではありません。 以下のコマンドを奨めます。 .Bd -literal -offset center kldload /modules/ipfw.ko && \e ipfw add 32000 allow all from any to any .Ed .Pp これに引続き、同じような状況で .Bd -literal -offset center ipfw flush .Ed .Pp とするのは良くありません。 .Pp システムセキュリティレベルが 3 以上に設定されている場合、 IP フィルタリストを変更できません (システムセキュリティレベルについては .Xr init 8 を参照してください)。 .Sh パケットの行き先変更 指定されたポートを見ているソケットは、そのポートへ行き先変更されたパケットを、 全部受けとります。 .Xr divert 4 を参照して下さい。ポートを見ているソケットがない場合やカーネルがパケットの行き 先変更をサポートするようにはコンパイルされていない場合、パケットは破棄されます 。 .Sh 使用例 次のコマンドは .Em cracker.evil.org から .Em wolf.tambov.su の telnet ポートへ送られる全ての TCP パケットを拒否するルールを追加します。 .Pp .Dl ipfw add deny tcp from cracker.evil.org to wolf.tambov.su 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 cpp 1 , .Xr m4 1 , .Xr divert 4 , .Xr ip 4 , .Xr ipfirewall 4 , .Xr protocols 5 , .Xr services 5 , .Xr init 8 , .Xr kldload 8 , .Xr reboot 8 , .Xr sysctl 8 , .Xr syslogd 8 .Sh バグ .Pp .Em WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!! .Pp このプログラムはコンピュータをかなり使いにくい状態にしてしまう可能性があります 。 はじめて使用する時はコンソール上で実行し、理解していない操作は .Em 絶対に実行しない ようにして下さい。 .Pp 連続したエントリの操作もしくは追加に際し、サービス名やプロトコル名は使用できま せん。 .Pp 入ってきたパケットの断片(フラグメント)が .Ar divert によって行き先を変更されると、ソケットに配送される前に、組み立て直しをします。 それに対し、 .Ar tee を経由した断片(フラグメント)は、組み立て直しされません。 .Pp ポートの別名でダッシュ (-) を含むものは、リストの最初には書けません。 .Pp ``tee'' アクションは未実装です。 .Sh 作者 .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/joy.8 b/ja_JP.eucJP/man/man8/joy.8 index b6627cbeb5..9dd78128ce 100644 --- a/ja_JP.eucJP/man/man8/joy.8 +++ b/ja_JP.eucJP/man/man8/joy.8 @@ -1,46 +1,46 @@ .\" .\" Copyright (c) 1996 Jean-Marc Zucconi .\" 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 THE DEVELOPERS ``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 DEVELOPERS 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: joy.8,v 1.4.2.1 1999/04/06 13:55:20 ghelmer Exp % +.\" %Id: joy.8,v 1.4.2.2 1999/04/23 16:15:39 ghelmer Exp % .\" .\" jpman %Id: joy.8,v 1.3 1997/07/22 16:48:04 horikawa Stab % .Dd March 16, 1996 .Dt JOY 8 .Os FreeBSD .Sh 名称 .Nm joy .Nd ジョイスティックドライバのカーネルモジュールを読み込む。 .Sh 書式 .Nm joy .Sh 解説 .Nm は、ジョイスティックドライバのカーネルモジュールを読み込みます。 .Sh 関連ファイル .Bl -tag -width /modules/joy.ko .It Pa /modules/joy.ko ジョイスティックの読み込み可能カーネルモジュール .Sh 関連項目 .Xr joy 4 , -.\"no equivalent for kld's yet":.Xr lkm 4 , +.Xr kld 4 , .Xr kldload 8 diff --git a/ja_JP.eucJP/man/man8/linux.8 b/ja_JP.eucJP/man/man8/linux.8 index ebf498fdf5..693d7d2e12 100644 --- a/ja_JP.eucJP/man/man8/linux.8 +++ b/ja_JP.eucJP/man/man8/linux.8 @@ -1,47 +1,47 @@ .\" .\" Copyright (c) 1997 .\" The FreeBSD Project. 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 THE DEVELOPERS ``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 DEVELOPERS 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: linux.8,v 1.3.2.1 1999/04/06 13:51:38 ghelmer Exp % +.\" %Id: linux.8,v 1.3.2.2 1999/04/23 16:15:50 ghelmer Exp % .\" .\" jpman %Id: linux.8,v 1.3 1997/07/22 16:50:43 horikawa Stab % .Dd January 9, 1997 .Dt LINUX 8 .Os FreeBSD .Sh 名称 .Nm linux .Nd Linux エミュレータのカーネルモジュールを読み込む .Sh 書式 .Nm linux .Sh 解説 .Nm は、Linux エミュレータのカーネルモジュールを読み込みます。 .Sh 関連ファイル .Bl -tag -width /modules/linux.ko .It Pa /modules/linux.ko Linux エミュレータの読み込み可能カーネルモジュール .Sh 関連項目 -.\"Can't find equivalent for modules (n_hibma@freebsd.org):.Xr lkm 4 , +.Xr kld 4 , .Xr kldload 8 , .Xr kldunload 8 , .Xr kldstat 8 diff --git a/ja_JP.eucJP/man/man8/mount_cd9660.8 b/ja_JP.eucJP/man/man8/mount_cd9660.8 index 6d8180e0b3..25ae416fe4 100644 --- a/ja_JP.eucJP/man/man8/mount_cd9660.8 +++ b/ja_JP.eucJP/man/man8/mount_cd9660.8 @@ -1,122 +1,124 @@ .\" Copyright (c) 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" Christopher G. Demetriou. .\" .\" 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_cd9660.8 8.3 (Berkeley) 3/27/94 .\" jpman %Id: mount_cd9660.8,v 1.2 1997/04/12 15:50:31 horikawa Stab % .Dd March 27, 1994 .Dt MOUNT_CD9660 8 .Os BSD 4 .Sh 名称 .Nm mount_cd9660 .Nd ISO-9660 ファイルシステムのマウント .Sh 書式 .Nm mount_cd9660 .Op Fl egrv .Op Fl o Ar options .Op Fl s Ar startsector .Ar special | node .Sh 解説 .Nm コマンドは、デバイス名 .Pa special 上の ISO-9660 ファイルシステムを、 グローバルファイルシステムの名前空間の .Pa node の示す位置に接続します。 通常このコマンドは、ブート時に .Xr mount 8 によって実行されます。 .Pp オプションは、次の通りです: .Bl -tag -width indent .It Fl e 拡張属性を使用します。 .It Fl g ファイルのバージョン番号を取り除きません (デフォルトでは、ディスク上に 異なったバージョン番号を持つファイルが存在する場合、最新のものだけが 見えます)。 どちらの場合でも、明示的にバージョン番号を指定しなくてもファイルを オープンする事が出来ます。 +.It Fl j +ファイルシステムに含まれる Joliet 拡張を使用しません。 .It Fl o .Fl o フラグの後には、コンマで区切ったオプション文字列を指定することができます。 指定可能なオプションとその意味は、 .Xr mount 8 マニュアルページを参照して下さい。 .It Fl r ファイルシステムに含まれるロックリッジ拡張 (Rockridge extension) を 使用しません。 .It Fl s Ar startsector ファイルシステム開始位置を .Ar startsector とします。 通常、対象のデバイスが CD-ROM ドライブの場合、 .Nm はデータを持つ CD-ROM の最後のトラックを見つけて、 ファイルシステム開始位置をそこであるとします。 デバイスが CD-ROM でない場合もしくは目録が判明しない場合、 ファイルシステムはセクタ 0 から開始されます。 このオプションはこの動作を変更するものです。 .Ar startsector は CD-ROM ブロック、すなわち 2048 バイトが単位であることに注意して下さい。 これは .Xr cdcontrol 8 の .Cm info コマンドノ例が示す通りです。 .It Fl v どのセクタから開始するかについての決定について冗長に報告します。 .El .Sh 関連項目 .Xr mount 2 , .Xr unmount 2 , .Xr fstab 5 , .Xr cdcontrol 8 , .Xr mount 8 .Sh バグ POSIX デバイスノードマッピングは、現在サポートしていません。 .Pp ロックリッジ拡張 (Rockridge extension) で使用している場合、 バージョン番号を取り除きません。 この場合、ロックリッジ名を持たないファイルをバージョン番号なしで アクセスすると、バージョン番号の最も大きいファイルではなく、 小さいファイルをアクセスします。 .Pp ECMA はサポートしていません。 .Sh 歴史 .Nm ユーティリティは、 .Bx 4.4 で最初に登場しました。 diff --git a/ja_JP.eucJP/man/man8/nologin.8 b/ja_JP.eucJP/man/man8/nologin.8 index f7f50635fa..b93f2e31ea 100644 --- a/ja_JP.eucJP/man/man8/nologin.8 +++ b/ja_JP.eucJP/man/man8/nologin.8 @@ -1,57 +1,58 @@ .\" Copyright (c) 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. .\" .\" @(#)nologin.8 8.1 (Berkeley) 6/19/93 -.\" %Id: nologin.8,v 1.2 1998/07/15 06:37:07 charnier Exp % -.\" jpman %Id: nologin.8,v 1.2 1997/03/31 14:54:31 horikawa Stab % +.\" %Id: nologin.8,v 1.2.2.1 1999/04/29 09:45:38 jkoshy Exp % .\" +.\" jpman %Id: nologin.8,v 1.2 1997/03/31 14:54:31 horikawa Stab % .Dd June 19, 1993 .Dt NOLOGIN 8 .Os BSD 4.4 .Sh 名称 .Nm nologin .Nd 丁寧に login を断る .Sh 書式 .Nm nologin .Sh 解説 .Nm は、 そのアカウントが利用出来ない旨のメッセージを表示して、 0 でない値を返して終了します。 このコマンドは、利用不可能とするアカウントの shell フィールドを 置き換えるという用途を想定しています。 .Sh 関連項目 -.Xr login 1 +.Xr login 1 , +.Xr nologin 5 .Sh 歴史 .Nm コマンドは .Bx 4.4 から登場しています。 diff --git a/ja_JP.eucJP/man/man8/periodic.8 b/ja_JP.eucJP/man/man8/periodic.8 index b0e94dba6a..e128bcba42 100644 --- a/ja_JP.eucJP/man/man8/periodic.8 +++ b/ja_JP.eucJP/man/man8/periodic.8 @@ -1,142 +1,142 @@ .\" Copyright (c) 1997 FreeBSD, Inc. .\" 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 THE AUTHOR 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. .\" -.\" %Id: periodic.8,v 1.8 1998/12/29 22:45:15 hoek Exp % +.\" %Id: periodic.8,v 1.8.2.2 1999/04/23 18:28:10 ghelmer Exp % .\" jpman %Id: periodic.8,v 1.3 1998/10/10 09:07:49 yohta Stab % .\" .\" WORD: registry レジストリ .\" WORD: script fragment スクリプトフラグメント .\" .Dd 13 August 1997 .Os FreeBSD 3.0 .Dt PERIODIC 8 .Sh 名称 .Nm periodic .Nd 定期的なシステム機能を実行する .Sh 書式 .Nm periodic .Ao .Cm daily | weekly | monthly | .Ar path Op path ... .Ac .Sh 解説 .Nm プログラムは指定されたディレクトリにあるシェルスクリプトを実行するために、 cron(8) に呼び出されることを意図しています。 .Pp 以下の引数からひとつだけを必ず指定しなければいけません : .Bl -tag -width Fl .It Cm daily 標準的な 1 日周期の実行ファイルを実行します。 これはよく (その地域の時刻で) 朝早くに行なわれます。 .It Cm weekly 標準的な 1 週間周期の実行ファイルを実行します。 これはよく日曜日の朝に行なわれます。 .It Cm monthly 標準的な 1 ヶ月周期の実行ファイルを実行します。 これはよく月の 1 日目に行なわれます。 .It Ar path 実行すべき一連の実行ファイルがあるディレクトリの絶対パスを指定します。 .El .Pp .Nm プログラムは指定されたディレクトリ (複数指定可) にある 各実行可能ファイルを実行します。もし実行可能ビットが セットされていないファイルがあっても、無視するだけで それに関するメッセージも表示しません。 .Sh 環境変数 .Nm コマンドは環境変数 .Ev PATH をすべての標準的なシステムディレクトリを含むように設定します。 ただし、 .Pa /usr/local/bin のような追加的なディレクトリは含めません。もし他のパスに 依存するような実行ファイルを加えるなら、それぞれの実行ファイルが 自己の環境変数を適切に設定する責任を負う必要があります。 .Sh 関連ファイル .Bl -tag -width /etc/periodic .It Pa /etc/crontab 典型的な .Nm プログラムの呼び出しはシステムのデフォルト cron テーブル内の エントリから行なわれます。 .It Pa /etc/periodic サブディレクトリとして .Pa daily , .Pa weekly , .Pa monthly を含む上層のディレクトリです。これらのサブディレクトリには システムの標準的な定期的実行ファイルが置かれます。 .It Pa /etc/rc.conf .Pa rc.conf システムレジストリは変数 .Va local_periodic を含みます。これは .Pa /usr/local/etc/periodic や .Pa /usr/X11R6/etc/periodic などのような、定期的に実行する標準の上層ディレクトリを 追加指定するのに使用できます。 .El .Sh 使用例 システム crontab には下の例のような .Nm のエントリが記述されているはずです : .Pp .Dl # do daily/weekly/monthly maintenance .Dl 0 2 * * * root periodic daily 2>&1 .Dl 0 3 * * 6 root periodic weekly 2>&1 .Dl 0 5 1 * * root periodic monthly 2>&1 .Pp さらに、典型的なシステムレジストリには変数 -.Va local_cron +.Va local_periodic について次のように記述してあるでしょう : -.Dl local_cron="/usr/local/etc/periodic /usr/X11R6/etc/periodic" # cron script dirs. +.Dl local_periodic="/usr/local/etc/periodic /usr/X11R6/etc/periodic" # cron script dirs. .Sh 関連項目 .Xr sh 1 , .Xr crontab 5 , .Xr rc.conf 5 , .Xr cron 8 .Rs .Sh 診断 終了状態は成功時には 0 です。もし以下のいずれかの理由で コマンドが失敗すれば、終了状態は 1 になります : .Bl -diag .It usage: periodic スクリプトフラグメントがどこにあるかを指定する ディレクトリパス引数が .Nm に渡されませんでした。 .It not found 説明するまでもありません。(訳注: 指定したディレクトリが見つかりません。) .El .Sh 歴史 .Nm プログラムは .Fx 3.0 に初めて登場しました。 .Sh 作者 .An Paul Traina Aq pst@FreeBSD.org diff --git a/ja_JP.eucJP/man/man8/ppp.8 b/ja_JP.eucJP/man/man8/ppp.8 index e9a8bb447a..58179ecb8f 100644 --- a/ja_JP.eucJP/man/man8/ppp.8 +++ b/ja_JP.eucJP/man/man8/ppp.8 @@ -1,4686 +1,4691 @@ -.\" %Id: ppp.8,v 1.142.2.3 1999/03/24 18:03:12 brian Exp % +.\" %Id: ppp.8,v 1.142.2.5 1999/04/23 13:46:28 brian Exp % .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .\" WORD: expect string 受信待ち文字列 (chat.8) .\" WORD: negotiation 交渉 .Dd 20 September 1995 .nr XX \w'\fC00' .Os FreeBSD .Dt PPP 8 .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Oo .Fl auto | .Fl background | .Fl ddial | .Fl direct | .Fl dedicated .Oc .Op Fl alias .Op Ar system Ns .No ... .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 クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It パケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP (rfc 1994) による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice は、集中データベースまたは分散データベースに、 ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Pa libradius が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP をサポート デバイス名が .Em host Ns No : Ns Em port 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、データ転送のための TCP 接続を開きます。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを 交渉することができます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 次のコマンドラインスイッチを .Nm ppp は理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクにデスクリプタ 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm はコマンドラインで指定されたシステムをロードし、対話プロンプトを提供します。 .It Fl alias このフラグは .Nm のモードを制御しません。 .Dq enable alias yes と等価です。さらに、 .Fl auto もまた指定されている場合、暗黙的に .Dq enable iface-alias が実行されます。 詳細については後述しているものを参照してください。 .Pp IP エイリアシングを有効にすると、 .Nm は、内部 LAN 上の全マシンに対する NAT もしくはマスカレーディングエンジンとして動作します。詳細は .Xr libalias 3 を参照してください。 .El .Pp さらに、1 つ以上の system をコマンドライン上に指定可能です。 .Sq system は .Pa /etc/ppp/ppp.conf の設定エントリです。起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Pp .Fl auto , .Fl background , .Fl ddial , .Fl direct , .Fl dedicated , .Fl interactive のいずれか 1 つのスイッチのみ指定可能です。 .Nm の .Sq モード は、 .Dq set mode コマンド (後述) を使用することで後で変更可能です。 .Pp 以降、対話モードの使用方法について説明します。 .Pp 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていなければ なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。 もし含まれていない場合や複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .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 シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは .Pq Xr named 8 を用いて ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq name-server 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm ppp のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 .Pq set to Dq none されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のモデム設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show modem Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接モデムと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらの開始交渉を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、交渉開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先との交渉に成功しなかったことをを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show modem * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時に交渉する場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .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 Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェースに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルの交渉に成功し、使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 .Po たとえば、 .Dq set server +3000 mypasswd とすると .Pc 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar maxinc は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar maxinc のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 .It Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .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 のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .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 を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの 交渉を有効にすることが可能です。 下記の記述を参照してください。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm ppp で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap .Pq もしくはその両方 を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号交渉時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669 .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバと交渉できないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .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/24 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 .Ar MyAuthPasswd が .Pq Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .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 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0/24 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 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 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 パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Oo .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Oo Ar proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Oc .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 19 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny のいずれかです。 もし、あるパケットがルールに一致した場合、 結びつけられた action が直ちに実行されます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .It .Ar proto は .Sq icmp , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It パケットにマッチするルールが無い場合は、パケットは破棄 (ブロック) されます。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 .Pp 3 分 です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Pq 接続相手が両方のプロトコルをサポートしていると仮定しています。 .Pp デフォルトでは、DEFLATE について交渉するときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を 交渉に使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE 交渉を成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .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 上の例の意味は次の通りです: .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 アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .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 コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります。 .Pq Dq \&: : .Bd -literal -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .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 秒以内に受信できなければ、 もう 1 度 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 または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** Ns が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp FreeBSD では cuaa0 が 1 つめのシリアルポートになります。 OpenBSD で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 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 プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Pp .Ed ローカル DNS を走らせている場合には、これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: 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 XX .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 .El .Pp .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname .Pq と Sq authkey について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続の交渉を行います。 .Pp デフォルトでは .Po .Sq deflink と呼ばれる .Pc ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 link deflink remove .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードで交渉をすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードの交渉を行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width XX .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手と交渉するかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width XX .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は非常に良く似たフィールドを持ちますので、 簡単に圧縮可能です。 .It chap Ns Op \&05 デフォルト: 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" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、MS-CHAP 認証を要求することは 決してありません。 .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 Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd と交渉する能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとの交渉を許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS 交渉を許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、ppp は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注釈: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .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 と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) の交渉を行うために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードの交渉時に .Pq 12 ビットの 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手と交渉しません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティック経路 リストは依然として保守されます。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq modem のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl alias が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 IP エイリアシングが有効な場合のみ .Pq Dq alias enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを IP エイリアスエンジン .Pq Xr libalias 5 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq alias enable off として IP エイリアシングを disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op \&! .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add! コマンド .Po .Dq \&! に注意 .Pc 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR もしくは .Dq MYADDR を含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR もしくは .Dv MYADDR の値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 ユーザレベルでのアクセスは可能であり、 設定ファイルのラベルと .Nm の実行モードに依存します。 例えば、ユーザ .Sq fred のみがラベル .Sq fredlabel に .Fl background モードでアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width XX .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドが指定されると、 .Dq allow users が記載されているセクションに列挙されているユーザのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。後続する .Dq allow users コマンドは、先行するコマンドに優先します。 あるラベル以外のすべてにアクセスを許すことが可能であり、 そのためにはデフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをこのあるラベルに指定します。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It alias Ar command Op Ar args このコマンドは .Nm 組込みのエイリアシング (マスカレーディング) 機能を 制御するために使用します。 あなたのシステムでエイリアシングが有効になると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width XX .It alias enable Op yes|no エイリアシングを有効もしくは無効にします。 .Fl alias コマンドラインフラグは .Dq alias enable yes と同じ意味です。 .It alias addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It alias deny_incoming Op yes|no yes に設定すると、 ファイアウォールとほぼ同様にパケットを落とすことにより、 このコマンドは全入力接続を拒否します。 .It alias help|? このコマンドは、使用可能な alias コマンドのまとめを表示します。 .It alias log Op yes|no このオプションは、alias の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 -.It alias port Xo -.Op Ar proto -.Ar targetIP Ns No \&: Ns Ar targetPORT -.Op Ar aliasIP Ns No \&: Ns -.Ar aliasPORT +.It alias port Ar proto Ar targetIP Ns Xo +.No : Ns Ar port Ns +.Oo +.No - Ns Ar port +.Oc Ar aliasport Ns +.Oo +.No - Ns Ar aliasport Ns +.Oc .Xc -このコマンドにより、 -マシン -.Ar aliasIP -の -.Ar aliasPORT -へ到着する接続を、 +このコマンドは、ポート +.Ar aliasport +への入力の +.Ar proto +接続を、 .Ar targetIP -の -.Ar targetPORT +のポート +.Ar port へリダイレクトします。 -.Ar aliasIP -のデフォルトは、現在のインタフェースアドレスです。 .Ar proto -は -.Sq tcp -もしくは -.Sq udp -のいずれかで、指定したプロトコルの接続のみマッチします。 +は、 +.Dq tcp +または +.Dq udp +です。 +.Pp +ポート番号の範囲は、前述のように指定可能です。 +範囲は同じ大きさであることが必用です。 +.Pp あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 -.It "alias pptp" Op Ar addr +しかし、ポートあたり内部マシン 1 台のみに接続可能という制限があります。 +.It alias pptp Op Ar addr すべての .Em G Ns No eneral .Em R Ns No outing .Em E Ns No encapsulated .Pq Dv IPPROTO_GRE パケットを、ローカルインタフェースアドレスではなく .Ar addr を使用することにより、 .Nm にエイリアスさせます。 これは、マシンの内部ネットワーク上で .Em P Ns No oint to .Em P Ns No oint .Em T Ns No unneling .Em P Ns No rotocol の使用を許します。 .Pp .Ar addr を指定しないと、 .Dv PPTP エイリアスは無効になります。 .It "alias proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It alias same_ports Op yes|no 有効になると、 エイリアスライブラリが出力パケットのポート番号を変更しようとすることを 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It alias use_sockets Op yes|no 有効になると、 エイリアスライブラリにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It alias unregistered_only Op yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.alias ファイル中でも議論されています。 .Pp .It Op \&! Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear modem|ipcp Op current|overall|peak... .Dq modem もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op \&! 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term .Pq 後述 を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq \&! が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP 交渉を開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op \&! .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete! コマンドが使用された場合 .Po 最後の .Dq \&! に注意 .Pc 、存在しない経路について .Nm は文句を言わなくなります。 .It dial|call Op Ar label 引数なしで使用された場合、このコマンドは .Dq open コマンドと同一です。 .Ar label が 1 つ以上指定された場合、最初に .Dq load が実行されます。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、モデムはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op \&! .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op \&! .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm ppp が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width XX .It iface add[!] Ar addr[[/bits| mask] peer] 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です .Pq addr との間に空白を入れてはなりません 。指定したアドレスが既に存在する場合、 .Dq \&! を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP 交渉されたアドレス以外の全アドレスがインタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op \&! Ns .No |rm Ns Op \&! .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq \&! が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 .Dq open コマンドを引数なしで用いることは .Dq dial を引数なしで用いることと同一です。 すなわちすべての閉じられたリンクが、現在の設定を用いて起動されます ( .Dq set autoload コマンドに基づいた自動リンクの中には起動されないものもあります)。 .Pp LCP 層がすでにオープンされているときに .Dq lcp を指定すると、LCP は再度交渉されます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度交渉された後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度交渉されます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度交渉され、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It save このオプションは (まだ) 実装されていません。 .It set Ns Xo .No Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width XX .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手と交渉され、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP の交渉で使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\P シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq \& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp .Dq \&! を無視し、前述の .Dq !bg コマンドと同様に特殊な名前を同様に置換しながら、 .Ar value は実行すべきプログラムとしてパーズされます。 プログラムを実行すると、 .Nm はこのプログラムに対して 3 行の入力を与えます。 各行は改行文字で終了しています: .Bl -bullet .It CHAP チャレンジに含めて送られるホスト名。 .It CHAP チャレンジに含めて送られるチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp 2 行の出力が期待されています: .Bl -bullet .It CHAP 応答と共に送るべき .Dq authname 。 .It チャレンジと要求 ID で暗号化した .Dq authkey であり、応答は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることが期待されます。 指定されたチャレンジに対する適切な秘密情報を、 暗号化デバイスまたは Secure ID カードが計算することが求められています。 .It set authname Ar id クライアントモードでの PAP または CHAP の交渉で使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar max-duration max-load Op Ar min-duration min-load .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はすべて 0 です。 1 つ以上の .Ar demand-dial .Po .Fl auto としても知られる .Pc モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクは、 .Ar max-duration 秒の間、送出キューに .Ar max-load 以上のパケットが存在した場合にのみ開かれます。 両方のデフォルト値が 0 であるため、 .Ar demand-dial リンクはデフォルトでは 1 つだけオープンされます。 .Pp 複数のリンクが開かれていて、少なくともその内の 1 つが .Ar demand-dial リンクである場合、 .Ar min-duration 秒の間、送出キューに最大 .Ar min-packets 未満のパケットしか存在しなかったときに閉じられます。 .Ar min-duration が 0 の場合には、タイマは無効になります。 デフォルトでは両方の値が 0 であるため、 .Ar demand-dial リンクはバンドルされたアイドルタイマが期限切れになるまで アクティブであり続けます。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードで、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、これを指定する必要があります。 .El .Pp .It set cbcp Oo Xo .No *| Ns Ar number Ns No .Oo .No , Ns Ar number Ns .Oc .No ... .Op Ar delay Op Ar retry .Oc .Xc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Ar seconds Ns Op \&! 通常、ログインスクリプト完了の 1 秒後に、 .Nm はキャリアの存在をチェックします。 キャリアが設定されていないと、 デバイスがキャリアをサポートしていない (ほとんどのヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実を記録して、キャリアのチェックを止めます。 しかし、モデムによってはキャリアのアサートに時間がかかるものがあるので、 リンクが落ちたときを .Nm ppp は検知できなくなります。 .Ar seconds は、ログインスクリプトが完了してから最初のキャリアチェックを行う前に、 .Nm が待つべき秒数を指定します。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq \&! がある場合、 .Nm はキャリアを .Em 要求 します。 最初のチェックでキャリアを検知しないと、リンクは切断されているとみなされます。 .Pp リンクが tty でない場合、キャリアの .Em 必要性 は無視されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 20 パケット (マルチリンクモードでは .Em 20 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 全シリアルデバイス名は .Pa /dev/ から始まることが仮定されています。 .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq \&! から始めるか、 .Dq host:port の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .Dq host:port の組が与えられる場合、 .Nm は、指定された .Dq host の指定された .Dq port と接続しようとします。 詳細は上述の .Em PPP オーバ TCP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -unfilled -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 が対話モードで実行されている場合、ファイルデスクリプタ 3 は .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 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP 交渉の前に設定されると、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bd -unfilled -offset indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前に交渉されますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .Ed .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny .Oo Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc Oo tcp|udp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Oc .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングは、 エイリアスエンジンが行う IP 変更の前に適用されます。 デフォルトでは、全フィルタセットが全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script モデムを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp .Ar hisaddr に IP 番号の範囲として .Bd -literal -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc No ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP 接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP 交渉で使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装と交渉するときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP 交渉で使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp .Po PAP か CHAP が .Dq enable である場合 .Pc クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手との交渉を避けるために、 どのような交渉セッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注釈: コマンド .Dq set mode auto を発行し、IP エイリアシングが enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP 交渉を有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Op Ar value デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 引数が指定されないと、1500 が仮定されます。 .It set mtu Op Ar value デフォルトの MTU は 1500 です。 交渉時に、(296 バイト未満でなければ) 相手が望むいかなる MRU および MRRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU/MRRU の値を受け付けなくなります。 交渉が完了すると、相手がより大きな MRU/MRRU を要求していたとしても、 インタフェースに対して MTU が割り当てられます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar 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 Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP 交渉で合意された相手の MRU より小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP 交渉において .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar maxinc 回だけです。 .Ar maxinc のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq \&! を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set server|socket Ar TcpPort|LocalName|none password Op Ar mask このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定する必要があります。 .Sq 0 から始まる 4 桁 8 進数で指定します。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd コマンドを使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed Ar value シリアルデバイスの速度を指定します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮を交渉するか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手と交渉をします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 20 .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 .Po Dq iface show と同じです .Pc を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show modem 現在の下位レベルリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はモデムに送られます。 モデムから読んだ文字はスクリーンに表示されます。 モデムの相手側に .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq alias ? , .Dq enable ? , .Dq set ? , .Dq show ? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It http://www.FreeBSD.org/FAQ/userppp.html .It http://www.FreeBSD.org/handbook/userppp.html .El .Pp .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width XX .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/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr libalias 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr route 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、 FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。 .Pp 1997 年中に Brian Somers (brian@Awfulhak.org) が本格的な修正をし、 11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを Brian Somers が書き直しました。 diff --git a/ja_JP.eucJP/man/man8/ypset.8 b/ja_JP.eucJP/man/man8/ypset.8 index e951f543ab..aebbc481fe 100644 --- a/ja_JP.eucJP/man/man8/ypset.8 +++ b/ja_JP.eucJP/man/man8/ypset.8 @@ -1,89 +1,89 @@ .\" .\" Copyright (c) 1994 Jason R. Thorpe .\" 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 Jason Thorpe. .\" 4. 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 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: ypset.8,v 1.6 1998/03/23 08:31:20 charnier Exp % .\" jpman %Id: ypset.8,v 1.2 1997/04/06 14:59:23 horikawa Stab % .\" .Dd October 25, 1994 .Dt YPSET 8 .Os .Sh 名称 .Nm ypset .Nd .Xr ypbind 8 に使用すべき YP サーバを指示する .Sh 書式 .Nm ypset .Op Fl h Ar host .Op Fl d Ar domain .Ar server .Sh 解説 .Nm ypset は、同一マシン上の .Xr ypbind 8 プロセスに、通信すべき YP サーバプロセスを指示します。 もし .Ar server がダウンしていたり YP サーバプロセスが動作していない場合、 YP クライアントプロセスが YP マップにアクセスしようと試みるまでは検知されません。 YP マップをアクセスしようとした時に、 .Xr ypbind 8 はバインドをテストして適切な処理を行います。 .Pp .Nm ypset は、最も近い YP サーバともブロードキャストネットワークが異なる YP クライアントをバインドする場合に最も有用ですが、 ローカルなネットワークの YP の構成をデバッグする場合、 特定の YP クライアントのプログラムをテストする場合、 ローカルネットワークに存在する複数の YP サーバの中から 特定のサーバにバインドする場合にも使用できます。 .Pp オプションは以下の通りです: .Bl -tag -width flag .It Fl h Ar host ローカルマシンではなく、指定したホスト .Ar host にバインドします。 .It Fl d Ar domain .Xr domainname 1 が返すデフォルトドメインではなく、指定した YP ドメイン .Ar domain を使用します。 .El .Sh 関連項目 .Xr domainname 1 , -.Xr yp 4 .Xr ypcat 1 , .Xr ypmatch 1 , +.Xr yp 4 , .Xr ypbind 8 , .Sh 作者 .An Theo De Raadt