InfoDirectory使用手引書 |
目次 索引 |
第5部 保守編 | > 第14章 トラブル事例 |
【トラブル現象】
LDAPコマンドでエントリの追加/検索を行うと文字化けが発生する。
【原因】
登録/参照したエントリが文字化けしている場合に、以下の原因が考えられます。
【対処方法】
以下のように対処してください。
【トラブル現象】
特殊文字を含むDNのエントリ登録に失敗した。
【原因】
特定の特殊文字をDNに使用する場合、それらをエスケープする必要があります。
【対処方法】
以下の特殊文字をDNに使用する場合、それらをエスケープしてください。
“\”、 “"”、 “,”、 “=”、 “+”、 “<”、 “>”、 “#”、 “;”
ldapmodifyコマンドの詳細は、ldapmodifyを参照してください。
【トラブル現象】
ldapmodifyコマンドでLDAP V2プロトコルを使用して、jpegphotoの属性を含むエントリを追加したが、管理ツールからそのjpegphotoのデータが参照できない。
【原因】
LDAP V2プロトコルを指定したldapmodifyコマンドでは、LDIFに指定されたバイナリデータは、バイナリとして送信されず、記述されたBase64形式の文字データとして登録されるため、管理ツールからjpegphotoのデータは見ることができません。
【対処方法】
バイナリデータとして送信する場合、LDAP V3プロトコルを指定したldapmodifyコマンドを使用してください。ldapmodifyコマンドの詳細は、ldapmodifyを参照してください。
【トラブル現象】
ldapmodifyコマンドで、LDIFファイルに“\”を含む属性値をLDAP V2プロトコルを指定して登録した場合、属性値に“\”が登録されない。
【原因】
LDAP V2プロトコルでは、“\”を含む属性を登録する場合、“\”をエスケープしていないために登録されていません。
【対処方法】
LDAP V2プロトコルで、“\”を含む属性値を登録する場合、“\”はエスケープする必要があります。LDAP V3プロトコルではエスケープする必要はありません。
【トラブル現象】
ldapmodifyコマンドで、属性値にバイナリデータのファイルから読込むように記述したLDIFを指定したところ、次のメッセージが出力された。
メッセージ:Failed to convert charactor code
【原因】
ldapmodifyコマンドによりバイナリ属性(jpegphoto)の値を指定するときは、以下の対処方法にしたがってください。
【対処方法】
画像データをバイナリ(JPEG)ファイルで登録する場合は、以下のようにURL形式(file://フルパス)で指定してください。
dn: cn=富士通タロウ,o=fujitsu,c=jp |
画像データをBase64形式のファイルで登録する場合は、以下のようにファイルのパスを直接指定してください。
dn: cn=富士通タロウ,o=fujitsu,c=jp |
【トラブル現象】
ldapmodifyコマンドで、LDIFファイルにファイルから属性値のデータを読み込むように指定して実行した場合、異なる属性値が登録された。
【原因】
LDIFファイル内に指定したファイルが、Base64形式にエンコードされていない可能性があります。
LDAP V3プロトコルを指定したldapmodifyコマンドでは、そのファイルの内容をデコードして登録します。この場合、指定したファイルの内容が異なるデータにデコードされて登録されている可能性があります。
また、LDAP V2プロトコルの場合、Base64からデコードされずにBase64データとして登録されます。
【対処方法】
LDIFファイルで属性値をファイルから読込んで指定する場合は、Base64形式にエンコードされたファイルを指定してください。LDIFファイルの属性値の指定方法については、属性値指定行を参照してください。
【トラブル現象】
ldapdeleteコマンドで以下の内容が記述されたファイルを指定し、コマンドを実行した場合、Invalid DN syntaxのエラーが発生した。
dn: cn=富士通タロウ,o=fujitsu,c=jp |
【原因】
LDIFファイルの指定方法に誤りがあります。
【対処方法】
ldapdeleteコマンドで指定されるファイルには、“dn:”の記述は必要ありません。この場合、以下の記述により、エントリの削除が行えます。ldapdeleteコマンドの詳細は、ldapdeleteを参照してください。
cn=富士通タロウ,o=fujitsu,c=jp |
【トラブル現象】
ldapdeleteコマンドで以下の内容が記述されたファイルを指定し、コマンドを実行した場合、Operation not allowed on nonleafのエラーが発生した。
o=fujitsu,c=jp |
【原因】
"o=fujitsu,c=jp"配下にエントリが存在するためにエラーが通知されています。
【対処方法】
"o=fujitsu,c=jp"配下のエントリを全て削除してから該当エントリを削除してください。ldapdeleteコマンドの詳細は、ldapdeleteを参照してください。
【トラブル現象】
ldapmodifyコマンドで以下のLDIFファイルを指定した場合、“invalid ldif format”エラーが通知される。[RET]は改行を表しています。
dn: cn=富士通タロウ,o=tfl,c=jp[RET] |
【原因】
LDIFファイルの記述形式に誤りがあります。“-”(ハイフン)行の最後に空白が含まれているために、このエラーになっています。
【対処方法】
invalid ldif formatのエラーは、LDIFの記述が間違っている場合に表示されます。このエラーが表示された場合、LDIFの記述形式を見直してください。LDIFの記述形式の詳細は、LDIFを参照してください。
【トラブル現象】
ldapmodifyコマンドでエントリ登録時、オブジェクトクラス関係のエラーが発生した。
【原因】
エントリ登録時にエラーが発生する場合、以下の原因によってLDAPのエラーコードに準拠したメッセージが出力されます。
エラー |
原因 |
---|---|
Object class violation |
オブジェクトクラスの必須属性を設定しない場合 |
Naming violation |
ネームバインドが設定されていない場合 |
Operations error |
存在しないオブジェクトクラス(属性)を設定した場合(LDAP V3のみ) |
Invalid syntax |
存在しないオブジェクトクラス(属性)を設定した場合(LDAP V2のみ) |
Invalid DN syntax |
シンタックスに合わない値を設定した場合 |
Constraint violation |
属性値のサイズが規定値を超える場合 |
【対処方法】
表のエラー原因について、オブジェクトクラス/属性の定義、ネームバインドの設定を確認してください。
オブジェクトクラスの定義については、付録A サポートオブジェクトクラスを参照してください。
属性の定義については、付録B サポート属性を参照してください。
ネームバインドの設定については、付録C サポートネームバインドを参照してください。
【トラブル現象】
ldapmodifyコマンドで以下の内容のLDIFファイルを指定したところ、次のエラーメッセ−ジが出力される。
メッセージ:
expecting "newrdn:" but saw "deleteoldrdn:" (line 3 of entry dn: cn=富士通タロウ,o=fujitsu,c=jp)
LDIFファイル:
dn: cn=富士通タロウ,o=fujitsu,c=jp |
【原因】
modrdnで指定されるサブコマンド(new rdn,deleteoldrdn,newsuperior)の指定順序が誤っています。
【対処方法】
サブコマンド行は、newrdn → deleteoldrdn → newsuperiorの順序で記述してください。
dn: cn=富士通タロウ,o=fujitsu,c=jp |
ldapmodifyコマンドで指定するサブコマンドについては、サブコマンド行を参照してください。
【トラブル現象】
ldapmodifyコマンドで、以下のエントリに対して、sn属性の値“フジツウ”を“ふじつう”に置換した場合、属性値”富士通”が削除された。
dn: cn=富士通タロウ,o=fujitsu,c=jp |
属性値の置換えには、以下のLDIFを使用した。
dn: cn=富士通タロウ,o=fujitsu,c=jp |
【原因】
複数の属性値の中から1つだけを置換する場合、属性の置換後も保持したい“富士通”を記述していないため属性値が削除されています。
【対処方法】
複数の属性値の中から1つだけを置換する場合、置換しない他の属性値も同時に指定する必要があります。このような場合、以下のような指定を行います。
dn: cn=富士通タロウ,o=fujitsu,c=jp |
【トラブル現象】
ldapmodifyコマンドで以下のLDIFファイルを指定した場合、invalid ldif formatのエラーが通知される。
dn: cn=富士通タロウ,o=tfl,c=jp |
【原因】
LDIFの記述形式に誤りがあります。telephonenumber行の属性値が指定されていないために、エラーが発生しています。属性値を指定しない属性を含むエントリを登録することはできません。
【対処方法】
invalid ldif formatのエラーは、LDIFの記述形式に誤っている場合に通知されます。このエラーが表示された場合、LDIFの記述形式を見直してください。LDIFの記述形式の詳細は、LDIFを参照してください。
【トラブル現象】
ldapsearchコマンドで以下のパラメタを指定を行って検索した場合、cn属性を含むエントリが通知されない。
ldapsearch -p 10001 -b c=jp "cn=富士通太郎,o=tfl,c=jp" "cn=*" |
【原因】
ldapsearchコマンドに指定したパラメタに誤りがあります。
【対処方法】
ユーザ名の指定が誤っています。ユーザ名は、“-D ユーザ名”で指定してください。
【トラブル現象】
ldapsearchコマンドで、Base64表記の指定(-e,-E)を行ってBase64形式の属性値を検索後、それをデコードしたが正しく変換されない。
【原因】
LDAPコマンドの仕様です。
【対処方法】
Base64表記の指定で表示されるBase64形式のデータは、UTF-8形式のデータをBase64形式にエンコードされています。したがって、Base64形式のデータをUTF-8形式にデコードし、UTF-8形式のデータに戻した後、再び適切な文字コードに変換する必要があります。
【トラブル現象】
ldapsearchコマンドで、文字コードにISO-8859-1を指定した場合、0x80以上のコードを含む属性値が、Base64形式で通知される。
【原因】
LDAPコマンドの仕様です。
【対処方法】
以下の場合、Base64形式で出力されます。
【トラブル現象】
ldapsearchコマンドで検索フィルタに“carLicense<=00050”を指定して検索を行ったが、carLicense属性に00049の属性値を含むエントリが検索されなかった。
【原因】
属性carLicenseのマッチングルール(照合規則)は“caseIgnoreMatch”であるため、“>=”(以上)もしくは“<=”(以下)の指定による検索はできません。
【対処方法】
マッチングルールが“caseIgnoreMatch”である属性に関しては、完全一致もしくは部分一致による検索フィルタを指定する必要があります。
例:
"carLicense=00049”、“ carLicense=0004*”
なお、“caseIgnoreOrderingMatch”の属性については、“>=”(以上)、もしくは“<=”(以下)の指定で検索を行うことができます。“caseIgnoreOrderingMatch”の属性を以下に示します。
"uid","employeenumber","dnQualifier"
属性のマッチングルールについては、属性一覧を参照してください。
【トラブル現象】
ldapsearchコマンドでroot DSEの情報が検索できない。
【対処方法】
ldapsearchコマンドのパラメタとして、basednに“null”(ヌル)、検索の範囲にbase、通知するroot DSEの属性を指定する必要があります。ldapsearchコマンドの詳細は、ldapsearchを参照してください。
ldapsearch -b "" -D "cn=admin" -w manager -s base "objectClass=*" subschemasubentry |
【トラブル現象】
ldapsearchコマンドでチェンジログの情報が検索できない。
【対処方法】
ldapsearchコマンドのパラメタとして、basednに“cn=changelog”、検索の範囲にbaseを指定する必要があります。ldapsearchコマンドの詳細は、ldapsearchを参照してください。
ldapsearch -s base -b "cn=changelog" -D "cn=admin" -w manager "objectclass=*" |
目次 索引 |