[Comm] "pam_mount password:" - неаккуратненько как-то
Dmitry V. Levin
ldv на altlinux.org
Пн Июн 22 20:48:24 MSD 2009
On Mon, Jun 22, 2009 at 11:41:36AM +0500, Денис Черносов wrote:
> 20 июня 2009 г. 4:38 пользователь Dmitry V. Levin (ldv на altlinux.org) написал:
> > On Fri, Jun 19, 2009 at 11:46:36AM +0500, Денис Черносов wrote:
> >> День добрый всем!
> >>
> >> auth optional pam_mount.so
> >> auth sufficient pam_tcb.so shadow fork prefix=$2a$ count=8
> >> nullok use_first_pass
> >> auth requisite pam_succeed_if.so uid >= 500 quiet
> >> auth required pam_ldap.so use_first_pass
> >>
> >> В пятом бранче pam_mount, будучи поставленный первым в auth (а
> >> по-другому его заставить работать у меня не получилось), меняет строку
> >> запроса пароля и вместо просто "password:" пишет "pam_mount
> >> password:".
> >
> > Не надо помещать pam_mount.so в стеке аутентификации до pam_tcb.so,
> > это не правильно по сути.
>
> Согласен, мне это тоже кажется "неправильным по сути". Но в примере
> явно указано, что при аутентификации через ldap или winbind нужно
> модуль pam_mount ставить впереди...
> ----------------------
> #man pam_mount
> ....
> When "sufficient" is used in the second column, you must make
> sure that pam_mount is added
> before this entry. Otherwise pam_mount will not get executed
> should a previous PAM module suc‐
> ceed. Also be aware of the "include" statements. These make PAM
> look into the specified file.
> If there is a "sufficient" statement, then the pam_mount
> entry must either be in the included
> file before the "sufficient" statement or before the "include" statement.
>
> 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:
>
> ・・・
> account sufficient pam_ldap.so
> auth required pam_mount.so
> auth sufficient pam_ldap.so use_first_pass
> auth required pam_unix.so use_first_pass
> session optional pam_mount.so
> ・・・
>
> This allows for:
>
> 1. pam_mount, as the first "auth" module, will prompt for a
> password and export it to the PAM
> system.
>
> 2. pam_ldap will use the password from the PAM system to try
> and authenticate the user. If
> this succedes, the user will be authenticated. If it
> fails, pam_unix will try to authenti‐
> cate.
> ....
> ------------------------------
Тут написано, что если вы добавляете что-то в стек после sufficient, то
есть ненулевая вероятность того, что это что-то не будет выполнено. Это
утерждение верно, однако из него не следует, что необходимо что-то
добавлять перед sufficient.
> А второй вариант (см. ниже) указывается именно для таких как мы с вами :)
> -----------------------------
> ...
> Alternatively, the following is possible (thanks to Andrew
> Morgan for the hint!):
>
> auth [success=2 default=ignore] pam_unix2.so
> auth [success=1 default=ignore] pam_ldap.so use_first_pass
> auth requisite pam_deny.so
> auth optional pam_mount.so
>
> It may seem odd, but the first three lines will make it so
> that at least one of pam_unix2 or
> pam_ldap has to succeed. As you can see, pam_mount will be run
> after successful authentifica‐
> tion with these subsystems.
> ...
> -----------------------------
>
> Причем, оба этих варианта - рабочие.
Да, конечно.
> А вот если попытаться без затей
> поставить pam_mount после остальных модулей, то пароль запрашивается
> два раза. Причем даже при перезапуске демонов (веселуха service
> network restart - введи пароль...). И это не решается использованием
> опции use_first_pass.
Вы хотите сказать, что pam_mount не поддерживает use_first_pass?
> Единственное, что я не пробовал - это ставить строчку с account
> впереди строчек с auth. Потому что, насколько я понимаю, от этого
> ничего не изменится...
Конечно.
> >> 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.conf(5) желательно изучить для того, чтобы
понимать, как работает та или иная конструкция.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 197 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/community/attachments/20090622/9adac1de/attachment-0001.bin>
Подробная информация о списке рассылки community