Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

freesource.info: новости проекта и статьи Pluggable Authentication Modules : intro


Информационный Канал Subscribe.Ru

Pluggable Authentication Modules

Причины

Вход пользователя в любую систему состоит из нескольких этапов:

  • аутентификация (проверка что пользователь является тем, за кого себя выдаёт);
  • авторизация (проверка наличия прав на запрашиваемый ресурс);
  • настройка окружения (в случает shell-доступа это, например, переменные окружения, uid, gid и список групп, в которые входит пользователь);

Эти операции выполняются для большого количества разных приложений в современных UNIX-like ОС. Это во-первых известное всем приложение login, авторизующее, в основном, локальных пользователей. Это sshd, а также некоторые другие демоны (некоторые реализации ftp, к примеру, умеют использовать PAM). Это утилиты passwd, утилиты изменения параметров пользователя (usermod/chfn/chsh). Это xdm/gdm/wdm. Это cron (ему это нужно, в первую очередь, чтобы правильно выставлять переменные окружения и лимиты для запускаемых процессов пользователя). Утилиты запуска процессов от другого пользователя su и sudo.

Дублировать один и тот же код сразу в группе утилит (например в su, login, sshd авторизация/аутентификация производится идентичным образом) это во-первых хороший способ сделать море ошибок, а во-вторых просто море удовольствия при попытке сменить систему авторизации (например при желании использовать LDAP).

Для того, чтобы решить эту проблему раз и навсегда была создана технология и сопутствующая инфраструктура PAM (Pluggable Authentication Modules).

Как это работает?

Основа

В /lib/security располагается код самих подгружаемых модулей (pam_*.so). В /etc/pam.d располагаются файлы-сценарии для испоьлзования PAM из конкретных программ. Имя файла-сценария совпадает с именем программы, его использующей

Формат строки сценария: <тип модуля> <флаг контроля> <имя модуля> <параметры>

Тип модуля:

  • auth -- собственно аутентификация пользователя
  • account -- настройки прав доступа
  • session -- настройки пользовательской сессии
  • password -- проверка паролей

Флаг контроля указывает системе как обрабатывать удачное или неудачное завершение модуля:

  • required -- завершение с ошибкой модуля запрещает доступ пользователю, однако остальные модули будут обработаны
  • requisite -- завершение с ошибкой модуля запрещает доступ пользователю, последовательность выполнения модулей будет остановлена
  • sufficient -- удачное завершение этого модуля означат разрешение доступа пользователя
- optional -- результат выполнения модуля не сказывается на результате аутентификации, используется как дополнительный. Удобен для выдачи предупреждений, а также для дополнительных настроек (например модуль pam_mktemp я предпочитаю использовать именно с этим флагом контроля)

Также в /etc/security находятся конфигурационные файлы, используемые некоторыми мо

Резюме

Подсистема PAM это мощное и эффективное средство для удобства и реализации функциональности любой сложности для процесса аутентификации и авторизаии пользователя. Знание принципов её работы необходимо для любого системного администратора Linux и FreeBSD.

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.linux.freesource
Отписаться

В избранное