マッピングファイル NISLDAPmapping は複雑なファイルです。多くの潜在的なエラーによって、マッピングが予期しない動作をする場合があります。次の方法を用いて、この問題を解決してください。
ypserv -ir (または -Ir) を実行したときのコンソールメッセージの表示
問題 : コンソールに簡単なメッセージが表示され、サーバーが終了します (詳細な説明は、syslog に書き込まれます)。
原因 : マッピングファイルの構文が間違っている場合があります。
対策 : NISLDAPmapping ファイルの構文をチェックして修正します。
起動時に NIS デーモンが終了する
問題 : ypserv またはその他の NIS デーモンを実行すると、LDAP 関連のエラーメッセージがログに記録され、デーモンが終了します。
原因 : 原因は次のいずれかが考えられます。
LDAP サーバーと通信できない
NIS マップまたは DIT 内のエントリが、指定されたマッピングと互換性がない
LDAP サーバーへの読み書きの試みがエラーを返す
対策 : LDAP サーバーのエラーログを調査します。「よくある LDAP エラーメッセージ」にリストされた LDAP エラーを参照してください。
NIS 動作からの予期しない結果
問題 : NIS 動作が予期した結果を返さず、エラーはログに記録されません。
原因 : 間違ったエントリが LDAP または NIS マップに存在する場合があります。この結果、マッピングが期待したとおりに完了しません。
対策 : LDAP DIT と NIS マップの N2L バージョンのエントリをチェックして、修正します。
LDAP DIT に正しいエントリが存在するかをチェックしてから、必要に応じてエントリを修正します。
Sun Java System Directory Server を使用している場合は、directoryserver startconsole を実行して管理コンソールを起動します。
新しく生成されたマップと元のマップを比較して、/var/yp ディレクトリの N2L バージョンの NIS マップに期待どおりのエントリが含まれていることをチェックします。必要に応じてエントリを修正します。
# cd /var/yp/domainname # makedbm -u test.byname # makedbm -u LDAP_test.byname |
マップの出力をチェックする場合は、次のことに注意してください。
両方のファイルでのエントリの順序が異なる可能性
出力を比較する前に、sort コマンドを使用します。
両方のファイルでの空白の使い方が異なる可能性
出力を比較するときに、diff -b コマンドを使用します。
NIS マップの処理順序
問題 : オブジェクトクラス違反が発生しています。
原因 : ypserv -i コマンドを実行すると、各 NIS マップが読み取られ、その内容が DIT に書き込まれます。複数のマップが、同一の DIT オブジェクトに属性を提供する場合もあります。通常、オブジェクトは、1 つのマップによってそのオブジェクトの MUST 属性のすべてを含む大部分を生成されます。ほかのマップは、ほかの MAY 属性を提供します。
マップは、NISLDAPmapping ファイルに定義されている nisLDAPobjectDN 属性と同じ順序で処理されます。MAY 属性を含むマップが MUST 属性を含むマップより先に処理されると、オブジェクトクラス違反が発生します。このエラーについての詳細は、「よくある LDAP エラーメッセージ」のエラー 65 を参照してください。
対策 : マップが正しい順序で処理されるように、nisLDAPobjectDN 属性の順序を変更します。
一時的に問題を回避するには、ypserv -i コマンドを複数回実行します。コマンドを実行するたびに、より多くの LDAP エントリが作られます。
1 つのマップからオブジェクトのすべての MUST 属性を作成できないマッピングはサポートされていません。