Изменить BaseDN в OpenLDAP
Я пытался переименовать мой OpenLDAP ' s baseDN
from:
ДК=АВС в,dc=com и
в:
dc=xyz, dc=edu
Я изменил некоторые файлы conf:
/ etc/ldap / slapd.d / cn=config / olcDatabase={1}hdb.формат ldif
/etc/ldapscripts / ldapscripts.conf
и конфигурация phpLDAPadmin:
- config.в PHP
к новому корневому dn
но после того как я перезапустил файла slapd и lighttpd services, хотя я мог войти в интерфейс администратора phpLDAPAdmin (admin binddn), но я ничего не смог сделать.
Я также попытался запустить некоторые командные строки LDAP, но это не сработало.
Что еще я должен делать? Или что-то не так с моим методом?
2 ответов
хорошо, я решил это сам. Вот как я перенес текущую базу данных LDAP в новый домен:
- экспорт старой базы данных LDAP в файл ldif.
- удалить старую databaes
- создайте новую базу данных LDAP с новым доменным именем
- измените экспортированный файл ldif выше, чтобы соответствовать новому домену (корневой dn)
- импортировать измененный файл ldif в новую базу данных
Предположим, у меня есть новый домен имя, dc=мой, dc=новый, dc=ldap, dc=домен, и я хочу переместить все существующие данные LDAP в новый.
я сделал следующие шаги
-
резервное копирование старой базы данных LDAP
# slapcat -v -l old_ldap.ldif
-
остановите сервер OpenLDAP
# service slapd stop
-
удалить старую базу данных LDAP
# cd /var/lib/ldap # rm -rf *
-
убедитесь, что LDAP не бег!--17-->
# nano /var/lib/ldap/DB_CONFIG
Примечание: добавить следующие строки и сохраните
#DB_CONFIG set_cachesize 0 150000000 1 set_lg_regionmax 262144 set_lg_bsize 2097152 set_flags DB_LOG_AUTOREMOVE
-
измените текущие настройки LDAP в следующих файлах
-
/etc/ldapscripts/ldapscripts.conf
... SERVER="ldap://localhost" BINDDN="cn=admin,dc=my,dc=new,dc=ldap,dc=domain" BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd" ...
-
/etc/ldap/slapd.d/cn=config/olcDatabase\={1}hdb.ldif
... olcSuffix: dc=my,dc=new,dc=ldap,dc=domain olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=my,dc=new,dc=ldap,dc=domain" write by * none olcAccess: {2}to * by self write by dn="cn=admin,dc=my,dc=new,dc=ldap,dc=domain" write by * read olcRootDN: cn=admin,dc=my,dc=new,dc=ldap,dc=domain olcRootPW: <new administrator password> ...
-
-
подготовьте новую структуру каталогов LDAP, data,
new_ldap.ldif
(или изменитьold_ldap.ldif
С Новым dn)# Root dn: dc=my,dc=new,dc=ldap,dc=domain description: New LDAP BaseDN dc: parent o: parent.my.new.ldap.domain objectClass: top objectClass: dcObject objectClass: organization structuralObjectClass: organization # administrator dn: cn=admin,dc=my,dc=new,dc=ldap,dc=domain objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword: <new administrator password> structuralObjectClass: organizationalRole # Subtree for Users dn: ou=Users,dc=my,dc=new,dc=ldap,dc=domain ou: Users description: Parent Ldap Users objectClass: organizationalUnit objectClass: top structuralObjectClass: organizationalUnit # Subtree for Groups dn: ou=Groups,dc=my,dc=new,dc=ldap,dc=domain ou: Groups description: Parent LDAP Groups objectClass: organizationalUnit objectClass: top structuralObjectClass: organizationalUnit ...
-
Проверьте новый ldif
# slapadd -b "dc=my,dc=new,dc=ldap,dc=domain" -v -u -l new_ldap.ldif
Примечание: the
-u
означает выполнение команды в тестовом режиме
если все в порядке, вывод будет выглядеть примерно так:
added: "dc=my,dc=new,dc=ldap,dc=domain"
added: "cn=admin,dc=my,dc=new,dc=ldap,dc=domain"
added: "ou=Users,dc=my,dc=new,dc=ldap,dc=domain"
added: "ou=Groups,dc=my,dc=new,dc=ldap,dc=domain"
_#################### 100.00% eta none elapsed none fast!
-
добавить новые данные LDAP на сервер
# slapadd -b "dc=my,dc=new,dc=ldap,dc=domain" -v -l new_ldap.ldif
вы можете следить за обновлениями в моем блоге об этой проблеме: http://iambusychangingtheworld.blogspot.com/2013/10/ldap-create-new-ldap-directory.html
очень полезное руководство! Для справки, я обнаружил, что: После изменения пункта 5b тест (как описано в пункте 7) сообщит о сбое значения crc32 (контрольная сумма находится в строке 2 того же файла);
изменить 06/2/2018: Согласно предложению PF4Public, вы можете удалить эти строки в целом.
в любом другом случае: И вам придется создать новый crc32 (я использую Debian Jessy, ваш путь может быть другим)
быстро маршрут:
tail -n +3 /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{1\}mdb.ldif
и вставка результата внутри онлайн-калькулятора crc32. Вычисленное значение crc32 заменяет старое значение, расположенное в строке 2 mdb.формат ldif.
медленный / тщательный маршрут описан здесь: https://gist.github.com/Shaltz/1d65a07a0901a36fb7f1
после добавления new_ldap.ldif убедитесь, что пользователь openldap имеет права на созданную базу данных.
chown -R openldap:openldap /var/lib/ldap