Ldap
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: Server is unwilling to perform (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 中,您可以隨意修改架構。(當然,硬編碼的系統模式除外。)
有人可以分享任何線索嗎?
提前致謝!
在 2.4 版本的 Openldap 伺服器中修改 schema 配置的方法是:
- 刪除所有使用此架構的條目
然後
停止 slapd 使用 slapcat 將動態配置導出到 LDIF 修改 LDIF 導出以刪除有問題的模式 刪除(或重命名)舊的動態配置目錄 slapadd 更新的 LDIF 啟動 slapd
根據官方網站上的這個談話。
我知道這是一個舊執行緒,但也許我的回答會幫助其他任何人(包括將來我自己)
我的 OpenLDAP 版本:slapd (Ubuntu) (Apr 10 2019 12:53:11)
我知道我們永遠不應該手動編輯配置文件,但我已經使用了 ldapmodify,ldapdelete 沒有用。這是我真正有效的最後手段。
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