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

第 25 章 UUCP の管理 (手順)

この章では、使用するマシンに合わせてデータベースファイルを変更したあと、UUCP 処理を起動する方法について説明します。この章には、Solaris OS が動作するマシンで UUCP を構成し保守するための、手順と障害の解明についての情報が記載されています。

UUCP 管理 (作業マップ)

次の表に、この章で説明する手順の参照先と、各手順についての簡単な説明を示します。

表 25–1 UUCP 管理の作業マップ

作業 

説明 

参照先 

リモートマシンにユーザーシステムへのアクセスを許可する 

/etc/passwd ファイルを編集し、ユーザーのシステムへのアクセスを許可するマシンを識別するようエントリを追加する

「UUCP ログインの追加方法」

UUCP を起動する 

UUCP の起動用に提供されているシェルスクリプトを使用する 

「UUCP の起動方法」

UUCP を TCP/IP ネットワーク上で有効にする 

/etc/inetd.conf ファイルと /etc/uucp/Systems ファイルを編集し、TCP/IP 用の UUCP を起動する

「TCP/IP 用 UUCP の起動方法」

UUCP に起こりがちな問題を解決する 

モデムまたは ACU の異常を確認するための診断手順を実行する 

「モデムまたは ACU の障害確認方法」

 

送信をデバッグするための診断手順を実行する  

「送信に関するデバッグ方法」

UUCP のログインの追加

リモートマシンからの UUCP (uucico ) 着信要求が正しく取り扱われるように、各リモートマシンはローカルシステム上にログインを持っていなければなりません。

ProcedureUUCP ログインの追加方法

ユーザーのシステムへのアクセスをリモートマシンに許可するには、次の手順を行なって /etc/passwd ファイルにエントリを追加する必要があります。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /etc/passwd ファイルを編集し、システムにアクセスを許可するマシンを識別するためのエントリを追加します。

    通常、UUCP 接続でのシステムへのアクセスを許可するリモートマシンについて、次のようなエントリを /etc/passwd ファイルに入力します。


    Ugobi:*:5:5:gobi:/var/spool/uucppublic:/usr/lib/uucp/uucico 

    リモートマシンのログイン名は慣例的に、そのマシン名の前に大文字の U を付けたものです。8 文字を超える名前は使用できないので、一部を短縮した名前や省略名を使用しなければならない場合もあります。

    例に示したエントリは、Ugobi からのログイン要求に /usr/lib/uucp/uucico が応答することを示しています。ホームディレクトリは /var/spool/uucppublic です。パスワードは /etc/shadow ファイルから取得されます。パスワードとログイン名は、リモートマシンの UUCP 管理者と協議して決める必要があります。リモート側の管理者は、ログイン名と暗号化されていないパスワードを含む正しいエントリを、リモートマシンの Systems ファイルに追加する必要があります。

  3. ほかのシステムの UUCP 管理者と、ローカルマシン名を調整します。

    同様に、ローカルマシン名とパスワードについて、UUCP を介して通信する相手方のすべてのマシンの UUCP 管理者と協議する必要があります。

UUCP の起動

UUCP には、次に示す 4 つのシェルスクリプトが付属しています。これらのスクリプトは、リモートマシンをポーリングし、転送を再スケジュールし、古いログファイルと成功しなかった転送を整理します。4 つのスクリプトは次のとおりです。

UUCP を円滑に運用するには、これらのスクリプトを定期的に実行する必要があります。Solaris の全体インストールを行なった場合は、これらのスクリプトを実行するための crontab ファイルが、インストールプロセスの一環として自動的に /usr/lib/uucp/uudemon.crontab の中に作成されます。全体インストールでない場合は、UUCP パッケージをインストールするときにこのファイルが作成されます。

UUCP シェルスクリプトは手動でも実行できます。次に示すのは、 uudemon.crontab のプロトタイプです。このファイルは、マシンの運用の都合に合わせて適宜変更できます。


#
#ident  "@(#)uudemon.crontab    1.5     97/12/09 SMI"
#
# This crontab is provided as a sample. For systems
# running UUCP edit the time schedule to suit, uncomment 
# the following lines, and use crontab(1) to activate the
# new schedule.
#
#48 8,12,16 * * * /usr/lib/uucp/uudemon.admin
#20 3 * * * /usr/lib/uucp/uudemon.cleanup
#0 * * * * /usr/lib/uucp/uudemon.poll
#11,41 * * * * /usr/lib/uucp/uudemon.hour

注 –

デフォルトでは、UUCP の操作は無効にされています。UUCP を有効にするには、タイムスケジュールを編集し、uudemon.crontab ファイルの適切な行のコメントを解除してください。


ProcedureUUCP の起動方法

uudemon.crontab ファイルは、次の手順に従って起動します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /usr/lib/uucp/uudemon.crontab ファイルを編集し、必要に応じてエントリを変更します。

  3. 次のコマンドを入力して、uudemon.crontab ファイルを起動します。


    crontab < /usr/lib/uucp/uudemon.crontab
    

uudemon.poll シェルスクリプト

デフォルトの uudemon.poll シェルスクリプトは 1 時間に 1 回 /etc/uucp/Poll ファイルを読み取ります。Poll ファイル内のマシンのどれかに対するポーリングがスケジュールされると、作業ファイル (C.sysnxxxx) が /var/spool/uucp/nodename ディレクトリに入れられます。nodename は、そのマシンの UUCP ノード名です。

このシェルスクリプトは、1 時間に 1 回ずつ uudemon.hour の前に実行されるようにスケジュールされているので、uudemon.hour が呼び出されたときには、作業ファイルが存在しています。

uudemon.hour シェルスクリプト

デフォルトの uudemon.hour シェルスクリプトは次のことを行います。

デフォルトでは、uudemon.hour は 1 時間に 2 回実行されます。リモートマシンに対する呼び出しが頻繁に失敗すると予測される場合は、このスクリプトの実行頻度を増やすこともできます。

uudemon.admin シェルスクリプト

デフォルトの uudemon.admin シェルスクリプトは次のことを行います。

uudemon.cleanup シェルスクリプト

デフォルトの uudemon.cleanup シェルスクリプトは次のことを行います。

TCP/IP を介した UUCP の実行

TCP/IP ネットワーク上で UUCP を実行するには、この節で説明するようにいくつかの変更が必要になります。

ProcedureTCP/IP 用 UUCP の起動方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /etc/uucp/Systems ファイルを編集し、対象エントリが次のフィールドを持っていることを確認します。

    System-Name Time TCP Port networkname Standard-Login-Chat

    典型的なエントリは次のようになります。


    rochester Any TCP - ur-seneca login: Umachine password: xxx

    networkname フィールドには、TCP/IP ホスト名を明示的に指定できます。この機能は一部のサイトにとっては重要です。上の例に示したサイトの UUCP ノード名は rochester であり、これは TCP/IP ホスト名 ur-seneca と異なります。さらに、 rochester という TCP/IP ホスト名を持ち、UUCP を実行するまったく別のマシンが存在することもあり得ます。

    Systems ファイル内の Port フィールドにはエントリ - を指定するようにしてください。これは、エントリを uucp と指定するのと同じです。ほとんどの場合、networkname はシステム名と同じで、Port フィールドは - となります。これは、services データベースから標準 uucp ポートを使用することを意味します。in.uucpd デーモンは、認証のためにリモートマシンがログインとパスワードを送ることを想定しているので、gettylogin と同様に、ログインとパスワードを要求します。

  3. /etc/inet/services ファイルを編集し、次のように UUCP 用のポートを設定します。


    uucp    540/tcp    uucpd        # uucp daemon

    このエントリを変更する必要はありません。ただし、マシンがネームサービスとして NIS または NIS+ を実行する場合は、/etc/services/etc/nsswitch.conf エントリを変更して、まず files、次に nis または nisplus が検査されるようにする必要があります。

  4. UUCP が有効になっているか確認します。


    # svcs network/uucp
    

    UUCP サービスは、サービス管理機能によって管理されます。このサービスの状態は、svcs コマンドを使用して確認できます。サービス管理機能の概要については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。

  5. (省略可能) 必要に応じ、次のように入力して UUCP を有効にします。


    # inetadm -e network/uucp
    

UUCP のセキュリティーと保守

UUCP の設定が終われば、その後の保守は簡単です。この節では、セキュリティー、保守、およびトラブルシューティングに関連する UUCP の作業について説明します。

UUCP のセキュリティーの設定

デフォルトの /etc/uucp/Permissions ファイルは、UUCP リンクに関する最大限のセキュリティーを提供します。デフォルトの Permissions ファイルには、エントリは入っていません。

定義する各リモートマシンについて、次に示す追加パラメータを設定できます。

典型的な Permissions のエントリは次のようになります。


MACHINE=datsun LOGNAME=Udatsun VALIDATE=datsun 
COMMANDS=rmail REQUEST=yes SENDFILES=yes

このエントリでは、システム内の任意の場所ではなく、通常の UUCP ディレクトリとの間でのファイルの送信と受信が可能となります。また、ログイン時に UUCP ユーザー名の認証が行われます。

日常の UUCP の保守

UUCP の保守に必要な作業の量はさほど多くはありません。ただし、How to Start UUCP で述べたように、「UUCP の起動方法」 ファイルが正しい場所に置かれているか確認するとともに、メールファイルと公開ディレクトリが次第に大きくなることに注意する必要があります。

UUCP に関連する電子メール

UUCP のプログラムとスクリプトが生成する電子メールメッセージは、すべてユーザー ID uucp に送信されます。管理者がユーザー uucp として頻繁にログインしていないと、メールが蓄積され、ディスク空間を浪費していることに気付かない場合があります。この問題を解決するには、/etc/mail/aliases の中に別名を 1 つ作り、root か自分自身、そしてほかの UUCP 保守責任者に、電子メールを転送します。aliases ファイルを変更したあとで、newaliases コマンドを実行するのを忘れないようにしてください。

UUCP 公開ディレクトリ

ディレクトリ /var/spool/uucppublic は、UUCP がデフォルトでファイルをコピーできる場所として、すべてのシステムに対して提供されているディレクトリです。すべてのユーザーが、/var/spool/uucppublic への移動と、このディレクトリ内のファイルの読み書きを行う権限を持っています。しかし、このディレクトリのスティッキービットが設定されているため、このディレクトリのモードは 01777 です。したがって、ユーザーには、このディレクトリにコピーされ uucp に所有されているファイルを削除することはできません。 このディレクトリからファイルを削除できるのは、root または uucp としてログインした UUCP 管理者だけです。このディレクトリ内に無秩序にファイルが蓄積するのを防ぐために、定期的にファイルを削除する必要があります。

このような保守作業がユーザーにとって不都合な場合は、セキュリティーのために設定されているスティッキービットを削除するのではなく、uutouupick を使用するよう各ユーザーに推奨してください。uutouupick の使い方については、uuto(1C) のマニュアルページを参照してください。このディレクトリのモードの制限の度合を強めて、特定のユーザーグループに使用を限定することもできます。ユーザーによってディスク空間が使い切ってしまわれないように、そのディスクへの UUCP アクセスを拒否することもできます。

UUCP のトラブルシューティング

ここでは、UUCP に関する一般的な問題を解決するための手順について説明します。

Procedureモデムまたは ACU の障害確認方法

モデムや ACU で、適正に動作していないものがないかどうかを、いくつかの方法で検査できます。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 次のコマンドを実行し、接続障害の回数と理由を表示します。


    # uustat -q
    
  3. 特定の回線を介した呼び出しを行い、その試行に関するデバッグ情報を表示します。

    この回線は、/etc/uucp/Devices ファイル内で direct として定義されていなければなりません。回線が自動ダイアラに接続されている場合は、コマンド行の終わりに電話番号を追加する必要があります。または、デバイスを direct として設定する必要があります。次のように入力します。


    # cu -d -lline
    

    line/dev/cua/a です。

Procedure送信に関するデバッグ方法

特定のマシンに接続できない場合は、Uutryuucp を使用して、そのマシンに対する通信を検査できます。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 接続を試行します。


    # /usr/lib/uucp/Uutry -r machine
    

    machine には、接続できないマシンのホスト名を指定します。このコマンドは次のことを行います。

    • デバッグ機能を指定して転送デーモン (uucico) を起動する。root としてログインしていれば、さらに多くのデバッグ情報が得られる

    • デバッグ出力を /tmp/machine に送る

    • 次のように入力すると、デバッグ出力を端末に表示する


      # tail -f
      

      出力を終了するには Control-C キーを押します。この出力を保存する場合は、/tmp/machine から出力内容をコピーします。

  3. Uutry を使用しても問題の原因がわからない場合は、ジョブをキューに入れてみます。


    # uucp -r file machine\!/dir/file
    
    file

    転送するファイルの名前を指定する

    machine

    コピー先のマシンの名前を指定する

    /dir/file

    相手のマシンのどこにファイルを転送するかを指定する

  4. 次のコマンドを入力します。


    # Uutry
    

    それでも問題が解決できないときは、ご購入先へお問い合わせください。デバッグ出力は問題の診断に役立つため、保存しておいてください。


    注 –

    Uutry-x n オプションを使用して、デバッグのレベルを増減することもできます。n はデバッグレベルを指定します。Uutry のデフォルトのデバッグレベルは 5 です。

    デバッグレベル 3 では、接続がいつどのように確立されたかについての基本的な情報は提供されますが、転送について提供される情報は多くはありません。一方、デバッグレベル 9 では、転送処理に関するすべての情報が網羅されます。デバッグは転送の両端で行われるという点に注意してください。比較的大きいテキストについて 5 より高いレベルのデバッグを行いたい場合は、相手サイトの管理者に連絡して、いつレベルを変更するか決定してください。


UUCP /etc/uucp/Systems ファイルの検査

特定のマシンと接続しようとすると障害が発生する場合は、Systems ファイルの中の情報が最新のものであることを確認してください。マシンに関する次の情報が、最新でない可能性があります。

UUCP エラーメッセージの検査

UUCP のエラーメッセージには、 ASSERTSTATUS の 2 つの種類があります。

基本情報の検査

次のコマンドを使用して、基本的なネットワーク情報を検査できます。