11.3. 使用命令行配置引用完整性插件
您可以使用命令行配置 referential Integrity 插件。
在复制拓扑的每个供应商上执行这个步骤。
流程
启用引用完整性插件:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity enable设置子树,插件搜索删除或重命名用户条目的操作:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --entry-scope "ou=People,dc=example,dc=com"可选:排除条目范围下的子树:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --exclude-entry-scope "ou=Special Users,ou=People,dc=example,dc=com"此命令将插件配置为忽略
ou=Special Users,ou=People,dc=example,dc=com子树中执行的操作。配置子树,该子树会在其中更新组条目:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --container-scope "ou=Groups,dc=example,dc=com"默认情况下,插件对
成员、uniqueMember、owner和seeAlso属性执行完整性更新。要指定其他属性,请输入:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --membership-attr attribute_1 attribute_2请注意,这个命令会覆盖插件配置中的属性列表。如果要添加属性,请将当前属性列表和额外属性列表传给
--membership-attr选项。可选: 默认情况下,Directory 服务器会立即执行引用完整性检查。如果要设置延迟,请输入:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --update-delay=5此命令将引用完整性检查的延迟
5秒。请注意,如果您在多个供应商上启用了引用完整性,设置延迟可能会导致复制循环和目录不一致。要避免这些问题,请只在拓扑中的一个供应商上启用插件。重启实例:
# dsctl instance_name restart
验证
显示引用完整性插件配置:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity show ... nsslapd-plugincontainerscope: ou=Groups,dc=example,dc=com nsslapd-pluginentryscope: ou=People,dc=example,dc=com ... referint-membership-attr: member referint-membership-attr: uniquemember referint-membership-attr: owner referint-membership-attr: seeAlso referint-update-delay: 0 ...通过显示组成员属性来列出
组的成员:# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=Groups,dc=example,dc=com" member ... member: uid=demoUser,ou=People,dc=example,dc=com删除
uid=demoUser,ou=People,dc=example,dc=com用户:# dsidm -D "cn=Directory manager" ldap://server.example.com -b "dc=example,dc=com" user delete "uid=demoUser,ou=People,dc=example,dc=com"再次显示组成员:
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=People,dc=example,dc=com" member如果
uid=demoUser,ou=People,dc=example,dc=com不再列为组的成员,则 referential Integrity 插件可以正常工作。