4

Что такое PAM (сменные модули аутентификации) в Linux? Я знаю, что он используется для аутентификации, но что в этом хорошего? Как это работает?

Я использую CentOS 6.2.

3 ответа3

8

В двух словах, PAM - сменные модули аутентификации.

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

Поскольку PAM является подключаемым, вы можете настроить стек аутентификации так, как вам нравится. Аутентификация на основе LDAP, NIS, RADIUS, MySQL, Oracle, BerkelyDB, SQLite, токенов RSA, сертификатов x509, плоских файлов, одноразовых паролей, двухфакторных Google, фаз Луны и т.д. Может быть настроена в любой комбинации.

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

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

Без этого каждая программа должна была бы независимо поддерживать все эти функции, и это был бы действительно печальный мир.

7

может быть, этот обзор дает вам все, что вы хотите знать, или хорошее начало для еще большего: http://www.linux-pam.org/Linux-PAM-html/sag-overview.html

Некоторые цитаты:

Linux-PAM имеет дело с четырьмя отдельными типами задач (управления). Это: управление аутентификацией; управление аккаунтом; управление сессиями; и управление паролями.

    Here is a figure that describes the overall organization of Linux-PAM:

  +----------------+
  | application: X |
  +----------------+       /  +----------+     +================+
  | authentication-[---->--\--] Linux-   |--<--| PAM config file|
  |       +        [----<--/--]   PAM    |     |================|
  |[conversation()][--+    \  |          |     | X auth .. a.so |
  +----------------+  |    /  +-n--n-----+     | X auth .. b.so |
  |                |  |       __|  |           |           _____/
  |  service user  |  A      |     |           |____,-----'
  |                |  |      V     A
  +----------------+  +------|-----|---------+ -----+------+
                         +---u-----u----+    |      |      |
                         |   auth....   |--[ a ]--[ b ]--[ c ]
                         +--------------+
                         |   acct....   |--[ b ]--[ d ]
                         +--------------+
                         |   password   |--[ b ]--[ c ]
                         +--------------+
                         |   session    |--[ e ]--[ c ]
                         +--------------+
5

PAM - это структура, которая помогает приложениям выполнять то, что я буду называть «действиями, связанными с аутентификацией». Основными компонентами PAM являются библиотека (libpam) и коллекция модулей PAM, которые представляют собой файлы динамически связанных библиотек (.so) в папке /lib /security.

НОТА

1.Сделайте резервную копию всех данных и файлов конфигурации PAM перед любыми изменениями.

2.Пожалуйста, будьте осторожны, чтобы выполнить настройку. Неправильная конфигурация может заблокировать все права доступа, включая root.

3.Прочитайте синтаксис PAM правильно.

Ниже приведены некоторые примеры, будьте осторожны при этом.

Разрешить любому пользователю su войти в систему без пароля.

Для этого отредактируйте файл /etc/pam.d/su и закомментируйте все строки, относящиеся к стеку аутентификации, заменив их одной строкой:

достаточно аутентичный pam_permit.so

Чтобы проверить это, войдите в систему как обычный пользователь и убедитесь, что теперь вы можете использовать su - для получения прав root без ввода пароля.

[raj@avi ~]$ su -
[root@avi ~]#

Отключить прямой root-вход

ПРИМЕЧАНИЕ. Перед тем, как сделать это, убедитесь, что у вас есть хотя бы одна учетная запись, которая может использовать su, чтобы стать пользователем root, или вы заблокируете себя от компьютера.

Чтобы отключить root-логины на виртуальных терминалах, отредактируйте файл /etc /pam /d /login и добавьте запись.

требуется авторизация pam_securetty.so

Этот модуль предотвратит вход в систему root на терминальных устройствах, которые не перечислены в /etc /securetty.

tty1
#tty2
#tty3
tty4
tty5

Если вы прокомментируете # tty2 и # tty3, то из виртуального терминала tty2 и tty3 невозможно напрямую войти в систему как root.

Запретить отключение системы пользователям без полномочий root

Взяв в качестве примера конфигурацию PAM команды halt, отредактируйте файл /etc/pam.d/halt. как это

достаточно аутентичный pam_rootok.so

требуется авторизация pam_deny.so

Чтобы проверить этот логин как обычный пользователь и попробовать команду halt, вы получите ошибку ниже.

[test2@avi ~]$ halt
halt: Need to be root
[test2@avi ~]$

Это только некоторые примеры.

первоисточник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .