>pam - это хорошо. но без работающего nss-ldap ssh всеравно не пустит.
>в SysV для настройки резолвера libc используется /etc/nsswitch.conf. в BSD - не
>знаю. в любом случае "getent passwd vasek" должна выдавать строчку а'ля
>/etc/passwd для данного пользователя из LDAP. и только после этого -
>PAM.
Странно конечно. Я думал что nsswitch для тех приложений которые не умеют использольвать PAM. При старте системы, видимо когда загружается модуль PAM (или инициализируется), идет контрольный bind к ldap.Хорошо, я поставил из портов nss_ldap-1.250 и добавил ldap lookup в nsswitch.conf (надеюсь корректно):
passwd: compat
passwd_compat: ldap nis
Getent я не нашел, есть getpwnam. В ввиду неопытности взял perl:
#!/usr/bin/perl
($name,$pwcode,$uid,$gid,$quota,$comment,$gcos,$home,$logprog) = getpwnam("cn=vasek");
print ("User id is $uid\n");
print ("Password is $pwcode\n");
Результат нулевой. Юзеров не видит, в логах тоже не ругается, т.е. на понятно удалось мне заюзать механизм nsswitch или нет :-( Юзеров из файла passwd видит.
>>Вопрос в каком направлении копать ? Почему биндящий юзер из binddn прекрасно
>>биндится, делает поиск, находит и ....оппа. Может что с передачей пароля
>>не все гладко ?
>вряд-ли. скорее - косяк в схеме. домино для своего "стандартного" юзера может
>использовать нестандартную с точки зрения nss-ldap/pam-ldap схему и/или DITContRules. >как выглядит этот об'ект? ('ldapsearch -A ... (uid=vasek)' - в студию!)
Результат команды "ldapsearch -A -D cn="cn=Vasia Pupkin,o=ibajava,c=by" -w zalupa -h jbaw.eee.by "cn=vasek" :
###############################################################################
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: cn=vasek
# requesting: ALL
#
# Vasia Pupkin, IBAJava, BY
dn: CN=Vasia Pupkin,O=IBAJava,C=BY
cn:
mail:
originalmodtime:
objectclass:
mailsystem:
messagestorage:
encryptincomingmail:
dominocertificate:
roamcleansetting:
roamcleanper:
availablefordirsync:
checkpassword:
passwordchangeinterval:
passwordgraceperiod:
clienttype:
givenname:
sn:
uid:
maildomain:
mailserver:
mailfile:
roaminguser:
httppasswordchangedate:
netusername:
clntmachine:
clntpltfrm:
clntbld:
clntdate:
majver:
minver:
qmrver:
qmuver:
hotver:
fixpver:
flagsver:
userpassword:
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
###############################################################################
Мне кажется что кроме cn(dn) и userppassword никаких аттрибутов и не нужно. Кстати у Lotus Domino в логе тоже ошибка:
07/13/2006 01:02:31 PM LDAP Server: Warning: Invalid credentials specified on Bind request, DN is Vasia Pupkin,O=IBAJava,C=BY/
В общем теперь два тупика. Почему не включается nss_ldap и почему все же Invalid credentials :(