Разработка программного модуля PAM::Журнал СА 11.2013
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы

1001 и 1 книга  
19.03.2018г.
Просмотров: 9866
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8078
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8182
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5183
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5857
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Разработка программного модуля PAM

Архив номеров / 2013 / Выпуск №11 (132) / Разработка программного модуля PAM

Рубрика: Разработка /  Инструменты

Рашид Ачилов РАШИД АЧИЛОВ, поклонник FreeBSD с многолетним опытом использования ее в совмещенных с Windows сетях и сторонник Open Source. Администратор сетей и средств защиты крупной торговой сети, shelton@sheltonsoft.ru

Разработка программного модуля PAM

Как создать свой собственный PAM-модуль, реализующий тот или иной функционал? Особенности разработки и отладки модулей PAM

Описание модуля

В «Системном администраторе» №9 за 2013 год была опубликована статья «Использование PAM», в которой рассказывалось об общих принципах его построения, о преимуществах, которые дает его использование, о том, как правильно составить файл сервиса и каким образом вызывать программные модули PAM. В данной статье мы рассмотрим вопрос с точки зрения программиста – как разработать собственный модуль PAM, и зачем он нам может пригодиться.

Что такое PAM-модуль и зачем его разрабатывать

PAM-модуль – это динамическая библиотека (файл с расширением .so), содержащая набор функций, которые вызываются для реализации некоторого сервиса, например, проверить логин и пароль на сервере LDAP или же наличие домашнего каталога и создать его, если его нет. В приводимом ниже файле сервиса pam_unix.so, pam_ldap.so и pam_mkhome.so – это имена PAM-модулей.

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

Или столь любимый мной метод авторизации в домене Active Directory без Samba основан на использовании PAM-модуля pam_ldap, предыдущий же метод – с Samba – на модуле pam_winbindd. Эти модули тоже отсутствуют в OpenPAM, первый устанавливается из ports/security/pam_ldap, второй – из пакета Samba.

Проблема, которая привела к разработке модуля pam_mkhome.so, возникла одновременно с появлением возможности аутентификации по удаленным серверам – тот же pam_ldap, например. Как правило, у пользователя отсутствует домашний каталог до тех пор, пока он не подключится к своему почтовому ящику в первый раз или же не зайдет в систему – постоянное создание домашних каталогов пользователям было бы бесполезной тратой рабочего времени админа.

Поэтому в файле PAM в сервисе account или session (а часто и там и там) присутствует некий модуль, который должен проверить наличие домашнего каталога и, если он отсутствует, создать его и скопировать туда типовые файлы с настройками.

Пример файла, где используется данный модуль, приводился в статье в предыдущем номере «СА», там же рассказывалось, почему данный модуль указан и в сервисе account и в сервисе session (вкратце: программа может не использовать сервис account или session, но, как правило, хотя бы один из них она использует).

Здесь мы приведем текст данного файла только для того, чтобы ссылаться на него:

auth sufficient pam_unix.so no_warn try_first_pass local_pass debug

auth required pam_ldap.so use_first_pass

account sufficient pam_unix.so

account required pam_mkhome.so mode=0700

session required pam_mkhome.so mode=0700

Параметр mode задает режим доступа к создаваемому домашнему каталогу. Другими допустимыми параметрами являются debug=N, где любое N, не равное 0, включает отладку, и skel=<pathway>, где pathway указывает на каталог, где находятся шаблоны настроечных файлов.

Статью целиком читайте в журнале «Системный администратор», №11 за 2013 г. на страницах 61-65.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru