* "Alexander S. Kharitonov" <a...@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.
--
С уважением Андрей Ржавсков,
rj...@rambler.ru