Відповіді:
Коротко, PAM Модулі автентифікації, що підключаються .
Як випливає з назви, він використовує архітектуру стилю плагіна. PAM робить це так, що кожній програмі не потрібно реалізувати свій власний механізм аутентифікації. Замість цього він просто перевіряє стек PAM.
Оскільки PAM підключається, ви можете налаштувати стек аутентифікації, як вам подобається. Аутентифікація щодо LDAP, NIS, RADIUS, MySQL, Oracle, BerkelyDB, SQLite, RSA токенов, x509 сертифікатів, плоских файлів, одноразових паролів, двох факторів Google, фаз Місяця і т.д.
PAM також може ініціювати такі дії, як монтування файлових систем, створення каталогів, ведення журналу або будь-які інші дії, коли стек активований, завершується невдало або успішно.
PAM є автентифікаційним швейцарським армійським ножем, що дає нескінченну гнучкість для індивідуальної автентифікації в будь-якому випадку.
Без неї кожна програма повинна була б самостійно підтримувати всі ці можливості, і це був би сумний світ.
можливо, цей огляд дає вам все, що ви хочете знати, або хороший старт для ще більшого: 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 ]
+--------------+
PAM - це система, що допомагає програмам виконувати те, що я називаю "діяльність, пов'язану з аутентифікацією". Основними елементами PAM є бібліотека (libpam) і колекція модулів PAM, які є файлами бібліотеки (.so), що динамічно пов'язані з папкою / lib / security.
ПРИМІТКА
1.Backup всі дані та файли конфігурації PAM перед будь-якою зміною.
2. Будьте обережні, щоб виконати опцію конфігурації. Неправильна конфігурація може заблокувати весь доступ для входу, включаючи кореневий доступ.
3. Правильно прочитайте синтаксис PAM.
Нижче наведені деякі приклади, будьте обережні при цьому.
Дозвольте будь-якому користувачеві користуватися су, щоб корітися без пароля.
Для цього відредагуйте файл /etc/pam.d/su і прокоментуйте будь-які рядки, що стосуються стека авторизації, замінивши їх на один рядок:
авторизації достатньо pam_permit.so
Щоб перевірити цей вхід як звичайний користувач, перевірте, чи можна тепер використовувати su - щоб перетворитися на root без надання пароля.
[raj@avi ~]$ su - [root@avi ~]#
Вимкнути пряме ім'я користувача root
ПРИМІТКА: Перш ніж зробити це, переконайтеся, що у вас є принаймні один обліковий запис, який може використовувати su, щоб стати root, або ви вимкнете машину.
Щоб вимкнути вхід до коренів на віртуальних терміналах, відредагуйте файл / etc / pam / d / login і додайте запис.
auth потрібно pam_securetty.so
Цей модуль запобігає входу кореневого пристрою на термінальні пристрої, які не вказані в / etc / securetty.
tty1 #tty2 #tty3 tty4 tty5
Якщо ви коментуєте # tty2 і # tty3, то з віртуального терміналу tty2 і tty3 неможливо ввійти в систему як root.
Заборонити користувачам, що не є користувачами root, вимикати систему
Приймаючи в якості прикладу конфігурацію PAM команди halt, редагуйте файл /etc/pam.d/halt. подобається це
auth достатньо pam_rootok.so
auth потрібно pam_deny.so
Щоб перевірити цей логін як звичайний користувач і спробувати команду зупинити, ви отримаєте нижче помилку.
[test2@avi ~]$ halt halt: Need to be root [test2@avi ~]$
Це лише деякі приклади.
оригінал джерело