При добавлении базы из резервной копии – возникает ошибка:
# ldapadd -x -D "cn=root,dc=kiev_dev" -f 2014_00_19_15_00_27_dc_kiev_dev.ldif -W Enter LDAP Password: adding new entry "dc=kiev_dev" ldap_add: Constraint violation (19) additional info: structuralObjectClass: no user modification allowed
Причина – бекап базы создаётся с помощью slapcat
, а не ldapsearch
– и имеет другой формат (включет в себя больше информации).
Подрообнее – тут: OpenLDAP: резервное копирование и восстановление — утилиты slapcat / slapadd и ldapsearch / ldapadd
Решение – добавить с помощью slapadd
.
Останавливаем OpenLDAP:
# service slapd stop
Добавляем базу:
# slapadd -l 2014_00_19_15_00_27_dc_kiev_dev.ldif bdb_monitor_db_open: monitoring disabled; configure monitor database to enable .#################### 100.00% eta none elapsed 01m43s spd 73.8 k/s Closing DB...
Меняем владельца (т.к. были созданы новые файлы):
# chown -R ldap:ldap /var/lib/ldap/
Запускаем:
# service slapd start Starting slapd: [ OK ]
Проверяем:
# service slapd status slapd (pid 27513) is running...
# ldapsearch -xW -D "cn=root,dc=kiev_dev" -b "dc=kiev_dev" uid=2969 Enter LDAP Password: # extended LDIF # # LDAPv3 # base <dc=kiev_dev> with scope subtree # filter: uid=2969 # requesting: ALL # # 2969, Users, kiev_dev dn: uid=2969,ou=Users,dc=kiev_dev ... gidNumber: 5000 ... objectClass: person objectClass: inetOrgPerson objectClass: posixAccount objectClass: organizationalPerson ... uid: 2969 uidNumber: 11984 # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
Готово.