Назад | Перейти на главную страницу

Как узнать, о каком беркли db идет речь в openldap?

У меня на RHEL 5.3 установлено два БД Berkeley. Теперь я смущен тем, что openldap называет своим бэкэндом.

Ниже приводится файл slapd.conf:

include /usr/local/etc/openldap2-4-30/schema/core.schema
include /usr/local/etc/openldap2-4-30/schema/cosine.schema
include /usr/local/etc/openldap2-4-30/schema/inetorgperson.schema

**# Define global ACLs to disable default read access.**

**# Do not enable referrals until AFTER you have a working directory**
**# service AND an understanding of referrals.**                  

pidfile /usr/local/var/openldap2-4-30/run/slapd.pid
argsfile    /usr/local/var/openldap2-4-30/run/slapd.args

**# rootdn can always read and write EVERYTHING!**
access to *
    by self write
    by * read

#########################################
**# uniquely identifies this server**
#########################################
serverID 1

#######################################################################
**# BDB database definitions**
#######################################################################
database bdb
suffix "dc=COMPANY,dc=CP"
rootdn "cn=Manager,dc=COMPANY,dc=CP"

**# Cleartext passwords, especially for the rootdn, should**
**# be avoid. See slappasswd(8) and slapd.conf(5) for details.**
**# Use of strong authentication encouraged.**
rootpw secret   

**# The database directory MUST exist prior to running slapd AND**
**# should only be accessible by the slapd and slap tools.**
**# Mode 700 recommended.**
directory   /usr/local/var/openldap2-4-30/Master1/openldap-data

Пожалуйста, расскажите, как я могу узнать, из каких установленных БД Berkeley openldap использует в качестве бэкэнда?

Примечание: этот вопрос связан с

slapd не работает

Благодарю вас.

Похоже, у вас должен быть только 1 корень, каждый новый корень содержит

database        bdb
suffix  "dc=limepepper,dc=org"
directory       /var/lib/ldap/mycompany.org

тип блока.

Вы инициализировали новый корень?

Я думаю, вам нужно создать новый корневой файл ldif и импортировать эти записи в работающий сервер LDAP следующим образом;

# cat /home/myuser/mynewroot.ldif
dn: dc=COMPANY,dc=CP
objectclass: dcObject
objectclass: organization
o: COMPANY CP
dc: COMPANY

dn: cn=Manager,dc=COMPANY,dc=CP
objectclass: organizationalRole
cn: Manager

а затем импортируйте это на пустой сервер LDAP следующим образом;

# ldapadd -x -D "cn=Manager,dc=COMPANY,dc=CP" -W -f   /home/myuser/mynewroot.ldif

Здесь есть учебник по установке новых корней;
http://www.howtoforge.com/linux_openldap_setup_server_client

и еще несколько подробностей о том, что вам нужно в минимальном корне здесь;
http://www.openldap.org/doc/admin22/dbtools.html

Похоже, вы смешивали несколько источников (как информацию, так и программное обеспечение ...), пока боролись с OpenLDAP. Моя рекомендация: начинать с нуля.

Для начала, если вы yum install openldap-serversвам совершенно НЕ нужно скачивать библиотеки BDB из сети, все настроено для вас.

Во-вторых, "стандартный" путь для файлов данных OpenLDAP: /var/lib/ldap. Обычно вам это не нужно, вы создаете LDIF файлы с помощью текстового редактора по вашему выбору, а затем используйте slapadd команда для создания этих деревьев LDAP. После этого используйте стандартные утилиты LDAP, такие как Luma, gq, ldapsearch/ldapadd/ldapremove или привязки LDAP на вашем любимом языке программирования.

Вот отличная онлайн-книга о (Open) LDAP, не пугайтесь названия.

Как насчет:

$ ldd <path-to-slapd> | grep libdb

?

База данных, которую использует OpenLDAP, находится по адресу /usr/local/var/openldap2-4-30/Master1/openldap-data.