Привет всем!
Вот такая проблема, RH9 - настраиваю авторизацию через LDAP, настроил nss и pam, ввел записи в LDAP и всё бы замечательно, но getent passwd выдаёт только записи из локального passwd.
Если аккаунт заведён и в LDAP и локально в passwd, то авторизация проходит на ура и пароль проверяется из LDAPа, но если аккаунт есть только в LDAP, то
авторизация не проходит, ругается что финкция getpwnam не находит такого пользователя.
В чём может быть проблема, совсем не хочется вносить записи и в passwd и в LDAP, подскажите, плиииз?/etc/nsswitch.conf:
passwd: files ldap
shadow: files ldap
group: files ldap/etc/ldap.conf:
host 1.1.1.3
base dc=lukoil,dc=ru
rootbinddn cn=Manager,dc=domain,dc=ru
scope one
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_member_attribute gid
# pam_template_login_attribute uid
pam_password md5
ssl nonss_base_passwd ou=Users,dc=domain,dc=ru?one
nss_base_shadow ou=Users,dc=domain,dc=ru?one
nss_base_group ou=Groups,dc=domain,dc=ru?one
/etc/pam.d/system-auth:auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass
auth required /lib/security/$ISA/pam_deny.soaccount sufficient /lib/security/$ISA/pam_ldap.so
account sufficient /lib/security/$ISA/pam_unix.so
account [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore] /lib/security/$ISA/pam_ldap.sopassword required /lib/security/$ISA/pam_cracklib.so retry=3 type=
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/$ISA/pam_ldap.so use_authtok
password required /lib/security/$ISA/pam_deny.sosession required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
session optional /lib/security/$ISA/pam_ldap.so
>/etc/nsswitch.conf:>passwd: files ldap
>shadow: files ldap
>group: files ldap
Вот это означает, что необходимая информация сначало ищется в локльных файлах(как то /etc/passwd) и только потом в ldap.
Короче
# man nsswitch.conf
Дело не порядке следования, если первым сделать ldap ситуация не изменится, если совсем убрать files, то не будет авторизации совсем и getenv ничего не выдаёт и соответственно getpwnam всё равно не найдёт пользователя и значит система не даст его авторизовать, однако если пользователь есть в passwd(даже без пароля), то всё проёдёт замечательно.
>Дело не порядке следования, если первым сделать ldap ситуация не изменится, если
>совсем убрать files, то не будет авторизации совсем и getenv ничего
А ты попробуй в passwd один пароль для пользователя, а ldap другой и посмотри с каким оно тебя пустит...
>не выдаёт и соответственно getpwnam всё равно не найдёт пользователя и
>значит система не даст его авторизовать, однако если пользователь есть в
>passwd(даже без пароля), то всё проёдёт замечательно.
/etc/ldap.conf:host 1.1.1.3
base dc=lukoil,dc=ru
rootbinddn cn=Manager,dc=domain,dc=ruСорри почему base dc=lukoil,dc=ru, а за всем остальным ты его посылаешь в dc=domain,dc=ru?
У тебя сам ldap каталог как настроен?
>/etc/ldap.conf:
>
>host 1.1.1.3
>base dc=lukoil,dc=ru
>rootbinddn cn=Manager,dc=domain,dc=ru
>
>Сорри почему base dc=lukoil,dc=ru, а за всем остальным ты его посылаешь в
>dc=domain,dc=ru?
>
>У тебя сам ldap каталог как настроен?Присю прошения, опечатка :)
>host 1.1.1.3
>base dc=domain,dc=ru
>rootbinddn cn=Manager,dc=domain,dc=ru
Пробывал, это как раз вполне понятно, если есть пароль в passwd то с ним, если нет то с паролем из ЛДАП(это соответствует настройке pam)
народ неужели никто ничего не может сказать - невеерюю