添加OpenLDAP反向组成员资格维护覆盖后,如何更新现有对象的memberOf属性?

这是这个问题的一个后续:我将叠加成员添加到现有的OpenLDAP 2.4服务器。 现在我想更新现有的用户对象。

对于新的组成员,memberOf属性已正确更新。 但是我有一堆现有的组不会自动更新。 我可以从组中删除所有用户,并重新添加它们以确保这些条目同步。 由于这是一个Univention公司服务器 ,当你修改LDAP时有很多魔力,我不想冒险破坏我的目录。

有没有办法欺骗覆盖更新这些操作属性?

只有在修改组中的成员时,才会激活memberOf覆盖。 所以,“欺骗”它更新memberOf属性的唯一方法就是将所有用户从他们的组中删除并重新添加它们,正如你所build议的那样。

另一种方法是使用外部工具来同步群组及其成员的条目。

你可以编写你自己的脚本 – 对于每个组织来说,读取成员,为每个成员运行一个LDAP“modify”操作,为该成员条目的memberOf属性添加一个值。

或者,也许更可靠,你可以使用像LSC (LDAP同步连接器)这样的工具,它几乎已经完成了所有的事情:你只需要configuration你想要的映射。 LSC的诀窍是使用同一个LDAP服务器作为源和目标,并通过所有用户运行,以确保memberOf属性包含search所有组的成员列表。 LSC网站有一个教程来做到这一点 ,但有点过时了。

我认为运行slapindex将解决您的问题。 至less这听起来很像当你给你的系统添加一个新的索引时发生的事情。除非你对旧条目运行重新索引,否则你会得到有趣的结果。

请注意,运行这个时,必须停止openldap服务器。 你应该运行它作为slapd用户(如openldap)或以root身份运行它,并更改权限afterwords。

 /etc/init.d/slapd stop slapindex chown openldap:openldap /var/lib/ldap/* /etc/init.d/slapd start 

要么

 /etc/init.d/slapd stop su - openldap -c slapindex /etc/init.d/slapd start 

在运行这个之前请阅读slapindex手册页。 这应该是安全的,除非你有损坏的数据库。 (只要记得开始之前检查文件权限)

命令如何停止和启动你的serices将取决于你的运行的Os味道。