web-dev-qa-db-ja.com

openLDAP ldap_modify:カスタムスキーマを削除しようとすると、サーバーは(53)実行を望まない

私はこのカスタムで非常に基本的なスキーマを作成しました:

objectclass ( 2.25.2.2.1
    NAME 'myObjectClass'
    DESC 'myObjectClass objectclass'
    STRUCTURAL
    MUST ( cn )
    )

このmyObjectClass.ldifファイルに問題なく追加しました:

dn: cn=myObjectClass,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: myObjectClass
olcObjectClasses: {0}( 2.25.2.2.1 NAME 'myObjectClass' DESC 'myObjectClass objectclass' STRUCTURAL MUST cn )

Ldapmodifyの使用:

Sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f myObjectClass.ldif

今、私はそれをdelete.ldifで削除しようとしています:

dn: cn=schema,cn=config
changetype: modify
delete: objectClass
objectClass: 2.25.2.2.1

Ldapmodifyを使用すると、常にldap_modifyが取得されます。サーバーは実行を望んでいません(53):

Sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f delete.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=schema,cn=config"
ldap_modify: Server is unwilling to perform (53)

OpenLDAP 2.4.31でUbuntu 14.04サーバーを実行しています

私はこれを検索しました 公式ドキュメントで

A.2.2。 cn = schema機能の改善

2.3では、新しいスキーマ要素の追加のみが可能で、既存の要素の削除や変更はできませんでした。 2.4では、スキーマを自由に変更できます。 (もちろん、ハードコードされたシステムスキーマを除きます。)

誰かが手がかりを共有できますか?

前もって感謝します!

Openldapサーバーの2.4バージョンでスキーマ構成を変更する方法は次のとおりです。

  • このスキーマを使用するすべてのエントリを削除します

その後

slapcatを使用してslapdを停止し、動的構成をLDIFにエクスポートします。LDIFエクスポートを変更して問題のスキーマを削除します。古い動的構成ディレクトリを削除(または名前変更)します。slapadd更新されたLDIF開始slapd

公式サイトで this talk によると。

0

私はこれが古いスレッドであることを知っていますが、おそらく私の答えは他の人(将来的には私も含む)を助けるでしょう

私のOpenLDAPバージョン:slapd(Ubuntu)(2019年4月10日12:53:11)

設定ファイルを手動で編集してはいけないことはわかっていますが、すでにldapmodifyを使用していますが、ldapdelete noneは機能しません。これが実際に機能する私の最後の手段です。

cd /etc/ldap
mv slapd.d /var/backups/slapd.d.bak
mkdir slapd.d
slapcat -n0 -F /etc/ldap/slapd.d.old/ > /tmp/config-in-portable-format.ldif

ここで/tmp/config-in-portable-format.ldifファイルを編集します...

slapadd -n0 -F /etc/ldap/slapd.d -l /tmp/config-in-portable-format.ldif
chown -R openldap:openldap slapd.d/
chmod -R 755 slapd.d/
/etc/init.d/slapd restart
0
prabowo.priyo