OpenLDAP中使用ldapmodify修改用户UID/DN后,关联群组的对应属性是否自动同步?
OpenLDAP中使用ldapmodify修改用户UID/DN后,关联群组的对应属性是否自动同步?
嗨,这个问题我刚好有实际运维经验,给你讲清楚:
首先明确结论:ldapmodify本身不会自动更新关联群组里的属性,不管你的群组是通过用户的DN(比如用member属性关联)还是UID(比如用memberUid属性关联)来绑定成员的,都不会跟着用户的UID/DN变更自动同步。
为啥会这样呢?因为OpenLDAP默认没有内置的“自动维护成员反向关联”机制——用户条目和群组条目是独立的对象,修改用户的DN或UID只是修改用户自身的条目数据,系统不会主动去扫描所有群组条目并更新对应的成员属性。
那该怎么处理呢?分两种场景给你方案:
- 如果群组是用DN关联(比如
member: uid=oldJane,ou=users,dc=example,dc=com):修改用户RDN后旧DN就失效了,你得手动找出所有包含这个旧DN的群组,用ldapmodify把member属性里的旧DN替换成新DN。 - 如果群组是用UID关联(比如
memberUid: oldjane):修改用户UID后,同样要手动遍历所有包含旧UID的群组,更新memberUid属性为新UID。
给你个实用小技巧:先通过ldapsearch快速定位需要修改的群组:
- 查找包含旧DN的群组:
ldapsearch -x -b "ou=groups,dc=example,dc=com" "(member=uid=oldJane,ou=users,dc=example,dc=com)" - 查找包含旧UID的群组:
ldapsearch -x -b "ou=groups,dc=example,dc=com" "(memberUid=oldjane)"
如果不想每次手动折腾,也可以给OpenLDAP配置refint(引用完整性Overlay),这个组件可以自动维护DN引用的完整性——当用户DN变更时,它会自动更新所有引用该DN的群组条目里的member属性。不过要注意,refint只对DN类型的引用有效,像memberUid这种存字符串UID的属性,它管不了,还是得手动处理。
备注:内容来源于stack exchange,提问作者heeeresjohnny
相关产品推荐
相关产品推荐

