LINUX.ORG.RU

Про PAM и NSS тихо сам с собою


0

0

Привет!

Я тут немного сам с собой попереписывался на rsdn ... может, хотя на LORe кто-нибудь в теме?

== I>Хочется, чтобы приложение, использующее PAM, I>давало возможность выбирать пользователей из некоторого I>списка.

На текущий момент мне кажется, что правильный ответ (причем именно для просмотра списка пользователей) это NSS, а не PAM.

Так что приложение должно безо всяких затей использовать getpwent для формирования списка пользователей, а затем авторизовывать выбранного с помощью PAM.

Верно ли вышеизложенное? ==

anonymous

>Так что приложение должно безо всяких затей использовать getpwent для формирования списка пользователей, а затем авторизовывать выбранного с помощью PAM.

помоемому ты просто продублируеш ф-и/функциональность PAM

cvv ★★★★★
()
Ответ на: комментарий от cvv

Пользователь должен увидеть список известных системе имен, выбрать среди них свое, ввести пароль и начать работу с приложением.

Как мне кажется, PAM не позволяет увидеть список пользователей ни в каком смысле, и вся надежда на NSS (или на список локальных пользователей), так что я не совсем понимаю, какую функциональность PAM я могу продублировать.

Расскажи более подробно, пожалуйста.

anonymous
()
Ответ на: комментарий от anonymous

>Пользователь должен увидеть список известных системе имен, выбрать среди них свое, ввести пароль и начать работу с приложением.

Не обратил внимание.

>Как мне кажется, PAM не позволяет увидеть список пользователей ни в каком смысле

пам позволяет сделать всё что позволяют сделать подключенные к нему модули без которых он в принципе не функционален

>вся надежда на NSS (или на список локальных пользователей)

так оно и есь.

а вообще посмотри как сделано в kdm. Может чё оттудова сопрёш. Он обеспечивает именно такую функциональность как тебе надо но с красивой графической мордой

cvv ★★★★★
()
Ответ на: комментарий от cvv

И ещё кажись твою фишку частично или полностью целесообразно оформить в виде памового модуля.

cvv ★★★★★
()
Ответ на: комментарий от cvv

Дело в то, что API PAM не имеет (либо я плохо смотрел) функций, позволяющих увидеть список пользователей. Отсюда и мой вопрос.

anonymous
()
Ответ на: комментарий от anonymous

>Дело в то, что API PAM не имеет (либо я плохо смотрел) функций, позволяющих увидеть список пользователей.

Так оно и есть. Pam для етого не предназначен. Ты например можешь в пам-модуле при помощи нсс получить список юзверей далее прелагаеш юзверю выбрать себя из списка и выполняеш аутентификацию выбранного юзверя.

cvv ★★★★★
()
Ответ на: комментарий от cvv

Это не очень вписывается в концепцию использования PAM (точнее, в мое представление о ней).

PAMовские модули предоставляют возможность устраивать callbackи для встраивания в интерфейс любого приложения, таким образом наша программка сможет использовать еще не созданный сейчас PAM, даже если его автор не будет ничего знать о нашей программке.

Ты предлагаешь писателю прикладной программы написать PAM модуль лично для себя (какой именно, интересно?), превратив изначальную идею о модульности в полную фикцию.

Я что-то не понял в твоем предложении или, скажем, по обозначенной тобой дороге уже пошло достаточно много народу, чтобы не принимать букву P в названии PAM всерьез?

anonymous
()
Ответ на: комментарий от anonymous

Ты когданибуть писал памовые модули.?? Нет?? Я тоже но изучил несколько примеров и порядком поковырял существующие модули.

В начале большинство модулей пишет login: и ждёт ответа далее пишет password: и снова ждёт ответа. Осовное отличие между модулями состоит в том что они потом делают с полученой инфой.

cvv ★★★★★
()
Ответ на: комментарий от cvv

>Ты когданибуть писал памовые модули.?? Нет??

Нет. Не писал.

>Я тоже но изучил несколько примеров и порядком поковырял существующие модули.

Я начал с изучения документации.

И прочел там примерно следующее

==
An application must provide a ``conversation function''. It is used for direct communication between a loaded module and the application and will typically provide a means for the module to prompt the user for a password etc. . The structure, pam_conv, is defined by including <security/pam_appl.h>; to be,

struct pam_conv {
    int (*conv)(int num_msg,
        const struct pam_message **msg,
        struct pam_response **resp,
        void *appdata_ptr);
    void *appdata_ptr;
};
==

После этого я посмотрел на примеры (в частности, к winbind).

Потом я написал о своих сомнениях в этот форум ;).

>В начале большинство модулей пишет login: и ждёт ответа далее пишет password: и снова ждёт ответа. Осовное отличие между модулями состоит в том что они потом делают с полученой инфой.

Не мог бы ты привести примеры широко распрстраненных модулей с таким поведением? Если это верно (извини, я еще не вполне в это поверил, потому что не понимаю, как тогда живут неконсольные приложения), и многие модули так поступают, то PAM лучше обходить стороной.

В любом случае, спасибо за информацию.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.