Поддержка Консалтинг Обучение Jamf Pro Блог

Проблема с OpenLDAP в Mac OS X 10.5 Server

Кирилл Воронин 06.10.2010


Не заслуживающий особого внимания пост про устаревшее ПО. Просто подумалось, зачем писать его во внутри-конторском форуме; вдруг эта информация пригодится кому-то для починки своего сервера.


Для начала, рекламная пауза – переходите на Mac OS X 10.6 Server (вы сможете обновлять клиентов Mac OS X 10.6 c вашего сервера, удаленные пользователи смогут сами менять свои пароли через веб-интерфейс, wiki и iCal сервер будут лучше, NetRestore, Address Book Server).

Итак, Mac OS X 10.5 Server. При аварийном перезапуске сервера не стартует LDAP. Вы замечаете это молниеносно – пользователи не могут подключиться ни к одной службе, требующей аутентификации.

Ну-с, tail /var/log/system.log

Oct 6 09:17:17 admpr-xserve14 com.apple.launchd[1] (org.openldap.slapd[169]): Exited with exit code: 1

Oct 6 09:17:25 admpr-xserve14 com.apple.launchd[1] (org.openldap.slapd[204]): Exited with exit code: 1

Oct 6 09:17:25 admpr-xserve14 com.apple.launchd[1] (org.openldap.slapd): Throttling respawn: Will start in 2 seconds

Ага, не стартует slapd.
Почему он не стартует?
А ну-те-ка, tail -f /var/log/slapd.log

Oct 6 09:17:10 admpr-xserve14 slapd[169]: bdb(dc=admpr,dc=kremlin,dc=private): PANIC: Invalid argument
Oct 6 09:17:10 admpr-xserve14 slapd[169]: bdb(dc=admpr,dc=kremlin,dc=private): PANIC: fatal region error detected; run recovery
Oct 6 09:17:18: — last message repeated 37 times —
Oct 6 09:17:16 admpr-xserve14 slapd[169]: bdb_db_open: Database cannot be recovered, err -30978. Restore from backup!

Давайте-ка остановим запуск slapd – чего ему бедному стараться.

launchctl unload -w /System/Library/LaunchDaemons/org.openldap.slapd.plist

Посмотрим, что там, у нас в /var/db/openldap/openldap-data.
Эвона, куча Berkeley DB файлов, DB_CONFIG, какие-то файл alock.
Что это такое?
Можно было бы погуглить и найти что-то вроде alock File Keeps LDAP (slapd) from Starting Up.

Но вообще само название файла должно было подтолкнуть к
mv alock alock.Softwareproblemen

Запустим ldap

launchctl load -w /System/Library/LaunchDaemons/org.openldap.slapd.plist

Убедимся, что все работает
tail /var/log/slapd.log
ps aux | grep slapd
tail /var/log/system.log

Так, появились ли наши дорогие?
dscl /LDAPv3/127.0.0.1  list /Users

Ну и для очистки совести
/usr/libexec/chkpasswd vsurkov

/* Кстати, в 10.6 с такой проблемой не сталкивался ни разу (очевидно, потому что в 10.6 slapd 2.4.11, а в 10.5 slapd 2.3.27) */