我已经设置了两个生产者和一个消费者的复制。我使用以下命令进行备份:
ldapsearch -c -H ldapi:/// -D "cn=admin,dc=comp,dc=com" \
-y "/run/secrets/pwd" -b "dc=comp,dc=com" -LLL > openldap-data-backup.ldif
假设我要使用带有“ -c”的ldapadd来还原此备份,以忽略已经存在的条目:
ldapadd -H ldapi:/// -D "cn=admin,dc=comp,dc=com" -c -y /run/secrets/pwd -f openldap-data-backup.ldif
已存在的所有条目都将被忽略(我相信这是由于-c选项所致)。但是,诸如userPassword之类的属性在还原之前将按值保留。使用ldapadd进行的还原完全不会更改userPassword。
这是预期的行为吗?
ldapsearch默认情况下不会输出所有属性,因此您的密码哈希可能甚至不会与命令一起导出。您是否在openldap-data-backup.ldif
中检查了密码哈希?
# untested
ldapsearch -c -H ldapi:/// -D "cn=admin,dc=comp,dc=com" -y "/run/secrets/pwd" -b "dc=comp,dc=com" -LLL "(objectclass=*)"
# or
ldapsearch -c -H ldapi:/// -D "cn=admin,dc=comp,dc=com" -y "/run/secrets/pwd" -b "dc=comp,dc=com" -LLL "(objectclass=*,+)"
您可以在不停机的情况下使用slapcat / slapadd。在syncprov之前,我们使用它来“同步”我们的主设备和从设备。
也是此answer