On Wed, Jun 24, 2009 at 01:31:29PM +0500, Денис Черносов wrote: > 22 июня 2009 г. 21:48 пользователь Dmitry V. Levin (ldv@altlinux.org) написал: > > Тут написано, что если вы добавляете что-то в стек после sufficient, то > > есть ненулевая вероятность того, что это что-то не будет выполнено. Это > > утерждение верно, однако из него не следует, что необходимо что-то > > добавлять перед sufficient. > > Именно это и следует, если верить мануалу: > > >> If you use pam_ldap, pam_winbind, or any other authentication > >> services that make use of PAM's > >> sufficient keyword, model your configuration on the following order: > > Перевод: > Если вы используете pam_ldap, pam_winbind или любой другой сервис > аутентификации, который использует опцию sufficient, ваш конфиг будет > выглядеть следующим образом: > > >> ・・・ > >> auth required pam_mount.so <-- Поставили в самом начале!!! До sufficient. > >> auth sufficient pam_ldap.so use_first_pass > >> auth required pam_unix.so use_first_pass > >> ・・・ > > Т.е., получается, что pam_mount.so стоит первым, sufficient > pam_ldap.so - вторым и уже после них pam_unix.so (а в нашем случае > будет pam_tcb). Какой смысл выполнять pam_mount.so до аутентификации (pam_tcb.so/pam_ldap.so)? Зачем вообще pam_mount.so помещать в стек аутентификации? > >> >> auth [success=2 default=ignore] pam_tcb.so shadow fork prefix=$2a$ count=8 nullok > >> >> auth requisite pam_succeed_if.so uid >= 500 quiet > >> >> auth [success=1 default=ignore] pam_ldap.so use_first_pass > >> >> auth optional pam_mount.so > >> > > >> > Вы неправильно списали с pam_mount(8). Чтобы понять, в чём ошибка, > >> > придётся прочитать и понять pam.conf(5). > >> > >> Ошибки нет. Этот вариант работает. Мой вопрос касается скорее > >> эстетики, чем функциональности... > > > > В этом варианте есть семантическая ошибка. Попробуйте > > - залогиниться ldap-пользователем; > > - залогиниться несуществующим пользователем. > > Попробовал. Никаких сюрпризов. Все работает. Может конкретно пояснить, > в каком месте "семантическая ошибка"? Например, если pam_ldap.so в стеке auth вернул success, то какой модуль в стеке auth будет выполнен следующим? -- ldv