我创建了这个自定义且非常基本的架构:
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 配置的方法是:
然后
根据官方网站上的这个谈话。
我知道这是一个旧线程,但也许我的回答会帮助其他任何人(包括将来我自己)
我的 OpenLDAP 版本:slapd (Ubuntu) (Apr 10 2019 12:53:11)
我知道我们永远不应该手动编辑配置文件,但我已经使用了 ldapmodify,ldapdelete 没有用。这是我真正有效的最后手段。
在此处编辑文件 /tmp/config-in-portable-format.ldif ...
我在尝试使用添加架构时遇到了这个错误
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
它告诉我:
“ ldap_modify:服务器不愿意执行(53)附加信息:没有全局高级知识”
我发现我的 ldif 文件格式不正确(请注意我在专有名称之前的空格)。 我的 ldif 文件的屏幕截图