Когда я изменяю индекс в slapd.conf, тот же запрос LDAP не возвращает данные

Вы могли бы попробовать SmoothWall - (раскрытие предвзятости: Я работаю на SmoothWall). Вы, конечно, найдете сеть, фильтрующую стоящий наличия, и пока это не будет говорить с smartfilter обязательно, я уверен, что Вы сможете согласовать конкурентоспособное обновление.

Поддержка также обрабатывается "реальными" агентами поддержки, не сценарием-botherers :)

2
задан 5 October 2010 в 20:21
3 ответа

Каждый раз, когда Вы добавляете или удаляете индекс, необходимо работать slapindex и не забудьте сохранять правильные полномочия для файлов базы данных. Например, на debian с OpenLDAP Вы имеете к:

/etc/init.d/slapd stop
slapindex
chown openldap:openldap /var/lib/ldap/*
/etc/init.d/slapd start
2
ответ дан 3 December 2019 в 12:16
  • 1
    Хорошо, я воссоздаю пустой каталог и использую резервное копирование на этот раз, Спасибо! –  Sylario 7 October 2010 в 16:50

Я закончил тем, что делал это

sudo /etc/init.d/slapd stop

sudo -u insert-your-openldap-server-user-here -c slapindex -v

sudo /etc/init.d/slapd start

Таким образом на моем debian поле пользователь openldap, который заставляет команду быть похожей

sudo -u openldap slapindex -v -d 1

0
ответ дан 3 December 2019 в 12:16

Хотя исходный ответ автора решен, вот решение для пользователей OpenLDAP 2.4. OpenLDAP 2.4 больше не использует простые файлы конфигурации, но все должно быть изменено с помощью ldapmodify .

Сначала вам нужно идентифицировать вашу базу данных, о которой идет речь.

[root@ldap-server ~]# cd /etc/openldap/slapd.d/cn=config
[root@ldap-server cn=config]# ls
cn=schema       olcDatabase={0}config.ldif     olcDatabase={1}monitor.ldif
cn=schema.ldif  olcDatabase={-1}frontend.ldif  olcDatabase={2}hdb.ldif

База данных здесь olcDatabase = {2} hdb.ldif и проверка индексов с помощью grep дает:

[root@ldap-server cn=config]# grep olcDbIndex olcDatabase\=\{2\}hdb.ldif
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub

Если мне нужно добавить, например, индекс плаката l , я бы подготовил следующий ldif-файл:

[root@ldap-server ~]# cat ldap-hdb-tuning.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: ou,description,l eq,pres,sub

Последним шагом будет запуск файла с ldapmodify .

[root@ldap-server ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -D cn=config -f ldap-hdb-tuning.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"

Если вы затем заглянете в / var / lib / ldap , вы увидите новый index.file с именем l.bdb , который должен увеличиваться, если вы добавляете новые записи. Обратите внимание, что я еще не выяснил, выполняется ли создание индекса на лету для существующих записей (в настоящее время я делаю это прямо сейчас), но я адаптирую этот ответ, когда узнаю больше.

0
ответ дан 3 December 2019 в 12:16

Теги

Похожие вопросы