web-dev-qa-db-ja.com

既存のLDAPオブジェクトクラスに新しい属性を追加するにはどうすればよいですか?

カスタムLDAP objectClassを作成しましたが、OpenLDAPサーバーに追加する前にいくつかの属性を忘れていました。このUbuntuドキュメントページの指示に従いました。 https://help.ubuntu.com/12.04/serverguide/openldap-server.html Ubuntu 12.04を実行しています。

では、サーバーにすでに適用されているobjectClassに新しいMAY属性を追加するにはどうすればよいですか?

特にOpenLDAPについてですが、Novell eDirectoryについても知っておくとよいでしょう。

5
David R.

短い答え

複数の値を持つ属性を持つ通常のLDAPエントリの場合とまったく同じように、ldapmodifyを使用します。

それは私が予想していたこととほぼ同じですが、スキーマのLDAP検索を実行すると表示される{N}インデックス付けのため、100%確実ではありませんでした。

長い答え

まず、スキーマのDNを見つけます。 cn = {4} test、cn = schema、cn = configのようなもの次に、ldifファイルを作成してディレクトリに適用します。 Ubuntu 12.04では、次のようにrootとして適用しました。

ldapmodify -Q -Y EXTERNAL -H ldapi://  -f test.ldif

私が問題を抱えていた部分は、ldif変更構文と、{N}インデックスをどうするかです。

したがって、ldifファイルの先頭は次のようになります。

version: 1

dn: cn={N}test,cn=schema,cn=config
changetype: modify

ObjectClassを変更するには:

delete: olcObjectClasses
olcObjectClasses: <old value>
-
add: olcObjectClasses
olcObjectClasses: <new value>

属性を変更するには:

delete: olcAttributeTypes
olcAttributeTypes: <old value>
-
add: olcAttributeTypes
olcAttributeTypes: <new value>

構文について理解したいくつかのヒント:

  • Ldifファイルの{N}インデックスを無視します。それらは自動的に修正されます。
  • スキーマのDNに{N}が必要です。
  • ステートメント間の「-」を思い出してください。
  • '-'の後に改行しないでください。 ldapmodifyはその新しい行で停止するため、それ以降は何も実行されません。
  • それらを含めるためにobjectClassを変更する前に、新しい属性を追加します。
  • すべてのタブ文字を削除します。それらはシステムを意味不明なものにします。
6
David R.