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