[Comm] OpenLDAP - возможно баг?

Alex Moskalenko =?iso-8859-1?q?mav_=CE=C1_elserv=2Emsk=2Esu?=
Чт Июл 7 09:27:35 MSD 2005


Здравствуйте!

Дано:
[mav на tmpsrv mav]$ cat /etc/altlinux-release
ALT Linux Master 2.4 (Citron)
[mav на tmpsrv mav]$ rpm -qa | grep openldap
openldap-doc-2.1.30-alt3
openldap-2.1.30-alt3
openldap-clients-2.1.30-alt3
openldap-servers-2.1.30-alt3

В LDAP лежат учетные записи пользователей. Настроен nss, samba, postfix. 
Понадобилось прикрутить cyrus-imapd. Попытался сделать авторизацию через LDAP 
(imapd -> saslauthd -> ldap). И наткнулся на интересную вещь - saslauthd не 
может авторизоваться в LDAP. При этом в логах следующее

Jul  6 23:22:57 testmail saslauthd[13363]: user ldap_search_st() failed: Size 
limit exceeded
Jul  6 23:22:57 testmail saslauthd[13363]: Retrying authentication
Jul  6 23:22:57 testmail saslauthd[13363]: user ldap_search_st() failed: Size 
limit exceeded
Jul  6 23:22:57 testmail saslauthd[13363]: do_auth         : auth failure: 
[user=username] [service=imap] [realm=] [mech=ldap] [reason=Unknown]

То есть получаем ldap error 4.

При более подробных раскопках обнаружил следующее

[mav на tmpsrv mav]$ ldapsearch -x -LL -b ou=Accounts,dc=example,dc=ru 
"(&(uid=username)(objectClass=inetOrgPerson))" dn
version: 1

dn: uid=username,ou=Users,ou=Accounts,dc=example,dc=ru

[mav на tmpsrv mav]$ ldapsearch -z 1 -x -LL -b ou=Accounts,dc=example,dc=ru 
"(&(uid=username)(objectClass=inetOrgPerson))" dn
version: 1

dn: uid=username,ou=Users,ou=Accounts,dc=example,dc=ru

Size limit exceeded (4)
[mav на tmpsrv mav]$ ldapsearch -z 2 -x -LL -b ou=Accounts,dc=example,dc=ru 
"(&(uid=moskalenko)(objectClass=inetOrgPerson))" dn
version: 1

dn: uid=moskalenko,ou=Users,ou=Accounts,dc=example,dc=ru

То есть имеем одну запись в каталоге, удовлетворяющую условию поиска, но при  
поиске ее с -z 1 (насколько я понял, saslauthd делает именно так) получаем ту 
же error 4. Соответственно вопросы:

1) Из-за чего такое может быть? Не баг ли это в openLDAP? Ведь запись одна, и 
запросили одну - почему тогда size limit exeeded?

2) Как в свете всего вышеперечисленного получить рабочий saslauthd либо 
аутентифицироваться в cyrus-imapd из LDAP минуя saslauthd?

3) Если это все-таки баг - не вылезет ли это где-нибудь еще, кроме saslauthd?

-- 
WBR, Alex Moskalenko



Подробная информация о списке рассылки community