1 台か 2 台のクライアントだけで、NIS のバインドに関する問題を示す症状が発生している場合は、そのクライアントに問題があると考えられます。複数のクライアントが正しくバインドできない場合は、1 台以上の NIS サーバーに問題があると考えられます。複数のクライアントに影響する NIS の問題を参照してください。
あるクライアントに問題がありますが、同じサブネット上のほかのクライアントは正常に動作しています。問題のあるクライアント上で、ls –l をたとえば /usr のような、多くのユーザーが所有するファイル (クライアント /etc/passwd ファイルにはないものも含む) を持つディレクトリで実行します。その結果の表示に、ローカルの /etc/passwd にないファイル所有者が名前ではなく、番号として一覧表示される場合は、そのクライアント上で NIS サービスが動作していないことを示します。
通常これらの症状は、クライアント ypbind プロセスが実行されていないことを示します。NIS クライアントサービスが実行されているかどうかを確認します。
client# svcs \*nis\* STATE STIME FMRI disabled Sep_01 svc:/network/nis/domain:default disabled Sep_01 svc:/network/nis/client:default
これらのサービスが disabled 状態にある場合は、root としてログインするか、または同等の役割になり、NIS クライアントサービスを起動します。
client# svcadm enable network/nis/domain client# svcadm enable network/nis/client
あるクライアントに問題があり、ほかのクライアントは正常に動作していますが、ypbind はその問題のあるクライアント上で実行されています。クライアントのドメインの設定が間違っている可能性があります。
クライアント上で domainname コマンドを実行して、どのドメイン名が設定されているのかを調べます。
client7# domainname example.com
この出力を、NIS マスターサーバー上の /var/yp 内の実際のドメイン名と比較します。実際の NIS ドメインは、/var/yp ディレクトリ内のサブディレクトリとして表示されます。
client7# ls -l /var/yp -rwxr-xr-x 1 root Makefile drwxr-xr-x 2 root binding drwx------ 2 root example.com
マシン上で domainname を実行することによって返されたドメイン名が、/var/yp 内のディレクトリとして一覧表示されたサーバードメイン名と同じでない場合は、マシンの /etc/defaultdomain ファイルで指定されたドメイン名が正しくありません。マシンの NIS ドメイン名を設定する方法で示すように、NIS ドメイン名をリセットします。
ドメイン名が正しく設定されていて ypbind が実行中でもコマンドがまだハングする場合には、ypwhich コマンドを実行してクライアントがサーバーにバインドされていることを確認してください。ypbind を起動したばかりのときは、ypwhich を数回実行します。通常、1 回目ではドメインがバインドされていないことが通知され、2 回目は成功します。
ドメイン名が正しく設定されていて ypbind が実行中のときに、クライアントがサーバーと通信できないというメッセージを受け取った場合には、いくつかの問題が考えられます。
クライアントに、バインド先のサーバーのリストが含まれた /var/yp/binding/domainname/ypservers ファイルが存在しますか。ない場合には、ypinit –c を実行して、設定の順番にクライアントのバインド先のサーバーを指定します。
クライアントに /var/yp/binding/domainname/ypservers ファイルがあり、1 つ以上のサーバーが使用できない場合には、十分な数のサーバーがあるかどうかを調べます。ない場合には、ypinit –c を実行して、リストにサーバーを追加します。
/etc/inet/hosts ファイル内に、選択された NIS サーバーのエントリがありますか。選択された NIS サーバーを表示するには、svcprop –p config/ypservers nis/domain コマンドを使用します。これらのホストがローカルの /etc/inet/hosts ファイル内に含まれていない場合は、Working With NIS Mapsの説明に従って ypinit –c または ypinit –s コマンドを実行することによって、NIS マップに関する作業 の NIS マップにサーバーを追加してマップを再構築します。
ネームサービススイッチは NIS に加えて、マシンのローカルの hosts ファイルをチェックするように設定されていますか。スイッチの詳細については、Chapter 2, ネームサービススイッチについてを参照してください。
ネームサービススイッチは、services と rpc で最初に files をチェックするように設定されていますか。スイッチの詳細については、Chapter 2, ネームサービススイッチについてを参照してください。
ypwhich を同じクライアントで数回使うと、NIS サーバーが変わるので結果の表示も変わります。これは正常です。NIS クライアントから NIS サーバーへのバインドは、ネットワークや NIS サーバーを使用中の場合は時間の経過に伴って変化します。ネットワークは、すべてのクライアントが受け入れ可能な応答時間を NIS サーバーから得られる点で安定した状態になります。クライアントのマシンが NIS サービスを得ている限りは、サービスの供給元は問題にはなりません。たとえば、NIS サーバーマシンがそれ自体の NIS サービスを、ネットワーク上の別の NIS サーバーから受けることもあります。
ローカルなサーバーのバインドが不可能な場合には ypset コマンドを使用すると、別のネットワークまたはサブネットの別のサーバーが使用可能な場合には、そのサーバーへのバインドが一時的に可能になります。ただし、–ypset オプションを使用するためには、ypbind を –ypset または –ypsetme オプションのどちらかを指定して、実行する必要があります。詳細は、ypbind(1M) のマニュアルページを参照してください。
# /usr/lib/netsvc/yp/ypbind -ypset
別の方法については、特定の NIS サーバーへのバインドを参照してください。
![]() | 注意 - セキュリティー上の理由から、–ypset オプションや –ypsetme オプションの使用はお勧めできません。これらのオプションは、制御された環境でのデバッグの目的にのみ使用してください。–ypset オプションや –ypsetme オプションを使用すると、これらのデーモンの実行中にだれでもサーバーのバインドを変更でき、ほかのユーザーでトラブルが発生したり、機密データへの未承認のアクセスが許可されたりするため、重大なセキュリティー違反が発生する場合があります。これらのオプションを使用して ypbind デーモンを起動する必要がある場合は、問題を解決したあとに ypbind プロセスを強制終了し、これらのオプションなしでこのデーモンを再起動する必要があります。ypbind デーモンを再起動するには、SMF を次のように使用します。 # svcadm enable -r svc:/network/nis/client:default |
ypbind デーモンが、起動されるたびにほぼ即座にクラッシュする場合は、svc:/network/nis/client:default サービスログ内で問題を探します。次のように入力して、rpcbind デーモンが存在するかどうかをチェックします。
% ps -e |grep rpcbind
rpcbind が存在しないか、または安定しなかったり、異常な動作を行なったりする場合は、svc:/network/rpc/bind:default ログファイルをチェックします。詳細は、rpcbind(1M) および rpcinfo(1M) のマニュアルページを参照してください。
正常に機能しているマシンから、問題のあるクライアント上の rpcbind と通信ができる場合があります。正常に機能しているマシンから、次のように入力します。
% rpcinfo client
問題のあるマシン上の rpcbind が正常である場合、rpcinfo は次の出力を生成します。
program version netid address service owner ... 100007 3 udp6 ::.191.161 ypbind 1 100007 3 tcp6 ::.135.200 ypbind 1 100007 3 udp 0.0.0.0.240.221 ypbind 1 100007 2 udp 0.0.0.0.240.221 ypbind 1 100007 1 udp 0.0.0.0.240.221 ypbind 1 100007 3 tcp 0.0.0.0.250.107 ypbind 1 100007 2 tcp 0.0.0.0.250.107 ypbind 1 100007 1 tcp 0.0.0.0.250.107 ypbind 1 100007 3 ticlts 2\000\000\000 ypbind 1 100007 2 ticlts 2\000\000\000 ypbind 1 100007 3 ticotsord 9\000\000\000 ypbind 1 100007 2 ticotsord 9\000\000\000 ypbind 1 100007 3 ticots @\000\000\000 ypbind 1 ...
使用中のマシンには異なる複数のアドレスがあります。それらのアドレスが表示されない場合は、ypbind によってそのサービスが登録できていません。マシンをリブートして再度 rpcinfo を実行します。ypbind プロセスがそこに存在し、NIS サービスを再起動しようとするたびに変更される場合は、rpcbind デーモンが実行されていてもシステムをリブートします。