Bug 19617

Summary: при первом старте базы в chroot создаются неверно
Product: Branch 4.0 Reporter: Mike Lykov <combr>
Component: openldap-serversAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED WONTFIX QA Contact: Q.A. 4.0 <qa-4.0>
Severity: normal    
Priority: P3 CC: barabashka, erthad
Version: 4.0   
Hardware: x86_64   
OS: Linux   

Description Mike Lykov 2009-04-14 12:03:05 MSD
поставил openldap-server с нуля (в openvz контейнере)
с дефолтным конфигом он запустился.
далее я поменял base dn и directory на то, что мне необходимо в /etc/openldap/slapd-hdb-db01.conf
при рестарте в функции adjust вызываются скрипты из /etc/chroot.d/
в скрипте ldap.conf вызывается такое:
# create direcrory for each configured LDAP database
# install and adjust default BDB config file
# create transactions log directory for each configured LDAP database

1. директория создается, с конфигом DB_CONFIG, файлом alock и несколькими файлами ____db.00*
но из-за отстутствия файла id2entry,bdb slaptest выдает:
Checking slapd configuration hdb_db_open: db_open(/var/lib/ldap/bases/vep.ru/id2
entry.bdb) failed: No such file or directory (2)

если slaptest запустить с ключом -u, чтобы он проверил только конфиг, тогда при старте slapd говорит в лог:
Apr 14 10:39:44 localhost slapd[28480]: backend_startup_one: bi_db_open failed! (-1)
Apr 14 10:39:44 localhost slapd[28480]: slapd stopped.

я удалил все файлы кроме DB_CONFIG из каталога базы, чтобы запустить.

2. про файл alock он тоже ругается:
Apr 14 10:39:44 localhost slapd[28480]: hdb_db_open: alock package is unstable

3. файл transactions log создается с правами root:root хотя остальное все с правами ldap:ldap, из-за чего при следующей попытке старта происходит такое:

Apr 14 10:53:57 localhost slapd[15469]: bdb(dc=VEP,dc=RU): /var/lib/ldap/dblogs/vep.ru/log.0000000001: log file unreadable: Permission denied
Apr 14 10:53:57 localhost slapd[15469]: bdb(dc=VEP,dc=RU): PANIC: Permission denied
Apr 14 10:53:57 localhost slapd[15469]: bdb(dc=VEP,dc=RU): Invalid log file: log.0000000001: DB_RUNRECOVERY: Fatal error, run database recovery

после исправления прав сервер запустился и сам создал файлы id2entry, dn2id и ___db.00*

Вывод: надо исправить скрипты в chroot.d/ldap*
ИЛИ может вообще отказаться от chroot (в пользу openvz, которого сейчас все чаще используют).

это позволит не использовать лишний слой (HN/openvz/chroot) и не ввозить лишние процедуры (adjusting environment..)
Comment 1 barabashka 2009-04-14 17:50:26 MSD
(В ответ на комментарий №0)
А какой у вас slapd-hdb-db01.conf получился? Можно увидеть?
Comment 2 Mike Lykov 2009-04-17 21:13:26 MSD
примерно такой (acl я изменял позже добавляя dn.subtree, а то warning)

database hdb
suffix "dc=VEP,dc=RU"
rootdn "cn=Manager,dc=VEP,dc=RU"
rootpw {SSHA}TcJoxrCL7quRBV1GaQFhU60SOj1UQNIO
directory /var/lib/ldap/bases/vep.ru
index   objectClass,uidNumber,gidNumber                 eq
index   cn,sn,uid,displayName                           pres,sub,eq
index   memberUid,mail,givenname                        eq,subinitial
index   sambaSID,sambaPrimaryGroupSID,sambaDomainName   eq
access to dn.subtree="ou=Users,dc=VEP,dc=ru" attrs=userPassword,sambaLMPassword,
      by self write
      by anonymous auth
      by * none
access to dn.subtree="dc=VEP,dc=ru"
      by * read
Comment 3 Mike Lykov 2009-04-20 09:23:11 MSD
кстати, различает ли оно регистр ... dc=RU или dc=ru
(в конфиге было большими, а каталог назван маленькими)
Comment 4 Dmitry Lebkov 2009-04-20 10:07:57 MSD
(В ответ на комментарий №3)
> кстати, различает ли оно регистр ... dc=RU или dc=ru
> (в конфиге было большими, а каталог назван маленькими)

В DN регистр роли не играет. При создании каталогов для
баз скрипт, создающий каталоги, всё переводит в нижний
регистр.

Да, всё это давно исправлено в Сизифе, а вот для бранчей
у меня пока нет возможности собирать/тестировать :(
Comment 5 Michael Shigorin 2014-11-05 20:17:08 MSK
В 4.0/branch исправления не будут вноситься уже технически (заглушена очередь на сборку), поэтому прошу ошибки, актуальные для sisyphus/p7/t7, перевесить на текущие ветки или сизиф.