Solaris のシステム管理 (ネットワークサービス)

第 26 章 UUCP (リファレンス)

この章では、UUCP を使用する場合のリファレンス情報について説明します。次の項目について説明します。

UUCP /etc/uucp/Systems ファイル

/etc/uucp/Systems ファイルには、uucico デーモンがリモートコンピュータとの通信リンクを確立するために必要な情報が入っています。/etc/uucp/Systems は、UUCP を構成するときに編集しなければならない最初のファイルです。

Systems ファイルの中の各エントリは、このホストが通信するリモートコンピュータを表します。1 つのホストについて複数のエントリがある場合もあります。付加的なエントリは、順番に試される代替通信パスを表します。さらに、UUCP のデフォルト状態では、/etc/uucp/Systems ファイルに含まれていないコンピュータがこのホストにログインできないようになっています。

Sysfiles ファイルを使用して、Systems ファイルとして使用されるファイルをいくつか定義できます。Sysfiles の詳細は、「UUCP /etc/uucp/Sysfiles ファイル」を参照してください。

Systems ファイルのエントリの形式は次のとおりです。


System-Name    Time    Type    Speed    Phone    Chat Script

次に、Systems ファイルのエントリ例を示します。


例 26–1 /etc/uucp/Systems のエントリ


Arabian     Any  ACUEC 38400 111222  ogin: Puucp ssword:beledi

Arabian

System-Name フィールドのエントリ。詳細は、/etc/uucp/Systems ファイルの System-Name フィールド」を参照

Any

Time フィールドのエントリ。詳細は、/etc/uucp/Systems ファイルの Time フィールド」を参照

ACUEC

Type フィールドのエントリ。詳細は、/etc/uucp/Systems ファイルの Type フィールド」を参照

38400

Speed フィールドのエントリ。詳細は、/etc/uucp/Systems ファイルの Speed フィールド」を参照

111222

Phone フィールドのエントリ。詳細は、/etc/uucp/Systems ファイルの Phone フィールド」を参照

ogin: Puucp ssword:beledi

Chat Script フィールドのエントリ。詳細は、/etc/uucp/Systems ファイルの Chat-Script フィールド」を参照

/etc/uucp/Systems ファイルの System-Name フィールド

このフィールドには、リモートコンピュータのノード名が入ります。TCP/IP ネットワークでは、この名前は、マシンのホスト名でも、/etc/uucp/Sysname ファイルによって UUCP 通信用として特別に作成した名前でもかまいません。「UUCP /etc/uucp/Systems ファイル」を参照してください。例 26–1 では、System-Name フィールドにはリモートホスト Arabian に関するエントリが含まれています。

/etc/uucp/Systems ファイルの Time フィールド

このフィールドには、リモートコンピュータを呼び出すことのできる曜日と時刻を指定します。Time フィールドの形式は次のとおりです。

daytime[;retry]

Time フィールドの day

day の部分には、次のエントリのいくつかを含むリストを指定できます。

Su Mo Tu We Th Fr Sa

個々の曜日

Wk

任意の平日

Any

任意の日

Never

このホストはこのリモートコンピュータの呼び出しをいっさい行わない。呼び出しはリモートコンピュータ側から行う必要がある。それを受けて、このホストは「受動モード」で稼動する

Time フィールドの time

例 26–1 では、Time フィールドに Any が示されています。これは、ホスト Arabian をいつでも呼び出せるということです。

time の部分には、24 時間表記で表した時間の範囲を指定します。たとえば、午前 8 時 00 分から午後 12 時 30 分までなら 0800-1230 とします。time の部分を指定しなかった場合は、どのような時刻にでも呼び出しができるものとみなされます。

0000 の前後にまたがる時間範囲も指定できます。たとえば、0800-0600 は、午前 6 時から午前 8 時までの間を除くすべての時間帯で呼び出し可能であることを示します。

Time フィールドの retry

retry サブフィールドには、試行が失敗してから次の再試行までの間に最小限必要な時間 (分単位) を指定できます。デフォルトの待ち時間は 60 分です。サブフィールド区切り文字はセミコロン (;) です。たとえば、Any;9 は、呼び出しはいつでもできるが、失敗したときは次の再試行までに少なくとも 9 分は待たなければならないことを意味します。

retry エントリを指定しなかった場合は、待ち時間倍加アルゴリズムが使用されます。これは、UUCP がデフォルトの待ち時間から始めて、失敗した試行の回数が増えるほど待ち時間を長くしていくことを意味します。たとえば、最初の再試行待ち時間が 5 分であるとします。応答がない場合は、次の再試行は 10 分後となります。次の再試行は 20 分後というようになり、最大再試行時間の 23 時間に達するまで増加します。retry を指定した場合は、常にその値が再試行待ち時間となります。指定がなければ待ち時間倍加アルゴリズムが使用されます。

/etc/uucp/Systems ファイルの Type フィールド

このフィールドには、リモートコンピュータとの通信リンクを確立するために使用するデバイスタイプを指定します。このフィールドで使用するキーワードは、Devices ファイル中のエントリの最初のフィールドと突き合わされます。


例 26–2 Type フィールドのキーワード


Arabian    Any    ACUEC, g    38400    1112222    ogin: Puucp ssword:beledi

Type フィールドでは、さらに、システムとの接続に使用するプロトコルを定義できます。上記の例では、デバイスタイプ ACUECg プロトコルを組み合わせる方法を示しています。プロトコルの詳細は、/etc/uucp/Devices ファイル内のプロトコル定義」を参照してください。

/etc/uucp/Systems ファイルの Speed フィールド

このフィールド (Class フィールドとも呼ばれます) は、通信リンクの確立に使用するデバイスの転送速度を指定します。UUCP speed フィールドには、ダイアラのクラスを区別するために、1 個の英字と速度を含めることができます (たとえば C1200D1200)。/etc/uucp/Devices ファイルの Class フィールド」を参照してください。

デバイスにはどのような速度でも使用できるものがあり、その場合はキーワード Any を使用できます。このフィールドは、Devices ファイルの対応するエントリの Class フィールドに一致していなければなりません。


例 26–3 Speed フィールドのエントリ


eagle    Any    ACU, g    D1200    NY3251    ogin: nuucp ssword:Oakgrass

このフィールドに情報を入れる必要がない場合は、フィールドの数を合わせるためにダッシュ (-) を指定してください。

/etc/uucp/Systems ファイルの Phone フィールド

このフィールドには、自動ダイアラ (ポートセレクタ) に与えるリモートコンピュータの電話番号 (トークン) を指定できます。電話番号は、オプションの英字による省略名と数字部分で構成されます。省略名を使用する場合は、Dialcodes ファイル内に列挙されているものの 1 つでなければなりません。


例 26–4 Phone フィールドのエントリ


nubian    Any    ACU       2400    NY555-1212    ogin: Puucp ssword:Passuan
eagle     Any    ACU, g    D1200   NY=3251       ogin: nuucp ssword:Oakgrass

Phone フィールドでは、等号 (=) は二次発信音を待ってから残りの数字をダイアルするという ACU への指示となります。文字列の中にダッシュ (-) があれば、4 秒間待ってから次の数字をダイアルするという指示になります。

コンピュータがポートセレクタに接続されている場合は、そのセレクタに接続しているほかのコンピュータにアクセスできます。この種のリモートマシン用の Systems ファイルエントリの Phone フィールドには、電話番号を入れません。代わりに、このフィールドにはスイッチに渡すトークンを指定します。このようにすれば、このホストがどのリモートマシンとの通信を望んでいるかを、ポートセレクタが判断できます。この場合は、システム名だけを指定するのが普通です。対応する Devices ファイルエントリでは、エントリの末尾に \D を指定して、このフィールドが Dialcode ファイルを使用して解釈されないようにしなければなりません。

/etc/uucp/Systems ファイルの Chat-Script フィールド

このフィールド (Login フィールドとも呼ばれる) には、「chat スクリプト」と呼ばれる文字列が入ります。chat スクリプトには、ローカルマシンとリモートマシンが対話の最初の時点で互いに受け渡ししなければならない文字が含まれています。chat スクリプトの形式は次のとおりです。

expect send [expect send] ....

expect は、対話を開始するために、ローカルホストがリモートホストから受信することを想定している文字列です。send は、ローカルホストが、リモートホストからの expect 文字列を受信したあとで送信する文字列です。chat スクリプトには、複数の expect-send シーケンスを含めることもできます。

基本的な chat スクリプトには次の情報が含まれます。

expect フィールドは、次の形式のサブフィールドを持つことができます。

expect[-send-expect]...

-send は、その前の expect が正常に読み取れなかった場合に送られるものであり、-send のあとの -expect は、その次に送られてくると想定されている文字列です。

たとえば、login--login という文字列を指定した場合、ローカルホストの UUCP は login が送られてくることを想定します。リモートマシンから login を受信すると、UUCP は次のフィールドに進みます。login を受信しなかった場合は、UUCP はキャリッジリターンを送信し、再度 login が送られてくるのを待ちます。ローカルコンピュータが、初期状態でどのような文字も想定していない場合は、expect フィールドで文字列 "" (NULL 文字列) を指定します。send 文字列が \c で終わっている場合を除き、send フィールドの送信のあとには必ずキャリッジリターンが伴うという点に注意してください。

次に示すのは、expect-send 文字列を使用する Systems ファイルエントリの例です。


sonora Any ACUEC 9600 2223333 "" \r \r ogin:-BREAK-ogin: Puucpx ssword:xyzzy

この例は、ローカルホストの UUCP に、2 個のキャリッジリターンを送ってから ogin: (Login: という場合もあるため) を待つように指示しています。ogin: を受信しなかった場合は、 BREAK を送ります。ogin: を受信した場合は、ログイン名 Puucpx を送ります。ssword: (Password: を表す) を受け取ったら、パスワード xyzzy を送ります。

次の表に、便利なエスケープ文字をいくつか紹介します。

表 26–1 Systems ファイルの chat スクリプトで使用されるエスケープ文字

エスケープ文字 

意味 

\b

バックスペース文字を送信または想定します。 

\c

文字列の末尾で使用すると、普通なら送信されるキャリッジリターンが抑止されます。その他の場合は無視されます。 

\d

後続の文字を送る前に 1 〜 3 秒の遅延が生じます。 

\E

エコーチェックを開始します。これ以降は、1 文字送信するたびに、UUCP はその文字が受信されるまで待ち、その後、チェックを続行します。 

\e

エコーチェックをオフにします。  

\H

ハングアップを 1 回無視します。このオプションはコールバックモデム用に使用します。 

\K

BREAK 文字を送信します。 

\M

CLOCAL フラグをオンにします。

\m

CLOCAL フラグをオフにします。

\n

改行文字を送信または想定します。 

\N

NULL 文字 (ASCII NUL) を送信します。 

\p

約 1/4 秒間または 1/2 秒間、一時停止します。 

\r

キャリッジリターンを送信または想定します。 

\s

スペース文字を送信または想定します。 

\t

タブ文字を送信または想定します。 

EOT

EOT とそれに続く 2 個の改行文字を送信します。 

BREAK

BREAK 文字を送信します。 

\ddd

8 進数 (ddd) で表される文字を送信または想定します。

Chat スクリプトを使用したダイアルバックの有効化

組織によっては、リモートコンピュータからの呼び出しを処理するダイアルインサーバーを設定する場合があります。たとえば、コールバックモデムを持つダイアルインサーバーを配備し、社員が自宅のコンピュータから呼び出せるようにすることができます。ダイアルインサーバーは、リモートマシンを識別すると、そのリモートマシンとのリンクを切断し、逆にそのリモートマシンを呼び出して、通信リンクが再確立されます。

Systems ファイルの chat スクリプトで、コールバックが必要な箇所で \H オプションを使用することにより、コールバックの操作を簡素化することができます。ダイアルインサーバーのハングアップが予想される箇所で、expect 文字列の一部として \H を使用します。

たとえば、ダイアルインサーバーを呼び出す chat スクリプトに、次のような文字列が含まれているとします。


INITIATED\Hogin:

ローカルホストの UUCP ダイアル機能は、ダイアルインサーバーから INITIATED という文字列を受け取ることを想定しています。文字列 INITIATED を受け取ると、ダイアル機能は、ダイアルインサーバーがハングアップするまで、その後受信するすべての文字をフラッシュします。またダイアル機能は、expect 文字列のその次の部分、つまり ogin: という文字列がダイアルインサーバーから送られてくるのを待ちます。ogin: を受け取ると、ダイアル機能は chat スクリプトを先へ進めます。

上記のサンプルでは \H の前後に文字列が指定されていますが、これらはなくてもかまいません。

/etc/uucp/Systems ファイルでのハードウェアフロー制御

擬似送信文字列 STTY= value を用いることによっても、モデムの特性を設定できます。たとえば、STTY=crtscts を使用すると、ハードウェアフロー制御が可能になります。STTY はすべての stty モードを受け入れます。詳細は、stty(1)termio(7I) のマニュアルページを参照してください。

次の例は、Systems ファイルのエントリ内でハードウェアフロー制御を指定しています。


unix Any ACU 2400 12015551212 "" \r ogin: Puucp ssword:Passuan "" \ STTY=crtscts

擬似送信文字列は、Dialers ファイルのエントリの中でも使用できます。

/etc/uucp/Systems ファイルでのパリティーの設定

場合によっては、呼び出そうとしているシステムがポートのパリティーを検査し、パリティーに誤りがあると回線を切断することがあります。そのため、パリティーのリセットが必要になります。expect-send (予期 - 送信) の文字列ペアとして "" P_ZERO を使用すると、上位ビット (パリティービット) が 0 に設定されます。この expect-send ペアの例を次に示します。


unix Any ACU 2400 12015551212 "" P_ZERO "" \r ogin: Puucp ssword:Passuan

次に、expect-send 文字列ペア "" P_ZERO のあとに続けることができるパリティー文字列ペアを示します。

"" P_EVEN

パリティーを偶数 (デフォルト) に設定する

"" P_ODD

パリティーを基数に設定する

"" P_ONE

パリティービットを 1 に設定する

これらのパリティー設定は、chat スクリプトのどこにでも挿入できます。この設定は、chat スクリプト内の "" P_ZERO (expect-send 文字列ペア) よりあとにあるすべての情報に適用されます。パリティー文字列ペアは、Dialers ファイルのエントリの中でも使用できます。次の例には、パリティー文字列ペア "" P_ONE が含まれています。


unix Any ACU 2400 12015551212 "" P_ZERO "" P_ONE "" \r ogin: Puucp ssword:Passuan

UUCP /etc/uucp/Devices ファイル

/etc/uucp/Devices ファイルには、リモートコンピュータへのリンクを確立するために使用できるすべてのデバイスに関する情報が入っています。この種のデバイスには、ACU (高速モデムを含む)、直接リンク、ネットワーク接続などがあります。

/etc/uucp/Devices ファイルのエントリは、次の構文を使用します。


Type   Line   Line2   Class   Dialer-Token-Pairs

次に示す Devices ファイルエントリは、ポート A に接続され、38,400 bps で動作する U.S. Robotics V.32bis モデムを表しています。


ACUEC   cua/a   -   38400   usrv32bis-ec
ACUEC

Type フィールド内のエントリ。詳細は、/etc/uucp/Devices ファイルの Type フィールド」を参照

cua/a

Line フィールド内のエントリ。詳細は、/etc/uucp/Devices ファイルの Line フィールド」を参照

-

Line2 フィールド内のエントリ。詳細は、/etc/uucp/Devices ファイルの Line2 フィールド」を参照

38400

Class フィールド内のエントリ。詳細は、/etc/uucp/Devices ファイルの Class フィールド」を参照

usrv32bis-ec

Dialer-Token-Pairs フィールド内のエントリ。詳細は、/etc/uucp/Devices ファイルの Dialer-Token-Pairs フィールド」を参照

各フィールドについては、次の節で説明しています。

/etc/uucp/Devices ファイルの Type フィールド

このフィールドで、デバイスによって確立されるリンクの種類を説明します。このフィールドには次のセクションに示すキーワードのいずれかを入れることができます。

キーワード Direct

キーワード Direct は、主として cu 接続用のエントリ内で使用されます。このキーワードは、このリンクがほかのコンピュータまたはポートセレクタへの直接リンクであることを示します。cu-l オプションで参照する各回線について、それぞれ独立したエントリを作成する必要があります。

キーワード ACU

キーワード ACU は、(cu、UUCP、asppp、または Solaris PPP 4.0 を介した) リモートコンピュータへのリンクを、モデムを介して確立することを示します。このモデムは、直接ローカルコンピュータに接続しているものでも、ポートセレクタを介して間接的に接続しているものでもかまいません。

ポートセレクタ

ポートセレクタは、ポートセレクタの名前で置き換えるものとして、Type フィールド内で使用される変数です。ポートセレクタは、ネットワークに接続されたデバイスで、呼び出し側モデムの名前を要求し、アクセスを許可します。/etc/uucp/Dialers ファイルに入っている呼び出しスクリプトは、micom ポートセレクタと develcon ポートセレクタについてのものだけです。ユーザーは、Dialers ファイルに独自のポートセレクタエントリを追加できます。詳細は、「UUCP /etc/uucp/Dialers ファイル」を参照してください。

System-Name 変数

Type フィールド内のこの変数は、特定のマシンの名前で置き換えられます。これは、リンクがこのマシンへの直接リンクであることを示します。この命名スキーマは、この Devices エントリ内の行と、コンピュータ System-Name についての /etc/uucp/Systems ファイルエントリを対応付けるために使用されます。

Devices ファイルおよび Systems ファイルの Type フィールド

例 26–5 は、/etc/uucp/Devices のフィールドと /etc/uucp/Systems のフィールドの比較を示しています。フィールドの書体を変えて示したように、Devices ファイルの Type フィールドで使用されているキーワードは、Systems ファイルエントリの 3 番目のフィールドと突き合わされます。Devices ファイルの Type フィールドには ACUEC というエントリが入っており、これは自動呼び出し装置、つまりこの例では V.32bis モデムを示しています。この値は、Systems ファイルの Type フィールドと突き合わされます。このフィールドにも ACUEC というエントリが入っています。詳細は、「UUCP /etc/uucp/Systems ファイル」 を参照してください。


例 26–5 Devices ファイルと Systems ファイルの Type フィールドの比較

次に、Devices ファイルのエントリ例を示します。


ACUEC cua/a - 38400 usrv32bis-ec

次に、Systems ファイルのエントリ例を示します。


Arabian Any ACUEC 38400 111222 ogin: Puucp ssword:beledi

/etc/uucp/Devices ファイルの Line フィールド

このフィールドには、Devices エントリに対応付けられる回線 (ポート) のデバイス名が入ります。たとえば、特定のエントリに対応付けられているモデムが /dev/cua/a (シリアルポート A) に接続されている場合、このフィールドに入力する名前は cua/a です。Line フィールドでオプションのモデム制御フラグ M を使用すると、キャリアを待たないでデバイスをオープンすることを指定できます。次に例を示します。


cua/a,M

/etc/uucp/Devices ファイルの Line2 フィールド

このフィールドは、フィールドの数を合わせるために存在しているだけです。ここには常にハイフン (-) を指定します。Line2 フィールドを使用するのは 801 型のダイアラですが、この種類は Solaris OS ではサポートされていません。801 型以外のダイアラは通常はこの設定を使用しませんが、このフィールドにダッシュだけは入れておく必要があります。

/etc/uucp/Devices ファイルの Class フィールド

Type フィールドでキーワード ACU または Direct を使用した場合は、Class フィールドにはデバイスの速度が入ります。ただし、このフィールドには、ダイアラのクラス (Centrex や Dimension PBX など) を区別するために、1 個の英字と速度値を含めることができます (C1200D1200 など)。

大規模な事業所では複数種の電話ネットワークを使用することが多いため、このような指定が必要になります。たとえば、1 つのネットワークは事業所内の内線通信専用に使用し、もう 1 つのネットワークは外線通信に使用するといった方式が考えられます。このような場合は、内線回線と外線回線とを区別する必要があります。

Devices ファイルの Class フィールドで使用するキーワードは、Systems ファイルの Speed フィールドと突き合わされます。


例 26–6 Devices ファイルの Class フィールド


ACU   cua/a   -   D2400  hayes

どのような速度でも使用できるデバイスでは、Class フィールドにキーワード Any を使用します。Any を使用した場合は、回線は、Systems ファイルの Speed フィールドで要求された任意の速度に適合します。このフィールドが Any で、Systems ファイルの Speed フィールドも Any である場合は、速度はデフォルトの 2400 bps となります。

/etc/uucp/Devices ファイルの Dialer-Token-Pairs フィールド

Dialer-Token-Pairs (DTP) フィールドには、ダイアラの名前とそれに渡すトークンが入ります。DTP フィールドの構文は次のとおりです。

dialer token [dialer token]

dialer の部分は、モデムかポートモニターの名前あるいは直接リンクデバイスの場合は direct または uudirect です。ダイアラとトークンのペアはいくつでも指定できます。dialer の部分がない場合は、Systems ファイル内の関連エントリから取得されます。token 部は、dialer 部の直後に指定できます。

対応するダイアラによっては、最後のダイアラとトークンのペアはない場合もあります。ほとんどの場合は、最後のペアには dialer 部だけが含まれます。token 部は、対応する Systems ファイルエントリの Phone フィールドから取得されます。

dialer 部の有効エントリは、Dialers ファイル内で定義されているものか、いくつかの特殊ダイアラタイプのうちの 1 つとなります。これらの特殊ダイアラタイプはコンパイル時にソフトウェア中に組み込まれているので、Dialers ファイル内に該当エントリがなくても使用できます。次に、特殊なダイアラタイプを示します。

TCP

TCP/IP ネットワーク

TLI

トランスポートレベルインタフェースネットワーク (STREAMS を使用しないもの)

TLIS

トランスポートレベルインタフェースネットワーク (STREAMS を使用するもの)

詳細は、/etc/uucp/Devices ファイル内のプロトコル定義」を参照してください。

/etc/uucp/Devices ファイルの Dialer-Token-Pairs フィールドの構造

DTP フィールドの構造は、エントリに対応するデバイスに応じて 4 通りに設定できます。

次に 1 つ目の方法を示します。

直接接続モデム – コンピュータのポートにモデムが直接接続されている場合は、対応する Devices ファイルエントリの DTP フィールドに入るペアは 1 つだけです。このペアは、通常はモデムの名前です。この名前は、Devices ファイルの特定のエントリと、Dialers ファイル内のエントリとを対応付けるために使用されます。したがって、Dialer フィールドは、Dialers ファイルエントリの最初のフィールドに一致している必要があります。


例 26–7 直接接続モデム用 Dialers フィールド


Dialers   hayes =,-,  ""          \\dA\pTE1V1X1Q0S2=255S12=255\r\c 
                                  \EATDT\T\r\c CONNECT

Devices ファイルエントリの DTP フィールドには、dialer 部 (hayes) だけが示されている点に注意してください。これは、ダイアラに渡す token (この例では電話番号) が、Systems ファイルエントリの Phone フィールドから取得されることを意味します (例 26–9 で説明するように、\T が暗黙で指定されます)。

次に、DTP フィールドの構造化に利用できる 2 つ目と 3 つ目の方法を示します。


例 26–8 同一ポートセレクタ上のコンピュータ用 UUCP Dialer フィールド


Dialers    develcon ,""   ""            \pr\ps\c est:\007 \E\D\e \007

token 部が空である点に注意してください。このように指定されている場合は、この部分が Systems ファイルから取得されることを示しています。このコンピュータ用の Systems ファイルエントリには、Phone フィールドにトークンが含まれています。このフィールドは、通常、コンピュータの電話番号用として確保されています。詳細は、「UUCP /etc/uucp/Systems ファイル」を参照してください。この種類の DTP にはエスケープ文字 (\D) が含まれています。これは、Phone フィールドの内容が、Dialcodes ファイル内の有効エントリとして解釈されないことを保証します。

次に、DTP フィールドの構造化に利用できる 4 つ目の方法を示します。

ポートセレクタに接続しているモデム – ポートセレクタに高速モデムが接続されている場合は、ローカルコンピュータはまずポートセレクタスイッチにアクセスする必要があります。そして、そのスイッチがモデムとの接続を確立します。この種類のエントリには、ダイアラとトークンのペアが 2 つ必要です。各ペアの dialer 部 (エントリの 5 番目と 7 番目のフィールド) が、Dialers ファイル内のエントリと突き合わされます。


例 26–9 ポートセレクタに接続されたモデム用 UUCP Dialer フィールド


develcon ""     ""    \pr\ps\c  est:\007    \E\D\e      \007
ventel   =&-%   t""   \r\p\r\c  $           <K\T%\r>\c  ONLINE!

最初のペアでは、develcon がダイアラで、vent が Develcon スイッチに渡されるトークンです。トークンは、コンピュータに接続するデバイス (たとえば Ventel モデム) をダイアラに指示しています。各スイッチごとに設定が異なることがあるので、このトークンは各ポートセレクタに固有のものにします。Ventel モデムが接続されたあと、第 2 のペアがアクセスされます。このペアでは、Ventel がダイアラで、トークンは Systems ファイルから取得されます。

DTP フィールドで使用できるエスケープ文字が 2 つあります。

/etc/uucp/Devices ファイル内のプロトコル定義

/etc/uucp/Devices では、各デバイスに使用するプロトコルを定義できます。通常は、デフォルトを使用するか、または呼び出そうとしている特定のシステムに対してプロトコルを定義できるので、この指定は不要です。詳細は、「UUCP /etc/uucp/Systems ファイル」を参照してください。プロトコルを指定する場合は、次の形式を使用する必要があります。


Type,Protocol [parameters]

たとえば、TCP/IP プロトコルを指定するには、TCP,te と入力します。

次の表に、Devices ファイルで使用できるプロトコルを示します。

表 26–2 /etc/uucp/Devices で使用されるプロトコル

プロトコル 

説明 

t

このプロトコルは、TCP/IP や、その他の信頼性のある接続を介した伝送に、最もよく使用される。t はエラーのない伝送を前提としている

g

UUCP のネイティブプロトコル。g は低速で信頼性があり、ノイズの多い電話回線を介した伝送に適している

e

このプロトコルは、(TCP/IP のようなバイトストリーム指向ではなく) メッセージ指向でエラーのないチャネルを介した伝送を前提としている  

f

このプロトコルは X.25 接続を介した伝送に使用される。f は、データストリームのフロー制御に関係している。特に X.25/PAD リンクなどのように、完全に (またはほとんど) エラーがないことが保証されるリンクでの使用を意図している。検査合計はファイル全体についてのみ実施される。伝送が失敗した場合は、受信側は再伝送を要求できる

次に、デバイスエントリ用のプロトコル指定の例を示します。


TCP,te - - Any TCP - 

この例は、デバイス TCP について t プロトコルの使用を試みるように指示しています。相手側がそれを拒否した場合は、e プロトコルが使用されます。

et のどちらも、モデムを介した通信には適していません。モデムがエラーのない伝送を保証するものであったとしても、モデムと CPU との間でデータが失われる可能性があります。

UUCP /etc/uucp/Dialers ファイル

/etc/uucp/Dialers ファイルには、よく使用される多くのモデムに関するダイアリング指示が入っています。標準外のモデムの使用や、UUCP 環境のカスタマイズを予定している場合以外は、通常このファイルのエントリの変更や追加は必要ありません。しかし、このファイルの内容と、Systems ファイルや Devices ファイルとの関係は理解しておく必要があります。

このファイルの中のテキストは、回線をデータ転送に使用できるようにするために、最初に行わなければならない対話を指定します。chat スクリプトと呼ばれるこの対話は、通常は送受信される一連の ASCII 文字列で、電話番号をダイアルするためによく使用されます。

「UUCP /etc/uucp/Devices ファイル」の例に示したように、Devices ファイルエントリの 5 番目のフィールドは Dialers ファイルへのインデックスか、または特殊ダイアラタイプ (TCPTLITLIS など) です。uucico デーモンは、Devices ファイルの 5 番目のフィールドを、Dialers ファイルの各エントリの最初のフィールドと突き合わせます。さらに、Devices の 7 番目の位置から始まる奇数番号の各フィールドは、Dialers ファイルへのインデックスとして使用されます。これらが一致すると、その Dialers のエントリがダイアラ対話を行うために解釈されます。

Dialers ファイルの各エントリの構文は次のとおりです。


dialer   substitutions   expect-send

次に、US Robotics V.32bis モデム用のエントリの例を示します。


例 26–10 /etc/uucp/Dialers ファイルのエントリ


usrv32bis-e    =,-,  ""    dA\pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W\r\c OK\r 
                           \EATDT\T\r\c CONNECT\s14400/ARQ STTY=crtscts

usrv32bis-e

Dialer フィールドのエントリです。Dialer フィールドは、Devices ファイルの中の 5 番目以降の奇数番号のフィールドと突き合わされます。

=,-, ""

Substitutions フィールドのエントリです。Substitutions フィールドは変換文字列です。各文字ペアの最初の文字が 2 番目の文字に変換されます。このマッピングは通常、 =- を、「発信音待ち」と「一時停止」用としてダイアラが必要とする文字に変換するために使用されます。

dA\pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W\r\c OK\r

Expect-Send フィールドのエントリです。Expect-Send フィールドは文字列です。

\EATDT\T\r\c CONNECT\s14400/ARQ STTY=crtscts

Expect-Send フィールドのエントリの続きです。

次に、Dialers ファイルのエントリの例をいくつか示します。これは、Solaris インストールプログラムの一環として UUCP をインストールするときに提供されるファイルです。


例 26–11 /etc/uucp/Dialers の抜粋


penril	=W-P "" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK 
 
ventel	=&-%	"" \r\p\r\c $ <K\T%%\r>\c ONLINE! 
 
vadic	=K-K	"" \005\p *-\005\p-*\005\p-* D\p BER? \E\T\e \r\c LINE 
 
develcon	""	"" \pr\ps\c est:\007 
 
\E\D\e \n\007 micom	""	"" \s\c NAME? \D\r\c GO 
 
hayes	=,-,	"" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r \EATDT\T\r\c CONNECT 
 
#   Telebit TrailBlazer 
tb1200	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=2\r\c OK\r 
\EATDT\T\r\c CONNECT\s1200   
tb2400	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=3\r\c OK\r 
\EATDT\T\r\c CONNECT\s2400   
tbfast	=W-,	"" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=255\r\c OK\r 
\EATDT\T\r\c CONNECT\sFAST 
 
# USrobotics, Codes, and DSI modems 
 
dsi-ec  =,-,    "" \dA\pTE1V1X5Q0S2=255S12=255*E1*F3*M1*S1\r\c OK\r \EATDT\T\r\c 
CONNECT\sEC STTY=crtscts,crtsxoff 
 
dsi-nec =,-,    "" \dA\pTE1V1X5Q0S2=255S12=255*E0*F3*M1*S1\r\c OK\r \EATDT\T\r\c CONNECT 
STTY=crtscts,crtsxoff 
 
usrv32bis-ec =,-,  "" \dA\pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2&W\r\c OK\r \EATDT\T\r\c 
CONNECT\s14400/ARQ STTY=crtscts,crtsxoff 
 
usrv32-nec =,-, "" \dA\pT&FE1V1X1Q0S2=255S12=255&A0&H1&M0&B0&W\r\c OK\r \EATDT\T\r\c 
CONNECT STTY=crtscts,crtsxoff 
 
codex-fast =,-, "" \dA\pT&C1&D2*MF0*AA1&R1&S1*DE15*FL3S2=255S7=40S10=40*TT5&W\r\c OK\r 
\EATDT\T\r\c CONNECT\s38400 STTY=crtscts,crtsxoff 
 
tb9600-ec =W-,  "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=6\r\c OK\r 
\EATDT\T\r\cCONNECT\s9600 STTY=crtscts,crtsxoff 
 
tb9600-nec =W-, "" \dA\pA\pA\pTE1V1X1Q0S2=255S12=255S50=6S180=0\r\c OK\r \EATDT\T\r\c 
CONNECT\s9600 STTY=crtscts,crtsxoff

次の表に、Dialers ファイルの send 文字列でよく使用されるエスケープ文字を示します。

表 26–3 /etc/uucp/Dialers で使用するエスケープ文字

文字 

説明 

\b

バックスペース文字を送信または想定します。 

\c

改行、キャリッジリターンを抑止します。 

\d

約 2 秒の遅延が生じます。 

\D

Dialcodes 変換なしの電話番号またはトークン

\e

エコーチェックを使用しません。 

\E

低速デバイス用にエコーチェックを使用します。 

\K

ブレーク文字を挿入します。  

\n

改行文字を送信します。 

\nnn

8 進数値を送信します。使用できるその他のエスケープ文字については、「UUCP /etc/uucp/Systems ファイル」を参照してください。

\N

NULL 文字 (ASCII NUL) を送信または想定します。 

\p

約 12 から 14 秒の一時停止が生じます。 

\r

リターン。  

\s

スペース文字を送信または想定します。 

\T

Dialcodes 変換を伴う電話番号またはトークン。

次に示すのは、Dialers ファイルの penril エントリです。


penril =W-P "" \d > Q\c : \d- > s\p9\c )-W\p\r\ds\p9\c-) y\c : \E\TP > 9\c OK 

最初に、電話番号引数の置換メカニズムが確立されます。その結果、= はすべて W (発信音待ち) で置き換えられ、- はすべて P (一時停止) で置き換えられるようになります。

上記の行の残りの部分に指定されているハンドシェークの働きは、次のとおりです。

/etc/uucp/Dialers ファイルによるハードウェアフロー制御の有効化

擬似送信文字列 STTY=value を用いることによっても、モデムの特性を設定できます。たとえば、STTY=crtscts を使用すると、出力ハードウェアフロー制御が可能になります。 STTY=crtsxoff を使用すると、入力ハードウェアフロー制御が可能になります。STTY=crtscts,crtsxoff を使用すると、入出力の両方のハードウェアフロー制御が可能になります。

STTY はすべての stty モードを受け入れます。詳細は、stty(1)termio(7I) のマニュアルページを参照してください。

次の例は、Dialers ファイルエントリ内でハードウェアフロー制御を使用可能にしています。


dsi =,–, "" \dA\pTE1V1X5Q0S2=255S12=255*E1*F3*M1*S1\r\c OK\r \EATDT\T\r\c 
CONNECT\sEC STTY=crtscts 

この擬似送信文字列は、Systems ファイルのエントリの中でも使用できます。

/etc/uucp/Dialers ファイルでのパリティーの設定

場合によっては、呼び出そうとしているシステムがポートのパリティーを検査し、パリティーに誤りがあると回線を切断することがあります。そのため、パリティーのリセットが必要になります。expect-send の対を成す文字列として P_ZERO を使用すると、パリティーが 0 に設定されます。


foo =,-, "" P_ZERO "" \dA\pTE1V1X1Q0S2=255S12=255\r\c OK\r\EATDT\T\r\c CONNECT 

次に、expect-send 文字列ペアのあとに続けることができるパリティー文字列ペアを示します。

"" P_EVEN

パリティーを偶数 (デフォルト) に設定する

"" P_ODD

パリティーを基数に設定する

"" P_ONE

パリティーを 1 に設定する

この擬似送信文字列は、Systems ファイルのエントリの中でも使用できます。

その他の基本的な UUCP 構成ファイル

基本的な UUCP 構成を行うときに、SystemsDevices、および Dialers の各ファイルに加えて、この節で紹介するファイルを使用できます。

UUCP /etc/uucp/Dialcodes ファイル

/etc/uucp/Dialcodes ファイルにより、/etc/uucp/Systems ファイルの Phone フィールドで使用するダイアルコードの省略名を定義できます。Dialcodes ファイルは、同じサイトにある複数のシステムが使用する基本的な電話番号について、付加的な情報を指定するために使用できます。

各エントリの構文は次のとおりです。


Abbreviation   Dial-Sequence
Abbreviation

このフィールドは、Systems ファイルの Phone フィールドで使用される省略名です。

Dial-Sequence

このフィールドは、個々の Systems ファイルエントリがアクセスされるときにダイアラに渡されるダイアルシーケンスです。

この 2 つのファイル内のフィールドを比較してみます。次に、Dialcodes ファイルのエントリを示します。


Abbreviation   Dial-Sequence

次に、Systems ファイルのエントリを示します。


System-Name   Time   Type   Speed   Phone   Chat Script

次の表に、Dialcodes ファイルのフィールドのコンテンツ例を示します。

表 26–4 Dialcodes ファイルのエントリ

略語 

ダイアルシーケンス 

NY

1=212

jt

9+847

最初の行の NY は、Systems ファイルの Phone フィールドで使用される省略名です。Systems ファイルのエントリは、たとえば次のようになります。

NY5551212

uucico は、Systems ファイルから NY を読み取ると、Dialcodes ファイルから NY を探し、それに該当するダイアルシーケンス 1=212 を取得します。1=212 は、New York City への電話呼び出しに必要なダイアルシーケンスです。このシーケンスは、1 という番号と、一時停止して次の発信音を待つことを示す等号 (=) と、市外局番 212 で構成されています。uucico はこの情報をダイアラに送り、再び Systems ファイルに戻って残りの電話番号 5551212 を処理します。

jt 9=847- というエントリは、Systems ファイル内の jt7867 などのような Phone フィールドを取り扱います。uucico は、jt7867 を含むエントリを Systems ファイルから読み取り、ダイアラとトークンのペアの中のトークンが \T であれば、9=847-7867 というシーケンスをダイアラに送ります。

UUCP /etc/uucp/Sysfiles ファイル

/etc/uucp/Sysfiles ファイルでは、uucpcuSystemsDevicesDialers ファイルとして使用する別のファイルを割り当てます。cu の詳細は、cu(1C) のマニュアルページを参照してください。Sysfiles は次の目的に使用できます。

Sysfiles ファイルの構文は次のとおりです。


service=w systems=x:x dialers=y:y devices=z:z 
w

uucicocu、またはその両方をコロンで区切って指定します。

x

Systems ファイルとして使用される 1 つまたは複数のファイルをコロンで区切って指定します。これらは指定された順序で読み込まれます。

y

Dialers ファイルとして使用される 1 つまたは複数のファイルです。

z

Devices ファイルとして使用される 1 つまたは複数のファイルです。

フルパスで指定しないかぎり、各ファイル名は /etc/uucp ディレクトリからの相対パスとみなされます。

次に示すのは、標準の /etc/uucp/Systems に加えて使用するローカル Systems ファイル (Local_Systems) を定義する /etc/uucp/Sysfiles の例です。


service=uucico:cu systems=Systems :Local_Systems 

/etc/uucp/Sysfiles の中にこのエントリがある場合、uucicocu はどちらも、まず標準 /etc/uucp/Systems ファイルを調べます。呼び出そうとしているシステムのエントリがそのファイル内にないか、またはそのファイル内の該当エントリの処理に失敗した場合は、両コマンドは /etc/uucp/Local_Systems を調べます。

上記のエントリの場合は、cuuucico は、Dialers ファイルと Devices ファイルを共有します。

uucico サービス用と cu サービス用に別の Systems ファイルを定義した場合は、マシンは 2 つの異なる Systems のリストを持つことになります。uucico リストは uuname コマンドを使用して表示でき、cu リストは uuname -C コマンドを使用して表示できます。このファイルのもう 1 つの例として、代替ファイルの方を先に調べ、デフォルトファイルは必要なときだけ調べる場合を次に示します。


service=uucico systems=Systems.cico:Systems   
  dialers=Dialers.cico:Dialers \ 
devices=Devices.cico:Devices   
  service=cu systems=Systems.cu:Systems \ 
dialers=Dialers.cu:Dialers \   
  devices=Devices.cu:Devices

UUCP /etc/uucp/Sysname ファイル

UUCP を使用するすべてのマシンは、一般にノード名と呼ばれる識別名を持っている必要があります。このノード名は、リモートマシンの /etc/uucp/Systems ファイルに、chat スクリプトやその他の識別情報とともに格納されています。通常は、UUCP は、uname -n コマンドから返されるものと同じノード名を使用し、TCP/IP でもこの名前を使用します。

/etc/uucp/Sysname ファイルを作成することによって、TCP/IP ホスト名とは別の UUCP ノード名を指定できます。このファイルには、ローカルシステムの UUCP ノード名が入った 1 行のエントリが含まれています。

UUCP /etc/uucp/Permissions ファイル

/etc/uucp/Permissions ファイルは、ログイン、ファイルアクセス、およびコマンド実行に関するリモートコンピュータのアクセス権を指定します。リモートコンピュータがファイルを要求する権限と、ローカルマシンでキューに入れられたファイルを受け取る権限を制限するオプションがあります。また、リモートマシンがローカルコンピュータ上で実行できるコマンドを指定するオプションもあります。

UUCP 構造のエントリ

各エントリは 1 行の論理行で、行末にバックスラッシュ (\) がある場合は次の行と継続していることを示します。エントリは、スペースで区切られたオプションから構成されます。各オプションは、次の形式の名前と値のペアです。

name=value

values はコロンで区切ってリストとすることもできます。オプション指定の中では、スペースは使用できないので注意してください。

コメント行はポンド記号 (#) で始まり、その行の改行文字までの全部分を占めます。空行は無視されます (複数行エントリの中の空行も同じです)。

Permissions ファイルのエントリの種類を次に示します。

LOGNAME には LOGNAME オプションが含まれ、MACHINE エントリには MACHINE オプションが含まれます。1 つのエントリに両方のオプションを含めることもできます。

UUCP の考慮事項

Permissions ファイルを使用して、リモートコンピュータに付与されているアクセスのレベルを制限するときは、次のことを考慮に入れる必要があります。

UUCP REQUEST オプション

リモートコンピュータがローカルコンピュータを呼び出し、ファイルの受信を要求したときに、その要求を承認することも拒否することもできます。REQUEST オプションは、リモートコンピュータがローカルコンピュータからのファイル転送を要求できるかどうかを指定します。REQUEST=yes は、リモートコンピュータがローカルコンピュータからのファイル転送を要求できることを指定します。REQUEST=no は、リモートコンピュータがローカルコンピュータからのファイルの受信を要求できないことを指定します。REQUEST=no は、REQUEST オプションを指定しなかった場合に使用されるデフォルト値です。REQUEST オプションは、LOGNAME エントリ (リモートコンピュータがローカルコンピュータを呼び出す場合) と、MACHINE エントリ (ローカルコンピュータがリモートコンピュータを呼び出す場合) のどちらにも使用できます。

UUCP SENDFILES オプション

ローカルコンピュータを呼び出す作業を完了したあとで、リモートコンピュータはローカルコンピュータのキュー中のリモートコンピュータ用の作業を受け取ろうとすることがあります。 SENDFILES オプションは、ローカルコンピュータが、リモートコンピュータ用にキューに入れた作業を送信できるかどうかを指定します。

文字列 SENDFILES=yes は、リモートコンピュータが LOGNAME オプションに指定されている名前の 1 つを使用してログインしていれば、ローカルコンピュータがキューに入れた作業を送信できることを指定します。/etc/uucp/Systems の Time フィールドに Never を入力してある場合は、この文字列の使用は必須です。その場合、ローカルマシンは受動モードに設定され、相手のリモートコンピュータへの呼び出しを開始することはできなくなります。詳細は、「UUCP /etc/uucp/Systems ファイル」 を参照してください。

文字列 SENDFILES=call は、ローカルコンピュータがリモートコンピュータを呼び出したときにかぎり、ローカルコンピュータのキュー中のファイルを送信することを指定します。call の値は SENDFILES オプションのデフォルト値です。MACHINE エントリはリモートコンピュータへの呼び出しを送る場合に適用されるものなので、このオプションが意味を持つのは LOGNAME エントリの中で使用した場合だけです。MACHINE エントリでこのオプションを使用しても無視されます。

UUCP MYNAME オプション

このオプションを使用すると、hostname コマンドから戻される TCP/IP ホスト名以外に、固有の UUCP ノード名をローカルシステムに与えることができます。たとえば、偶然にほかのシステムと同じ名前をローカルホストに付けてしまった場合などに、Permissions ファイルの MYNAME オプションを指定できます。自分の所属組織が widget という名前で認識されるようにするとします。すべてのモデムが gadget というホスト名を持つマシンに接続されている場合は、gadgetPermissions ファイルに次のようなエントリを含めることができます。


service=uucico systems=Systems.cico:Systems   
  dialers=Dialers.cico:Dialers \ 
  devices=Devices.cico:Devices   
service=cu systems=Systems.cu:Systems \ 
  dialers=Dialers.cu:Dialers \   
  devices=Devices.cu:Devices

これで、システム world は、あたかも widget にログインしているかのようにマシン gadget にログインできます。ローカルマシンから world マシンを呼び出したときにも、world が widget という別名で認識するようにする場合は、次のようなエントリを作成します。


MACHINE=world MYNAME=widget

MYNAME オプションによってローカルマシンが自分自身を呼ぶこともできるので、このオプションはテスト目的にも利用できます。しかし、このオプションはマシンの実際の識別情報を隠す目的にも使用できてしまうので、「UUCP VALIDATE オプション」で述べる VALIDATE オプションを使用するようにしてください。

UUCP READ オプションと WRITE オプション

これらのオプションは、uucico がファイルシステムのどの部分を読み書きできるかを指定します。READ オプションと WRITE オプションは、MACHINE エントリと LOGNAME エントリのどちらにも使用できます。

次の文字列に示すように、READ オプションと WRITE オプションのどちらも、デフォルトは uucppublic ディレクトリです。


READ=/var/spool/uucppublic WRITE=/var/spool/uucppublic 

文字列 READ=/WRITE=/ は、Other 権を持つローカルユーザーがアクセスできるすべてのファイルにアクセスできる権限を指定します。

これらのエントリの値は、コロンで区切ったパス名のリストです。READ オプションはリモート側からのファイル要求のためのものであり、WRITE オプションはリモート側からのファイル送出のためのものです。値の 1 つは、入力ファイルまたは出力ファイルのフルパス名の接頭辞でなければなりません。公開ディレクトリのほかに /usr/news にもファイルを送出する権限を付与するには、WRITE オプションに次の値を指定します。


WRITE=/var/spool/uucppublic:/usr/news 

パス名はデフォルトのリストに追加されるものではないので、READ オプションと WRITE オプションを使用するときはすべてのパス名を指定する必要があります。たとえば、WRITE オプションでパス名として /usr/news のみを指定した場合、公開ディレクトリにファイルを送出する権限は失われます。

リモートシステムがどのディレクトリに読み書きのアクセスができるかは、注意して決定しなければなりません。たとえば、/etc ディレクトリには多数の重要なシステムファイルが入っています。したがって、このディレクトリにファイルを送出する権限はリモートユーザーには付与しない方が賢明です。

UUCP NOREAD オプションと NOWRITE オプション

NOREAD オプションと NOWRITE オプションは、READWRITE オプションまたはデフォルトに対する例外を指定します。次のエントリは、/etc ディレクトリ (およびこの下の各サブディレクトリ) の中のファイルを除くすべてのファイルの読み取りを許可しています。このパス名は接頭辞であることを忘れないでください。


READ=/ NOREAD=/etc WRITE=/var/spool/uucppublic 

このエントリは、デフォルトの /var/spool/uucppublic ディレクトリへの書き込みだけを許可しています。NOWRITENOREAD オプションと同じ形で働きます。NOREAD オプションと NOWRITE オプションは、LOGNAME エントリと MACHINE エントリのどちらにも使用できます。

UUCP CALLBACK オプション

LOGNAME エントリの中で CALLBACK オプションを使用すると、呼び出し側システムがコールバックするまで、トランザクションを一切行わないことを指定できます。CALLBACK を設定する理由を次に示します。

文字列 CALLBACK=yes は、ファイル転送を行う前に、ローカルコンピュータがリモートコンピュータをコールバックしなければならないということを指定します。

CALLBACK オプションのデフォルトは CALLBACK=no です。CALLBACKyes に設定する場合は、呼び出し側に対応する MACHINE エントリの中で、以後の通信に影響を与えるアクセス権を指定する必要があります。これらのアクセス権は、LOGNAME の中や、リモートマシンがローカルホストに対して設定している LOGNAME エントリの中では指定しないでください。


注 –

2 つのサイトが互いに CALLBACK オプションを設定すると、通信が開始されないので注意してください。


UUCP COMMANDS オプション


注意 – 注意 –

COMMANDS オプションは、システムのセキュリティーを低下させる恐れがあります。このオプションは十分に注意して使用してください。


COMMANDS オプションは、リモートコンピュータがローカルコンピュータ上で実行できるコマンドを指定するために、MACHINE エントリの中で使用できます。uux プログラムは、リモート実行要求を生成し、それらの要求をリモートコンピュータに転送するためにキューに入れます。ファイルとコマンドはターゲットコンピュータに送られて、リモート実行されます。MACHINE エントリは、ローカルシステムが呼び出しを行う場合にかぎり適用されるという規則がありますが、このオプションは例外です。

COMMANDSLOGNAME エントリの中では使えないという点に注意してください。MACHINE エントリの中の COMMANDS は、ローカルシステムがリモートシステムを呼び出すのか、リモートシステムがローカルシステムを呼び出すのかに関係なく、コマンド権限を定義します。

リモートコンピュータがローカルコンピュータ上で実行できるデフォルトのコマンドは、文字列 COMMANDS=rmail となります。MACHINE エントリの中でコマンド文字列を使用した場合は、デフォルトのコマンドよりも優先されます。たとえば、次のエントリは、COMMANDS のデフォルトを無効にして、owlravenhawkdove という名前の各コンピュータが、rmailrnewslp の各コマンドをローカルコンピュータで実行できるようにします。


MACHINE=owl:raven:hawk:dove COMMANDS=rmail:rnews:lp 

上記で指定した名前に加えて、コマンドのフルパス名も指定できます。たとえば、次のエントリは、rmail コマンドがデフォルトの検索パスを使用することを指定しています。


COMMANDS=rmail:/usr/local/rnews:/usr/local/lp 

UUCP のデフォルトの検索パスは、/bin/usr/bin です。リモートコンピュータが、実行するコマンドとして rnews または /usr/local/rnews を指定した場合は、デフォルトのパスに関係なく /usr/local/rnews が実行されます。同様に、実行される lp コマンドは /usr/local/lp です。

リストに ALL という値を含めると、エントリに指定されたリモートコンピュータから、すべてのコマンドが実行できます。この値を使用した場合は、リモートコンピュータにローカルマシンへのフルアクセスを与えることになります。


注意 – 注意 –

これは、通常のユーザーが持っているよりもはるかに多くのアクセス権を与えることになります。この値を使用するのは、両方のマシンが同じサイトにあり、緊密に接続されていて、ユーザーが信頼できる場合に限定するようにしてください。


ALL が追加された文字列を次に示します。


COMMANDS=/usr/local/rnews:ALL:/usr/local/lp 

この文字列は、次の 2 点を示しています。

COMMANDS オプションで cat uucp などのように、潜在的な危険性のあるコマンドを指定するときは、VALIDATE オプションを使用するようにしてください。UUCP リモート実行デーモン (uuxqt) により実行する場合、ファイルを読み書きするコマンドは、どれもローカルセキュリティーにとって危険性のあるものとなります。

UUCP VALIDATE オプション

VALIDATE オプションは、マシンのセキュリティーにとって危険性があると考えられるコマンドを指定するときに、COMMANDS オプションといっしょに使用します。VALIDATE は、コマンドアクセスを開放する方法としては ALL より安全ですが、COMMANDS オプションのセキュリティーのレベルを補強するだけのものです。

VALIDATE は、呼び出し側マシンのホスト名と、そのマシンが使用しているログイン名とを相互にチェックするものであり、呼び出し側の識別情報について、ある程度の検証機能を備えています。この例では、widget または gadget 以外のマシンが Uwidget としてログインしようとすると、接続は拒否されます。


LOGNAME=Uwidget VALIDATE=widget:gadget 

VALIDATE オプションを使用する場合、権限が与えられたコンピュータは UUCP トランザクション用に固有のログインとパスワードを持っていなければなりません。この認証処理では、このエントリに対応するログインとパスワードを保護することが重要な条件の 1 つです。部外者がこの情報を入手してしまうと、VALIDATE オプションはセキュリティーに関する役割をまったく果たさなくなります。

UUCP トランザクションについて、特権を持つログインとパスワードをどのリモートコンピュータに付与するかについては、十分に検討する必要があります。ファイルアクセスとリモート実行の権限をリモートコンピュータに与えるということは、そのリモートコンピュータのすべてのユーザーに対して、ローカルコンピュータに対する通常のログインとパスワードを与えるのと同じことです。したがって、リモートコンピュータに信頼のおけないユーザーがいると判断した場合は、そのコンピュータには特権的なログインとパスワードは付与しないようにしてください。

次のような LOGNAME エントリは、eagleowl、または hawk としてのいずれかのリモートコンピュータがローカルコンピュータにログインする場合に、そのコンピュータがログイン uucpfriend を使用している必要があることを指定します。


LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk 

部外者が uucpfriend を入手したとすれば、簡単に偽装することができます。

それでは、MACHINE エントリの中でだけ使用される COMMANDS オプションに対して、このエントリはどのような効果を持つのでしょうか。このエントリは、MACHINE エントリ (および COMMANDS オプション) を、特権ログインに対応する LOGNAME エントリにリンクします。このリンクが必要なのは、リモートコンピュータがログインしている時点では、実行デーモンはまだ動作していないためです。実際に、このリンクはどのコンピュータが実行要求を送ったのかを認識しない非同期プロセスです。ここで問題になるのが、 実行ファイルがどこから送られてきたのかを、ローカルコンピュータがどのようにして知るかという点です。

各リモートコンピュータは、ローカルマシン上にそれぞれ専用スプールディレクトリを持っています。これらのスプールディレクトリの書き込み権限は、UUCP プログラムだけに与えられています。リモートコンピュータからの実行ファイルは、ローカルコンピュータに転送されたあとに、このスプールディレクトリに入れられます。uuxqt デーモンが動作するときには、スプールディレクトリ名を使用して、Permissions ファイルから MACHINE エントリを見つけ、COMMANDS リストを取得します。Permissions ファイル内に該当するコンピュータ名が見つからない場合は、デフォルトのリストが使用されます。

次の例は、MACHINE エントリと LOGNAME エントリの関係を示しています。


MACHINE=eagle:owl:hawk REQUEST=yes \ 
COMMANDS=rmail:/usr/local/rnews \ 
READ=/ WRITE=/ 
LOGNAME=uucpz VALIDATE=eagle:owl:hawk \ 
REQUEST=yes SENDFILES=yes \ 
READ=/ WRITE=/ 

COMMANDS オプションの値は、リモートユーザーが、rmail/usr/local/rnews を実行できることを示しています。

最初のエントリでは、一覧表示されているコンピュータのどれかを呼び出す場合に、実際には eagleowlhawk のどれかを呼び出すということを理解しておく必要があります。したがって、eagleowl、および hawk のスプールディレクトリに置かれるファイルはすべて、それらのコンピュータのどれかによって置かれます。あるリモートコンピュータがログインし、この 3 つのコンピュータのどれかであることを主張した場合、その実行ファイルもこの特権スプールディレクトリに入れられます。したがって、ローカルコンピュータでは、そのコンピュータが特権ログイン uucpz を持っていることを確認する必要があります。

UUCP OTHER 用の MACHINE エントリ

特定の MACHINE エントリに記述されていないリモートマシンについて、異なるオプション値を指定したい場合があります。これが必要になるのは、多数のコンピュータがローカルホストを呼び出し、コマンドセットがそのたびに異なるような場合です。次の例に示すように、このようなエントリでは、コンピュータ名として OTHER という名前を使用します。


MACHINE=OTHER \ 
COMMANDS=rmail:rnews:/usr/local/Photo:/usr/local/xp 

ほかの MACHINE エントリに記述されていないコンピュータについても、MACHINE エントリに使用できるすべてのオプションを設定できます。

UUCP の MACHINE エントリと LOGNAME エントリの結合

共通オプションが同じである場合、MACHINE エントリと LOGNAME エントリを結合して、単一のエントリにすることができます。たとえば、次の 2 セットのエントリは、同じ REQUESTREADWRITE オプションを共有しています。


MACHINE=eagle:owl:hawk REQUEST=yes \ 
READ=/ WRITE=/

および


LOGNAME=uupz REQUEST=yes SENDFILES=yes \ 
READ=/ WRITE=/

この 2 つのエントリを結合したものを次に示します。


MACHINE=eagle:owl:hawk REQUEST=yes \ 
logname=uucpz SENDFILES-yes \ 
READ=/ WRITE=/

MACHINE エントリと LOGNAME エントリを結合することによって、Permissions ファイルは、効率的で管理しやすくなります。

UUCP の転送

一連のマシンを介してファイルを送信するときは、リレー (中継) マシンの COMMANDS オプションの中に uucp コマンドが含まれていなければなりません。次のコマンドを入力した場合、マシン willow がマシン oak に対して uucp プログラムの実行を許可する場合にかぎり、この転送操作は正常に機能します。


% uucp sample.txt oak\!willow\!pine\!/usr/spool/uucppublic

oak もローカルマシンに uucp のプログラムの実行を許可している必要があります。最終宛先マシンである pine は、転送動作を行わないため、uucp コマンドを許可する必要はありません。通常、マシンはこのように設定されていません。

UUCP /etc/uucp/Poll ファイル

/etc/uucp/Poll ファイルには、リモートコンピュータをポーリングするための情報が入っています。Poll ファイル内の各エントリには、呼び出すリモートコンピュータの名前と、それに続くタブ文字またはスペース、最後にそのコンピュータを呼び出す時刻が入ります。Poll ファイル内のエントリの形式は次のとおりです。

sys-name hour ...

たとえば、エントリを eagle 0 4 8 12 16 20 と指定すると、コンピュータ eagle が 4 時間ごとにポーリングされます。

uudemon.poll スクリプトは Poll ファイルを処理しますが、実際にポーリングを行うわけではありません。単にスプールディレクトリ内にポーリング作業ファイル (名前は常に C.file) を設定するだけです。uudemon.poll スクリプトはスケジューラを起動し、スケジューラは、スプールディレクトリ内のすべての作業ファイルを調べます。

UUCP /etc/uucp/Config ファイル

/etc/uucp/Config ファイルを使用すると、いくつかのパラメータを手動で上書きできます。Config ファイルの各エントリの形式は次のとおりです。

parameter=value

構成可能な全パラメータ名のリストについては、システムに付属している Config ファイルを参照してください。

次の Config エントリは、デフォルトのプロトコル順序を Gge に設定し、G プロトコルのデフォルト値を、ウィンドウ数 7、パケットサイズ 512 バイトに変更します。


Protocol=G(7,512)ge

UUCP /etc/uucp/Grades ファイル

/etc/uucp/Grades ファイルには、リモートコンピュータへのジョブをキューに入れるときに指定できるジョブグレードが入っています。また、個々のジョブグレードに関するアクセス権も含まれています。このファイルのエントリは、ユーザーがジョブをキューに入れるときに使用する、管理者が定義したジョブグレードの定義を表しています。

Grades ファイルのエントリの形式は次のとおりです。

User-job-grade System-job-grade Job-size Permit-type ID-list

各エントリには、スペースで区切ったいくつかのフィールドがあります。エントリの最後のフィールドは、同じくスペースで区切ったいくつかのサブフィールドから構成されます。1 つのエントリが複数の物理行にわたる場合は、バックスラッシュを使用して、エントリを次の行に継続させることができます。コメント行はポンド記号 (#) で始まり、その行の全体を占めます。空の行は常に無視されます。

UUCP User-job-grade フィールド

このフィールドには、管理者が 64 文字以内で定義したユーザージョブのグレード名が入ります。

UUCP System-job-grade フィールド

このフィールドには、User-job-grade が対応付けされる 1 文字のジョブグレードが入ります。有効な文字は A 〜 Z、a 〜 z で、最も優先順位が高いのは A、最も優先順位が低いのは z です。

ユーザージョブグレードとシステムジョブグレードの関係

ユーザージョブグレードは複数のシステムジョブグレードに割り当てることができます。Grades ファイルは、ユーザージョブグレードのエントリを見つけるために先頭から検索されるという点に注意してください。したがって、最大ジョブサイズの制限値に応じて、複数のシステムジョブグレードのエントリが列挙されます。

ユーザージョブグレードの最大数には制限はありませんが、システムジョブグレードの許容最大数は 52 です。その理由は、1 つの System-job-grade には複数の User-job-grade を対応付けできるが、個々の User-job-grade はファイル内でそれぞれ単独の行でなければならないという点にあります。次に例を示します。


mail N Any User Any netnews N Any User Any 

Grades ファイル内でこのような構成をした場合、2 つの User-job-grade が同じ System-job-grade を共有します。ジョブグレードに関するアクセス権は、System-job-grade ではなく User-job-grade に割り当てられるものなので、2 つの User-job-grade は同じ System-job-grade を共有しながら、それぞれ異なるアクセス権のセットを持つことができます。

デフォルトグレード

デフォルトのユーザージョブグレードとして、システムジョブグレードを割り当てることができます。そのためには、Grades ファイルの User-job-grade フィールドのユーザージョブグレードとしてキーワード default を使用し、そのデフォルトに割り当てるシステムジョブグレードを指定します。Restriction フィールドと ID フィールドは Any と定義して、どのようなユーザー、どのようなサイズのジョブでも、このグレードでキューに入れることができるようにします。次に例を示します。


default a Any User Any 

デフォルトのユーザージョブグレードを定義しなかった場合は、組み込まれているデフォルトグレードである Z が使用されます。Restriction フィールドのデフォルトは Any なので、デフォルトグレードのエントリが複数存在していても検査されません。

UUCP Job-size フィールド

このフィールドは、キューに入れることのできる最大ジョブサイズを指定します。Job-size はバイト数で表され、次のリストに示すオプションを使用できます。

nnnn

このジョブグレードの最大ジョブサイズを指定する整数

n K

K バイト数を表す 10 進数 (K はキロバイトの略号)

n M

M バイト数を表す 10 進数 (M はメガバイトの略号)

Any

最大ジョブサイズが指定されないことを指定するキーワード

次に例をいくつか示します。

UUCP Permit-type フィールド

このフィールドには、ID リストをどのように解釈するかを指示するキーワードを指定します。次の表に、キーワードとそれぞれの意味を示します。

表 26–5 Permit-type フィールド

キーワード 

ID リストの内容 

User

このジョブグレードの使用を許可されているユーザーのログイン名 

Non-user

このジョブグレードの使用を許可されていないユーザーのログイン名 

Group

このジョブグレードの使用を許可されているメンバーのグループ名 

Non-group

このジョブグレードの使用を許可されていないメンバーのグループ名 

UUCP ID-list フィールド

このフィールドには、このジョブグレードへキューを入れることが許可、禁止されるログイン名またはグループ名のリストが入ります。名前のリストはそれぞれスペースで区切り、改行文字で終了します。このジョブグレードへキューを入れることをだれにでも許可する場合は、キーワード Any を使用します。

その他の UUCP 構成ファイル

この節では、UUCP の機能に影響を与えるファイルのうち、比較的変更頻度の低い 3 つのファイルについて説明します。

UUCP /etc/uucp/Devconfig ファイル

/etc/uucp/Devconfig ファイルを使用すると、サービス別に、つまり uucp 用や cu 用などに分けて、デバイスを構成できます。Devconfig のエントリは、個々のデバイスで使用される STREAMS モジュールを定義します。これらの書式は次のとおりです。

service= x device= y push= z[:z...]

x は、cuuucico、またはその両方のサービスをコロンで区切ったものです。y はネットワークの名前で、これは Devices ファイルのエントリに一致していなければなりません。z には、STREAMS モジュールの名前を、Stream にプッシュする順序で指定します。cu サービスと uucp サービスについて、それぞれ異なるモジュールとデバイスを定義できます。

次のエントリは STARLAN ネットワーク用のもので、このファイル内でもっともよく使用されるものです。


service=cu       device=STARLAN     push=ntty:tirdwr 
service=uucico   device=STARLAN     push=ntty:tirdwr 

この例では、まず ntty、次に tirdwr がプッシュされます。

UUCP /etc/uucp/Limits ファイル

/etc/uucp/Limits ファイルは、uucp ネットワーク処理で同時に実行できる uucicouuxqt、および uusched の最大数を制御します。ほとんどの場合は、デフォルトの値が最適であり、変更の必要はありません。変更する場合は、任意のテキストエディタを使用してください。

Limits ファイルの形式は次のとおりです。

service=x max= y:

xuucicouuxqtuusched のどれかで、y はそのサービスについての制限値です。フィールドは、小文字を使用して任意の順序で入力できます。

次に示すのは、Limits ファイルの中で一般的に使用される内容です。


service=uucico max=5 
service=uuxqt max=5 
service=uusched max=2 

この例は、5 つの uucico、5 つの uuxqt、2 つの uusched をマシンで実行できることを示しています。

UUCP remote.unknown ファイル

通信機能の使用に影響を与えるファイルとして、もう 1 つ remote.unknown ファイルがあります。このファイルは、どの Systems ファイルにも含まれていないマシンが通信を開始したときに実行されるバイナリプログラムです。このプログラムはその通信をログに記録し、接続を切断します。


注意 – 注意 –

remote.unknown ファイルのアクセス権を変更して、このファイルが実行できないようにすると、ローカルシステムはどのシステムからの接続も受け入れることになります。


このプログラムが実行されるのは、どの Systems ファイルにも含まれていないマシンが対話を開始した場合です。このプログラムは、その対話を記録し、接続を失敗させます。このファイルのアクセス権を変更して実行できないようにしてしまうと (chmod 000 remote.unknown)、ローカルシステムはすべての通信要求を受け入れることになります。妥当な理由がないかぎり、この変更は行わないようにしてください。

UUCP の管理ファイル

次に、UUCP 管理ファイルについて説明します。これらのファイルは、デバイスのロック、一時データの保管、リモート転送や実行に関する情報の保存などのために、スプールディレクトリ内に作成されます。

表 26–6 UUCP ロックファイル

ファイル名 

説明 

LCK. sys

sys はファイルを使用しているコンピュータ名を表す

LCK. dev

dev はファイルを使用しているデバイス名を表す

LCK.LOG

LOG はロックされている UUCP ログファイルを表す

通信リンクが予定外のときに切断された場合 (コンピュータがクラッシュしたときなど)、これらのファイルがスプールディレクトリ内に残ることがあります。親プロセスが有効でなくなったあとは、ロックファイルは無視 (削除) されます。ロックファイルには、ロックを引き起こしたプロセスのプロセス ID が入っています。

UUCP のエラーメッセージ

この節には、UUCP に関連したエラーメッセージを示します。

UUCP の ASSERT エラーメッセージ

次の表に、ASSERT エラーメッセージを示します。

表 26–7 ASSERT エラーメッセージ

エラーメッセージ 

説明または処置  

CAN'T OPEN

open() または fopen() が失敗した

CAN'T WRITE

write()fwrite()fprint()、または類似のコマンドが失敗した

CAN'T READ

read()fgets()、または類似のコマンドが失敗した

CAN'T CREATE

creat() 呼び出しが失敗した

CAN'T ALLOCATE

動的割り当てが失敗した  

CAN'T LOCK

LCK (ロック) ファイルを作成しようとしたが失敗した。場合によってはこのエラーは致命的である

CAN'T STAT

stat() 呼び出しが失敗した

CAN'T CHMOD

chmod() 呼び出しが失敗した

CAN'T LINK

link() 呼び出しが失敗した

CAN'T CHDIR

chdir() 呼び出しが失敗した

CAN'T UNLINK

unlink() 呼び出しが失敗した

WRONG ROLE

内部ロジックの問題  

CAN'T MOVE TO CORRUPTDIR

不良な C. ファイルまたは X. ファイルを、/var/spool/uucp/.Corrupt ディレクトリに移動しようとしたが失敗した。このディレクトリが存在しないか、モードまたは所有者が正しくない

CAN'T CLOSE

close() または fclose() 呼び出しが失敗した

FILE EXISTS

C. ファイルまたは D. ファイルを作成しようとしたが、そのファイルがすでに存在している。このエラーは、シーケンスファイルのアクセスに問題がある場合に生じる。これは通常、ソフトエラーを示す

NO uucp SERVICE NUMBER

TCP/IP 呼び出しを試みたが、/etc/services 内に UUCP に関するエントリがない

BAD UID

ユーザー ID がパスワードデータベース内にない。ネームサービス構成の検査が必要 

BAD LOGIN_UID

前記と同じ  

BAD LINE

Devices ファイル内に不良な行がある。引数が足りない行が 1 つ以上ある

SYSLST OVERFLOW

gename.c の内部テーブルがオーバーフローした。1 つのジョブが 30 を超えるシステムに接続しようとした

TOO MANY SAVED C FILES

前記と同じ  

RETURN FROM fixline ioctl

失敗するはずのない ioctl(2) が失敗した。システムドライバに問題がある

BAD SPEED

Devices ファイルまたは Systems ファイルの中に不適正な回線速度がある (Class フィールドまたは Speed フィールド)

BAD OPTION

Permissions ファイルの中に不適正な行またはオプションがある。ただちに修正が必要

PKCGET READ

リモートマシンがハングアップした可能性がある。処置は不要  

PKXSTART

リモートマシンが回復不可能な状態で異常終了した。通常このエラーは無視できる  

TOO MANY LOCKS

内部的な問題がある。システムの購入先への問い合わせが必要  

XMV ERROR

ファイル、またはディレクトリのどこかに問題が発生している。このプロセスが実行される前に、宛先のモードがチェックされるべきであるが実行されていないなど、スプールディレクトリに問題がある可能性がある  

CAN'T FORK

forkexec を実行しようとしたが失敗した。現行ジョブは失われず、あとで再試行される (uuxqt)。処置は不要

UUCP の STATUS エラーメッセージ

次の表に一般的な STATUS エラーメッセージを示します。

表 26–8 UUCP の STATUS エラーメッセージ

エラーメッセージ 

説明または処置 

OK

状態は良好 

NO DEVICES AVAILABLE

現在、この呼び出し用に使用可能なデバイスがない。該当のシステムについて Devices ファイル内に有効なデバイスがあるかどうかを確認してください。そのシステムの呼び出しに使用するデバイスが Systems ファイル内にあるかどうかを検査してください

WRONG TIME TO CALL

Systems ファイルに指定されている日時以外の時点で、システムに対する呼び出しが行われた

TALKING

会話中  

LOGIN FAILED

特定のマシンのログインが失敗した。ログインまたはパスワードが正しくないか、番号が正しくないか、低速のマシンであるか、Dialer-Token-Pairs スクリプトによる処理が失敗した  

CONVERSATION FAILED

起動に成功したあとで対話が失敗した。一方の側がダウンしたか、プログラムが異常終了したか、回線 (リンク) が切断されたことが考えられる  

DIAL FAILED

リモートマシンがまったく応答しない。ダイアラが不良であるか、電話番号が正しくない可能性がある  

BAD LOGIN/MACHINE COMBINATION

あるマシンが、Permissions ファイルの条件を満たしていないログインとマシン名を使用して、ローカルマシンを呼び出そうとした。偽装の疑いがある

DEVICE LOCKED

使用しようとしている呼び出しデバイスは、現在ロックされ、ほかのプロセスに使用されている  

ASSERT ERROR

ASSERT エラーが発生した。/var/uucp/.Admin/errors ファイルにエラーメッセージが入っているかどうかを検査し、「UUCP の ASSERT エラーメッセージ」を参照

SYSTEM NOT IN Systems FILE

システムが Systems ファイルの中に記述されていない

CAN'T ACCESS DEVICE

アクセスしようとしたデバイスが存在しないか、またはモードが正しくない。Systems ファイルと Devices ファイルの中の該当のエントリを検査する

DEVICE FAILED

デバイスがオープンできない  

WRONG MACHINE NAME

呼び出されたマシンは、予期したのとは異なる名前である  

CALLBACK REQUIRED

呼び出されたマシンは、そのマシンがローカルマシンをコールバックする必要があることを示している  

REMOTE HAS A LCK FILE FOR ME

リモートマシンは、ローカルマシンに関連する LCK ファイルを持っている。そのリモートマシンがローカルマシンを呼び出そうとしている可能性がある。リモートマシンの UUCP のバージョンが古い場合は、プロセスがローカルマシンに接続しようとして失敗し、LCK ファイルがそのまま残されたことが考えられる。リモートマシンの UUCP のバージョンが新しく、ローカルマシンと通信していない場合は、LCK を持っているプロセスはハングアップする

REMOTE DOES NOT KNOW ME

リモートマシンの Systems ファイルの中に、ローカルマシンのノード名がない

REMOTE REJECT AFTER LOGIN

ローカルマシンがログインのために使用したログインが、リモートマシンが予期している内容に一致していない  

REMOTE REJECT, UNKNOWN MESSAGE

理由は不明だが、リモートマシンがローカルマシンとの通信を拒否した。リモートマシンが標準バージョンの UUCP を使用していない可能性がある  

STARTUP FAILED

ログインは成功したが、初期ハンドシェークに失敗した  

CALLER SCRIPT FAILED

通常、これは DIAL FAILED と同じ。しかしこのエラーが頻発する場合は、Dialers ファイル内の呼び出し側スクリプトに原因があることが考えられる。Uutry を使用して検査する

UUCP の数値エラーメッセージ

次の表に、/usr/include/sysexits.h ファイルにより生成されるエラー状態メッセージの終了コード番号を示します。これらのすべてが現在 uucp で使用されているわけではありません。

表 26–9 番号による UUCP のエラーメッセージ

メッセージ番号 

説明 

意味 

64

Base Value for Error Messages 

エラーメッセージはこの番号から始まります。 

64

Command–Line Usage Error 

コマンドの使い方に誤りがあります。。たとえば、引数の数が正しくない、誤ったフラグ、誤った構文などです。 

65

Data Format Error 

入力データになんらかの誤りがあります。このデータ形式はユーザーデータだけに使用されるもので、システムファイルには使用されません。 

66

Cannot Open Input 

入力ファイル (システムファイルでない) が存在しないか、または読み取れません。これには、メールプログラムに対する「No message」のようなエラーも含まれます。 

67

Address Unknown 

指定されたユーザーが存在しません。このエラーは、メールアドレスやリモートログインに使用されます。 

68

Host Name Unknown 

ホストが存在しません。このエラーは、メールアドレスやネットワーク要求に使用されます。 

69

Service Unavailable 

サービスが使用できません。このエラーは、サポートプログラムまたはファイルが存在しない場合に起こることがあります。このメッセージは、何かが正常に働かず、現時点ではその原因が特定できないことを示す場合もあります。 

70

Internal Software Error 

内部ソフトウェアエラーが検出されました。このエラーは、できるだけオペレーティングシステム関係以外のエラーに限定されるべきです。 

71

System Error 

オペレーティングシステムエラーが検出されました。このエラーは、「フォーク不可」や「パイプ作成不可」などの場合に使用されることが想定されています。たとえば、getuidpasswd ファイル内に存在しないユーザーを戻した場合などが含まれます。

72

Critical OS File Missing 

/etc/passwd/var/admin/utmpx などのシステムファイルのどれかが存在しないか、開くことができません。あるいは、構文エラーなどがあります。

73

Can't Create Output File 

ユーザーが指定した出力ファイルが作成できません。 

74

Input/Output Error 

あるファイルについて入出力を行なっているときにエラーが起こりました。 

75

Temporary Failure. User is invited to retry 

実際のエラーではない一時的な障害。たとえば sendmail では、これは、メールプログラムが接続を確立できなかったため、あとで要求を再試行する必要があることなどを意味します。

76

Remote Error in Protocol 

プロトコルの交換中に、リモートシステムが「使用不可」を示す何かを戻しました。 

77

Permission Denied 

この操作を行うための適正なアクセス権がユーザーにありません。これはファイルシステムの問題を示すものではなく (その場合は NOINPUTCANTCREAT などが使用される)、より高いレベルのアクセス権が必要であることを意味します。たとえば、kre は、メールを送ることのできる学生を制限するためにこのメッセージを使用します。

78

Configuration Error 

システムの構成にエラーがあります。 

79

Entry Not Found 

エントリが見つかりません。 

79

Maximum Listed Value 

エラーメッセージの最大番号。