openldap-servers-2.3.35-alt0 Так стартует: # start-stop-daemon --start -N 0 --exec /usr/sbin/slapd --pidfile /var/lib/ldap/var/run/slapd.pid -- -u ldap -r /var/lib/ldap -h ldap://localhost/ А так нет: # service slapd start Adjusting environment for slapd: [ DONE ] Starting slapd service: [FAILED] # sh -x /etc/init.d/slapd start + WITHOUT_RC_COMPAT=1 + . /etc/init.d/functions ++ export PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ++ PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ++ '[' 0 = 0 ']' ++ LANG=POSIX ++ LANGUAGE=POSIX ++ LC_ALL=POSIX ++ '[' -z '' ']' ++ SourceIfNotEmpty /etc/sysconfig/init ++ local f ++ f=/etc/sysconfig/init ++ shift ++ '[' -s /etc/sysconfig/init ']' ++ . /etc/sysconfig/init +++ BOOTUP=color +++ RES_OFFSET=8 +++ LOGLEVEL=1 +++ PROMPT=yes ++ '[' -n color ']' ++ '[' -x /sbin/consoletype ']' +++ consoletype ++ '[' pty = serial ']' ++ '[' color = color ']' ++ . /etc/init.d/outformat +++ '[' -n xterm ']' +++ export TERM +++ : '{RES_OFFSET:=8}' +++ '[' -n 8 ']' +++ '[' 8 -gt 0 ']' +++ : 0 1 2 3 4 5 6 7 ++ '[' color '!=' verbose ']' ++ INITLOG_ARGS=-q ++ '[' -n 1 ']' ++ '[' 1 -ge 0 ']' ++ '[' -n 1 ']' + SourceIfNotEmpty /etc/sysconfig/network + local f + f=/etc/sysconfig/network + shift + '[' -s /etc/sysconfig/network ']' + . /etc/sysconfig/network ++ NETWORKING=yes ++ CONFMETHOD=etcnet ++ HOSTNAME=localhost.localdomain ++ DOMAINNAME=localdomain ++ RESOLV_MODS=yes + SourceIfNotEmpty /etc/sysconfig/ldap + local f + f=/etc/sysconfig/ldap + shift + '[' -s /etc/sysconfig/ldap ']' + . /etc/sysconfig/ldap ++ SLAPDURLLIST=ldap://localhost/ ++ SLAPD_OPTIONS= ++ SLURPD_OPTIONS='-t /' + DAEMON=/usr/sbin/slapd + DAEMONTEST=/usr/sbin/slaptest + ROOT=/var/lib/ldap + CONFIG=/etc/openldap/slapd.conf + LOCKFILE=/var/lock/subsys/slapd + PIDFILE=/var/lib/ldap/var/run/slapd.pid + RETVAL=0 + case "$1" in + adjust + action 'Adjusting environment for slapd:' /etc/chroot.d/ldap.all + local STRING + STRING='Adjusting environment for slapd:' + shift + echo -n 'Adjusting environment for slapd: ' Adjusting environment for slapd: + initlog -q -c /etc/chroot.d/ldap.all + local rc=0 + '[' 0 -eq 0 ']' + success 'Adjusting environment for slapd:' + '[' -z '' ']' + initlog -q -n /etc/init.d/slapd -s 'Adjusting environment for slapd:' -e 1 + echo_success + MOVE_TO_COL + '[' -n 80 ']' + local pos=72 + '[' 72 -le 0 ']' + tput -- hpa 72 + echo -n '[ ' [ + SETCOLOR_SUCCESS + echo bold + echo setaf 2 + tput -S + echo -n DONE DONE+ SETCOLOR_NORMAL + echo op + echo sgr0 + tput -S + echo -ne ' ]\r' + return 0 + return 0 + echo + return 0 + start + is_yes yes + '[' 1 = 0 ']' + case "$1" in + return 0 + start_daemon --pidfile /var/lib/ldap/var/run/slapd.pid --lockfile /var/lock/subsys/slapd -- /usr/sbin/slapd -u ldap -r /var/lib/ldap -h ldap://localhost/ '' + local ANNOUNCE BASENAME CMDNAME DISPNAME EXPECT FLAGS LOCKFILE MAKE_PIDFILE NICE PIDFILE STATUS SU WHICH + ANNOUNCE=1 + CMDNAME= + DISPNAME= + EXPECT= + LOCKFILE= + MAKE_PIDFILE= + NICE=0 + PIDFILE= + SU= + '[' --pidfile '!=' -pidfile -o --pidfile '!=' --pidfile ']' + case "$1" in + shift + PIDFILE=/var/lib/ldap/var/run/slapd.pid + shift + '[' --lockfile '!=' -lockfile -o --lockfile '!=' --lockfile ']' + case "$1" in + shift + LOCKFILE=/var/lock/subsys/slapd + shift + '[' -- '!=' - -o -- '!=' -- ']' + case "$1" in + shift + break + '[' -z /usr/sbin/slapd ']' ++ absolute /usr/sbin/slapd ++ local WHICH ++ '[' -n /usr/sbin/slapd ']' +++ type -p /usr/sbin/slapd ++ WHICH=/usr/sbin/slapd ++ '[' /usr/sbin/slapd '!=' usr/sbin/slapd ']' ++ echo /usr/sbin/slapd + WHICH=/usr/sbin/slapd + '[' -n '' ']' ++ basename /usr/sbin/slapd + BASENAME=slapd + shift + '[' -n '' -a -z /var/lib/ldap/var/run/slapd.pid ']' + '[' -n '' ']' + DISPNAME=slapd + ulimit -Sc 0 + export -n HOME TMP TMPDIR + FLAGS='--start -N 0' + '[' -z '' ']' + FLAGS='--start -N 0 --exec /usr/sbin/slapd' + '[' -z /var/lib/ldap/var/run/slapd.pid ']' + FLAGS='--start -N 0 --exec /usr/sbin/slapd --pidfile /var/lib/ldap/var/run/slapd.pid' + '[' -z '' ']' + '[' -z '' ']' + start-stop-daemon --start -N 0 --exec /usr/sbin/slapd --pidfile /var/lib/ldap/var/run/slapd.pid --test + '[' -z 1 ']' + msg_starting slapd + local a + a=slapd + shift + printf 'Starting %s service: ' slapd Starting slapd service: + '[' -z '' ']' + initlog -q -n slapd -c 'start-stop-daemon --start -N 0 --exec /usr/sbin/slapd --pidfile /var/lib/ldap/var/run/slapd.pid -- -u ldap -r /var/lib/ldap -h ldap://localhost/ ' + STATUS=1 + '[' 1 = 0 ']' + failure 'slapd startup' + local rc=1 + '[' -z '' ']' + initlog -q -n /etc/init.d/slapd -s 'slapd startup' -e 2 + echo_failure + MOVE_TO_COL + '[' -n 80 ']' + local pos=72 + '[' 72 -le 0 ']' + tput -- hpa 72 + echo -n '[' [+ SETCOLOR_FAILURE + echo bold + echo setaf 1 + tput -S + echo -n FAILED FAILED+ SETCOLOR_NORMAL + echo op + echo sgr0 + tput -S + echo -ne ']\r' + return 1 + return 1 + echo + return 1 + RETVAL=1 + return 1 + exit 1 Steps to Reproduce: 1.apt-get install openldap-servers 2.service slapd start 3.
система "чистая" -- контейнер OVZ причина -- не нравится "-u ldap". Юзер есть, с правами все ОК. Если вместо этого написать "-u root" -- тоже не стартует. А если убрать вовсе -- стартует. Далее: service slapd stop Service slapd is not running. [PASSED] [root@ldap sysconfig]# ps ax | grep slapd 5185 ? Ssl 0:00 /usr/sbin/slapd -h ldap://localhost/ ldaps:/// -r /var/lib/ldap опять что-то не то, но убивать легче, чем стартовать
To package maintainer.
Возможно уже исправлено в 2.3.37-alt1 или в 2.3.38-alt1. У себя в контейнере OVZ подобное поведение так и не смог воспроизвести.
к сожадению ничего не изменилось. 2.6.18-ovz-smp-alt13 openldap-2.3.39-alt1 openldap-servers-2.3.39-alt1 [root@gosa ~]# ps ax | grep slapd 22446 pts/2 S+ 0:00 grep slapd [root@gosa ~]# slapd -f /etc/openldap/slapd.conf -u ldap [root@gosa ~]# ps ax | grep slapd 22453 pts/2 S+ 0:00 grep slapd [root@gosa ~]# slapd -f /etc/openldap/slapd.conf -u root [root@gosa ~]# ps ax | grep slapd 22456 ? Ssl 0:00 slapd -f /etc/openldap/slapd.conf -u root 22459 pts/2 S+ 0:00 grep slapd
(In reply to comment #4) > к сожадению ничего не изменилось. 1) Что выдает команда 'id ldap' в этом контейнере? 2) Необходимо проверить владельца каталогов в /var/lib/ldap/ -- оно всё должно пренадлежать UID/GID ldap/ldap. 3) См. http://faq.altlinux.ru по ключевому слову ldap на предмет диагностики slapd.
1) id ldap uid=55(ldap) gid=55(ldap) группы=55(ldap) 2) по этому поводу была бага: https://bugzilla.altlinux.org/show_bug.cgi?id=12492 как все-таки правильно? в пакете права вообще: drwxr-x--- 2 root ldap 0 Oct 30 02:45 /var/lib/ldap
> 2) по этому поводу была бага: https://bugzilla.altlinux.org/show_bug.cgi?id=12492 > как все-таки правильно? в пакете права вообще: > drwxr-x--- 2 root ldap 0 Oct 30 02:45 /var/lib/ldap Гм, с такими правами нужно делать reopen #12492
(In reply to comment #6) > 1) id ldap > uid=55(ldap) gid=55(ldap) группы=55(ldap) Всё правильно. > 2) по этому поводу была бага: https://bugzilla.altlinux.org/show_bug.cgi?id=12492 > как все-таки правильно? в пакете права вообще: > drwxr-x--- 2 root ldap 0 Oct 30 02:45 /var/lib/ldap Читаем внимательнее. Я писал о _содержимом_ каталога /var/lib/ldap. Вот UID/GID содержимого и надо проверить на соответствие ldap:ldap.
ls -l /var/lib/ldap/ total 32 drwxrwx--T 3 root ldap 4096 Jan 14 14:12 bases drwxrwx--T 3 root ldap 4096 Jan 14 14:12 dblogs drwxrwxr-x 2 root ldap 4096 Jan 15 02:05 dev drwxr-xr-x 4 root ldap 4096 Jan 14 14:12 etc drwxr-x--- 2 root ldap 4096 Jan 14 14:12 lib lrwxrwxrwx 1 root root 3 Jan 14 14:10 lib64 -> lib drwxrwx--T 2 root ldap 4096 Oct 30 02:44 replica drwxr-xr-x 3 root root 4096 Jan 14 14:10 usr drwxr-xr-x 5 root root 4096 Oct 30 02:45 var НО в пакете точно такие же
(In reply to comment #9) Тогда остается только 3). --- FAQ --- # slapd -u ldap -r /var/lib/ldap -h 'ldap://localhost' -d 64 и смотреть на stdout. man slapd.conf на предмет loglevel (значение параметра -d) --- FAQ ---
(In reply to comment #7) > > 2) по этому поводу была бага: https://bugzilla.altlinux.org/show_bug.cgi?id=12492 > > как все-таки правильно? в пакете права вообще: > > drwxr-x--- 2 root ldap 0 Oct 30 02:45 /var/lib/ldap > > Гм, с такими правами нужно делать reopen #12492 А что не так с правами?
Действительно, с правами всё в порядке. Я просто увидел что нет sticky-бита на /var/lib/ldap, но он там и не нужен.
(In reply to comment #9) > drwxrwx--T 3 root ldap 4096 Jan 14 14:12 bases > drwxrwx--T 3 root ldap 4096 Jan 14 14:12 dblogs Совсем заработался. :( Посмотрите еще права на содержимое этих каталогов. Вот оно должно пренадлежать ldap:ldap. Ну и запуск slapd руками с параметром -d 64 тоже должен многое рассказать о том, почему оно не может нормально стартовать.
после запуска под рутом, содержимое каталогов принадлежит руту ессно. поменял владельца на ldap и скрипт заработал... вообщем можно закрывать снова видимо всем спасибо, извините за беспокойство
Ага, и после импортирования базы spalcat-ом от рута slapd тоже не может прочитать её. Вот может бы добавить в какой-нибудь из chroot-скриптов chown, чтобы перед стартом права на все базы давались юзеру ldap?