* "Alexander S. Kharitonov" <askh@askh.ru> [Sun, 05 Jul 2009 21:48:35 +0400]:
> Привет!
>
> В http://wiki.debian.org/LDAP/PAM предлагается, чтобы настроить
> авторизацию используя LDAP, в частности написать в файле
> /etc/pam.d/common-account следующее:
>
> account required pam_unix.so
> account sufficient pam_succeed_if.so uid < 1000 quiet
> account [default=bad success=ok user_unknown=ignore] pam_ldap.so
> account required pam_permit.so
>
> Не совсем понятно, как это должно работать - ведь если пользователь
> отсутствует в /etc/passwd, то разве pam_unix.so не должен вернуть
> неудачу, соответственно общий результат (раз там required) разве не
> будет неудачей, независимо от того, есть ли пользователь в базе LDAP или
> нет?
>
> С уважением Александр
>
>
Если пользователь отсутствует в базе passwd, процесс входа в систему закончится на секции "auth".
Так как PAM-модуль pam_unix.so первым делом проверяет наличие пользователя в этой базе.
Но так как контролирующий флаг PAM-модуля pam_unix.so равен required, следующий в цепочке
будет выполнен PAM-модуль
pam_succeed_if.so uid < 1000 quiet - на нем все и закончится, так
флаг sufficient будет выполнен только тогда, когда pam_unix.so вернет PAM_SUCCESS.
Конечно, могу ошибаться, pam_succeed_if.so uid < 1000 трактуется как разрешать
авторизироваться пользователям чей uid меньше чем 1000. Обычно, пользователи в системе
принято присваивать uid как раз начиная с 1000.
--
С уважением Андрей Ржавсков,
rjaan@rambler.ru