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

ldapadd работает, но ldapsearch нет (openldap)

Я использую только что установленный Debian 6 с openldap 2.4. У меня тоже есть CentOS с openldap 2.3. Я создаю файл .ldif из окна CentOS (рабочая конфигурация) и успешно добавляю все записи из ldif в openldap Debian. После этого я пытаюсь использовать

ldapsearch -xLLL

и получите ошибку

No such object (32)

команда

ldapsearch -xLLL -b dc=pgtk,dc=edu,dc=ru

тоже не работает. Я просто не могу понять, что случилось?

вот мой slapd.conf

loglevel 0

modulepath /usr/lib/ldap
moduleload back_bdb.la

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/samba.schema

database bdb
suffix "dc=pgtk,dc=edu,dc=ru"
directory /var/lib/ldap

rootdn "cn=root,dc=pgtk,dc=edu,dc=ru"
rootpw {SSHA}Fq0LHya+lD4356rE5B91snwP5390fDUg

index objectClass                       eq,pres
index ou,cn,sn,mail,givenname           eq,pres,sub,approx
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub
index entryCSN,entryUUID                eq
index sambaSID,sambaPrimaryGroupSID     eq
index sambaDomainName                   eq

access to attrs=userPassword
    by dn.base="uid=ldap,ou=Users,dc=pgtk,dc=edu,dc=ru" write
    by self write
    by anonymous auth
access to attrs=sambaLMPassword
    by dn.base="uid=ldap,ou=Users,dc=pgtk,dc=edu,dc=ru" write
    by self write
    by anonymous auth
access to attrs=sambaNTPassword
    by dn.base="uid=ldap,ou=Users,dc=pgtk,dc=edu,dc=ru" write
    by self write
    by anonymous auth
access to *
    by dn.base="uid=ldap,ou=Users,dc=pgtk,dc=edu,dc=ru" write
    by * read

и мой ldap.conf

BASE    dc=pgtk,dc=edu,dc=ru
URI     ldap://192.168.0.249

Итак, где я ошибался? С уважением, большое спасибо за потраченное время.

P.S.

  1. ldapsearch на Debian с -h и -b параметры могут успешно печатать содержимое ldap с сервера CentOS LDAP.

  2. Диспетчер учетных записей LDAP (LAM) в окне Debian показывает содержимое LDAP Debian.

  3. slapcat без каких-либо параметров в окне Debian выводит содержимое LDAP.

Я нашел решение! Это были права доступа. Должно быть глобальное правило доступа

access to * by * read

перед определением любой базы данных и прав доступа. Глупая ошибка, но я думал, что

access to *
    by dn.base="uid=ldap,ou=Users,dc=pgtk,dc=edu,dc=ru" write
    by * read

Достаточно для полного доступа на чтение всех объектов всем лицам. В openldap 2.3 на CentOS этого достаточно. Похоже, что в openldap 2.4 политика прав доступа немного отличается.

Еще раз спасибо за потраченное время!