Lev Serebryakov (blacklion) wrote in ru_root,
Lev Serebryakov
blacklion
ru_root

Category:

Несоответствие работы pam_ldap и nss_ldap ожидаемому: разъясните, пожалуйста, как оно должно быть?

FreeBSD 6.x и 7.x. Пытаюсь настроить базу пользователей и групп в LDAP. На всех машинах, включая ту, где запущен slapd. Читал сотню HOW-TO, статью на www.freebsd.org, man pam.d nsswitch.conf pam_ldap pam_nss. Всё читал. А поведение системы расходится с наблюдаемым, причём наблюдаемое мне не нравится. В связи с этим вопросы к опытным товарищам, настраивавшим такое:

  1. Почему все HOW-TO и статьи предлагают вставлять auth sufficient pam_ldap до последнего auth required pam_unix? Мне кажется, что логично было бы наоборот — иначе логин root'ом (или su) подвисает при недоступном LDAP-сервере.
  2. Тот же вопрос, что №1, но про account. Опять же, почему-то все пишут, что надо ставить pam_unix последним.
  3. Работает ли во FreeBSD опции ignore_authinfo_unavail ignore_unknown_user у pam_ldap в позиции account? Ситуация: неправильно прописал пароль в ldap.secret, и вышел из su. Понял, что ошибся. Сказал su и меня… не пустили! В лог посыпалось, что у su что-то не срослось с pam. Ну да, до сервера он не достучался. Но ведь специально стоят опции! То, что он долго думал — неприятно, но чёрт с ним (см. пункт №1). Но ведь он не пустил из-за недоступности информации об аккаунте. Хотя pam_ldap должен был быть проигнорирован. NB: я говорил su из-под локального пользователя, так что и его принадлежность к группе wheel можно было проверить локально.
  4. Почему всё так тупит, когда нет LDAP-сервера? Включая сам запуск LDAP-сервера. Ну да, нужно почитать про пользователя ldap (а перед этим — про пользователя named при запуске bind'а). Но в /etc/nsswitch.conf первым пунктом стоит files а, судя по man'у, поиск по-умолчанию заканчивается на первом успехе («The default criteria is to return on “success”»). Т.е. оно должно найти named или там ldap в /etc/master.passwd и /etc/group и бодро побежать дальше. Не бежит!

Как же правильно всё настроить, что бы при отсутствии LDAP-сервера, пока мы не трогаем не-локальных пользователей, всё работало (а при загрузке мы их и не трогаем, зато трогаем локальных ppp, ldap, named, www) так же быстро и безошибочно, как без LDAP в конфигах вообще?

Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 6 comments