(На основе файла TODO из пакета). Предлагаю вместо одного файла /etc/openldap/slapd.conf сделать: 1. /etc/openldap/slapd.conf - основной конфигурационный файл. 2. /etc/openldap/databases/ldb-*.conf - файлы, содержащие описание одной базы данных на один файл. При этом необходимо будет изменить файл /etc/chroot.d/ldap.conf в части переноса файлов /etc/openldap/databases/ldb-*.conf и поиск строки, начинающейся с directory, также и во всех /etc/openldap/databases/ldb-*.conf для создания каталогов, которые будут содержать базы данных: tar -pPc schema | tar -xp -C /var/lib/ldap/etc/ на tar -pPc schema databases | tar -xp -C /var/lib/ldap/etc/ и awk '/^directory/ {sub(/\//,"",$2);print $2}' /etc/openldap/slapd.conf \ | xargs install -d -o ldap -g ldap -m 0700 на awk '/^directory/ {sub(/\//,"",$2);print $2}' \ /etc/openldap/slapd.conf \ /etc/openldap/databases/ldb-*.conf \ | xargs install -d -o ldap -g ldap -m 0700 Также в файле /etc/openldap/slapd.conf в конце вместо примеров описания баз данных просто вписывать строки вида include /etc/openldap/databases/ldb-example.conf Тем самым можно более безболезненно обновлять настройки slapd и легче настраивать каждую отдельную базу (сам ошибочно правлю то в общих настройках, в описании базы).
это применимо к 2.3.21-alt1?
Это уже сделано, за отличиями от моего варианта: 1) настройки каждой базы лежат в том же каталоге, что и основной файл 2) названия начинаются с slapd По первому пункту хотелось бы перенести файлы баз данных в отдельный каталог, чтобы не перемешивать с другими файлами, более структурированно получится и если разрешён параметр вида 'include /etc/openldap/databases/*.conf' и обнаружить средствами awk этот каталог в slapd.conf, то не потребуется при появлении новой базы править slapd.conf, достаточно выложить файл в databases. По второму пункту - предложенный вариант названия файлов баз данных мне больше нравится собственного. В ldap.conf желательно строку /etc/openldap/*slapd*.conf превратить в /etc/openldap/slapd*.conf, тем самым зафиксировав префикс настроек.
(In reply to comment #2) > Это уже сделано, за отличиями от моего варианта: > 1) настройки каждой базы лежат в том же каталоге, что и основной файл > 2) названия начинаются с slapd > По первому пункту хотелось бы перенести файлы баз данных в отдельный каталог, > чтобы не перемешивать с другими файлами, более структурированно получится и > если разрешён параметр вида 'include /etc/openldap/databases/*.conf' и > обнаружить средствами awk этот каталог в slapd.conf, то не потребуется при > появлении новой базы править slapd.conf, достаточно выложить файл в databases. > По второму пункту - предложенный вариант названия файлов баз данных мне больше > нравится собственного. Я не готов заняться обеспечением поддержкт 'include /dir/*.conf' :( > В ldap.conf желательно строку /etc/openldap/*slapd*.conf превратить в > /etc/openldap/slapd*.conf, тем самым зафиксировав префикс настроек. Ок. PS. 1. Если не трудно - хотя бы изредко Enter нажимайте, пожалуйста. ;) 2. Необходимо указывать полный путь до файлов. ldap.conf есть как в /etc/openldap/, так и в /etc/chroot.d/
(In reply to comment #3) > (In reply to comment #2) > > Это уже сделано, за отличиями от моего варианта: > > 1) настройки каждой базы лежат в том же каталоге, что и основной файл > > 2) названия начинаются с slapd > > > По первому пункту хотелось бы перенести файлы баз данных в отдельный каталог, > > чтобы не перемешивать с другими файлами, более структурированно получится и > > если разрешён параметр вида 'include /etc/openldap/databases/*.conf' и > > обнаружить средствами awk этот каталог в slapd.conf, то не потребуется при > > появлении новой базы править slapd.conf, достаточно выложить файл в databases. > > По второму пункту - предложенный вариант названия файлов баз данных мне больше > > нравится собственного. > > Я не готов заняться обеспечением поддержкт 'include /dir/*.conf' :( Всё понял, из коробки не поддерживается. Жаль. А как насчёт того, чтобы перенести все определения баз данных в отдельный каталог, например, databases? Чтобы отделить мух от котлет. А заодно можно поставить дополнительный барьер 700 на каталог. Тогда файл /etc/chroot.d/ldap.conf получит изменения: 1) tar -pPc schema | tar -xp -C /var/lib/ldap/etc/ на tar -pPc schema databases | tar -xp -C /var/lib/ldap/etc/ 2) awk '/^directory/ {sub(/\//,"",$2);print $2}' /etc/openldap/*slapd*.conf \ на awk '/^directory/ {sub(/\//,"",$2);print $2}' /etc/openldap/databases/slapd*.conf \ 3) awk '/^directory/ {sub(/\//,"",$2);print $2}' /etc/openldap/*slapd*.conf | sed 's|ldap/bases|ldap/dblogs|' \ на awk '/^directory/ {sub(/\//,"",$2);print $2}' /etc/openldap/databases/slapd*.conf | sed 's|ldap/bases|ldap/dblogs|' \ > > В ldap.conf желательно строку /etc/openldap/*slapd*.conf превратить в > > /etc/openldap/slapd*.conf, тем самым зафиксировав префикс настроек. > > Ок. > > PS. > 1. Если не трудно - хотя бы изредко Enter нажимайте, пожалуйста. ;) > 2. Необходимо указывать полный путь до файлов. ldap.conf есть как в > /etc/openldap/, так и в /etc/chroot.d/ > Писал впервые из-под lynx, поэтому и не уследил за переносами. :) В следующий раз буду внимательнее.
To package maintainer.
Пока уже думать о поддержке конфигурационного каталога... Как минимум нужно убрать из update_conf изменением прав на файлы и каталоги в /var/lib/ldap, чтобы был толк от побержки cn=config...
Максимум, что cмогу сейчас - просто собрать новую версию. На большее меня просто не хватит - "завал" по работе. :(
Новой стабильной еще нет, а если скатываться на нестабильную, то уже на 2.4.7 :)
(In reply to comment #8) > а если скатываться на нестабильную Такое впечатление, что тебе не хватало счастья со стабильной последние годы... :] А не хочешь изобразить в Daedalus на основе текущей сборки, что бы хотел видеть?
Хочу, но все как-то руки не доходят... Мне в целом линейка 2.4.х очень нравится, особенно N-way multimastering :)
apparently wontfix