OpenLDAP: OLC (cn=config) — добавление новой базы

Автор: | 08/22/2014
 

ldap-logoСмотрим настройки текущих баз:

# cat /etc/openldap/slapd.d/cn=config/olcDatabase={9}bdb.ldif
dn: olcDatabase={9}bdb
objectClass: olcBdbConfig
olcDatabase: {9}bdb
olcDbDirectory: /var/lib/ldap/testdb
olcSuffix: dc=testdb
olcRootDN: cn=root,dc=testdb
olcRootPW:: e01ENX1LbGNTZEVjQWZMS2dOTzVzR1pYODNRPT0=
structuralObjectClass: olcBdbConfig
entryUUID: 20d09580-3d60-1033-8a86-6b84c9dbc234
creatorsName: cn=root,cn=config
createTimestamp: 20140311115756Z
entryCSN: 20140311115756.393869Z#000000#000#000000
modifiersName: cn=root,cn=config
modifyTimestamp: 20140311115756Z

Создаём пароль (и записываем его в base64):

# slappasswd -s kiev_prod -h {MD5} | base64
e01ENX1BVFdUU3FIaVlYQ0VKdmVQVHgwUDFnPT0K

Создаём директорию для базы:

# mkdir /var/lib/ldap/kiev_prod
# chown ldap:ldap /var/lib/ldap/kiev_prod

Создаём новый ldif-файл:

dn: olcDatabase=bdb,cn=config
objectClass: olcBdbConfig
olcDatabase: bdb
olcDbDirectory: /var/db/ldap/kiev_prod
olcSuffix: dc=kiev_prod
olcRootDN: cn=root,dc=kiev_prod

Обратите внимание — мы не указываем «индекс» базы — в таком случае OpenLDAP сам назначит ей номер (следующий, после уже существующего).

Строку с паролем добавим позже.

Добавляем:

# ldapadd -x -D "cn=root,cn=config" -W -f newdb.ldif
Enter LDAP Password:
adding new entry "olcDatabase=bdb,cn=config"

Проверяем:

# cat /etc/openldap/slapd.d/cn=config/olcDatabase={7}bdb.ldif
dn: olcDatabase={7}bdb
objectClass: olcBdbConfig
olcDatabase: {7}bdb
olcDbDirectory: /var/lib/ldap/kiev_prod
olcSuffix: dc=kiev_prod
olcRootDN: cn=root,dc=kiev_prod
structuralObjectClass: olcBdbConfig
entryUUID: d3c318d2-bcc4-1033-87eb-75eb41a0e393
creatorsName: cn=root,cn=config
createTimestamp: 20140820144843Z
entryCSN: 20140820144843.963373Z#000000#000#000000
modifiersName: cn=root,cn=config
modifyTimestamp: 20140820144843Z

База добавлена.

Отредактируем её, и добавим пароль:

olcRootDN: cn=root,dc=kiev_prod
olcRootPW:: e01ENX1BVFdUU3FIaVlYQ0VKdmVQVHgwUDFnPT0K

Перезапускаем slapd:

# service slapd restart
Stopping slapd: [ OK ]
Starting slapd: [ OK ]

Проверяем:

# ldapsearch -x -D "cn=root,dc=kiev_prod" -W
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# search result
search: 2
result: 32 No such object

# numResponses: 1

Готово.

Ссылки по теме

http://howtounix.info

http://pro-ldap.ru