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

OpenLDAP не запускается и не регистрирует, почему

Недавно потребовалось перезапустить OpenLDAP на одном из наших серверов. Когда я перезапускаю службу, командная строка просто ждет чего-то. Я никогда не получаю [ OK ]. Если я CTRL+C из этого, он говорит

...killed.
/etc/openldap/cacerts/company.crt is not readable by "ldap[WARNING]

Чтобы доказать свою точку зрения, я сделал /etc/openldap 777 рекурсивно. Я все еще получаю сообщение об ошибке.

Я ничего не вижу в /var/log меняется, чтобы дать мне обратную связь. Где мне нужно искать, чтобы это исправить?

Это старый сервер под управлением Fedora 8 (я знаю, виноват предыдущий айтишник).

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

Сначала попробуйте запустить slapd в режиме отладки:

slapd -u ldap -g ldap -d 65

Обратите внимание, что аргумент -d - это битовое поле, значения которого можно найти в slapd.conf страница руководства (ищите loglevel). 65 это trace + config, который обычно достаточно подробен для такого рода проблем. Это может показать или не показать вам что-нибудь полезное.

Если это не сработает, мы можем использовать strace (трассировщик системных вызовов), чтобы точно выяснить, что происходит. Бегать slapd как это:

strace -o /tmp/trace -f -s 1024 slapd -u ldap -g ldap -d 7

Когда он умрет, у вас будет файл /tmp/trace содержащий все системные вызовы из slapd. Для любопытных -f заставляет strace следовать за вилками (в данном случае это не обязательно, но это по умолчанию), и -s 1024 заставляет strace печатать до 1024 байтов строковых аргументов в журнале трассировки.

Теперь используйте grep искать ссылки на company.crt в этом файле. Теоретически вы найдете что-то похожее на это, если это проблема с разрешением:

open("/tmp/company.crt", O_RDONLY)      = -1 EACCES (Permission denied)

Или что-то вроде этого, если файл отсутствует:

open("/tmp/company.crt", O_RDONLY)      = -1 ENOENT (No such file or directory)

Успешное открытие выглядит так:

open("/tmp/company.crt", O_RDONLY)      = 3

Где это 3 - дескриптор файла, возвращаемый функцией open (и, вероятно, будет другим положительным целым числом).

Посмотрите, не выскочит ли что-нибудь очевидное. Дай мне знать, если это не поможет.

Вы не должны устанавливать / etc / openldap на 777. Разрешения необходимы, чтобы иногда все работало правильно. Я бы предложил вернуть его на 755.

Возможно, у вас неправильный пользователь и / или разрешение на cacerts

drwxr-xr-x 3 root root 4096 19 апреля 2007 cacerts /