我已经创build了这个自定义和非常基本的模式:
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服务器
我在官方文档中search了这个:
A.2.2。 更好的cn =模式function
在2.3中,您只能添加新的模式元素,而不能删除或修改现有的元素。 在2.4中,您可以随意修改模式。 (当然,除了硬编码的系统模式。)
有人可以分享任何线索吗?
提前致谢!
在OpenLDAP服务器的2.4版本中修改模式configuration的方法是:
然后
使用slapcat停止slapd将dynamicconfiguration导出到LDIF修改LDIF导出以删除有问题的架构删除(或重命名)旧的dynamicconfig目录slapadd更新的LDIF启动slapd
据此在官方网站上的谈话 。