LDAP 如何修改条目的对象类,避免修改对象类时提示 “structural object class modification from X to Y not allowed“

问题现象

由于LDAP 没有在单个事务中执行两个操作的标准化方法,因此中间目录
状态(在删除之后,在添加之前)对于其他客户端是可见的, 这可能导致不良的客户端行为。基于这个考虑早期 LDAP 没有提供修改条目对象类的功能。

当你尝试修改条目的对象类的时候会提示你structural object class modification from X to Y not allowed,具体提示如下:

[core@localhost tmp]$ ldapmodify -h home.coocn.cn -D "cn=root,dc=coocn,dc=cn" -w Root.123 -f p2op.ldlf
modifying entry "uid=test,ou=public,dc=coocn,dc=cn"
ldap_modify: Cannot modify object class (69)
        additional info: structural object class modification from 'person' to 'organizationalPerson' not allowed

p2op.ldlf 文件内容:

[core@localhost tmp]$ cat p2op.ldlf
dn: uid=test,ou=public,dc=coocn,dc=cn
changetype: modify
delete: objectClass
objectClass: person
-
add: objectClass
objectClass: organizationalPerson
-

解决方案

openldap 从 2.4 开始提供了manageDIT功能来支持修改条目的对象类,只需要在执行修改的时候通过参数 -e manageDIT 开启 manageDIT 功能的支持就可以了

[core@localhost tmp]$ ldapmodify -h home.coocn.cn -D "cn=root,dc=coocn,dc=cn" -w Root.123 -e manageDIT -f p2op.ldlf
modifying entry "uid=test,ou=public,dc=coocn,dc=cn"

参考文档:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值