Как настроить использование pam_sqlite в Linux для записи информации об авторизации пользователей в базу данных SQLite?
Для настройки конфигурационного файла pam_sqlite в Linux, следуйте этим шагам: 1. Установите пакет pam_sqlite, если его еще не установлен: ``` sudo apt-get install libpam-sqlite ``` 2. Отредактируйте файл конфигурации модуля PAM по пути /etc/pam.d/, например, /etc/pam.d/common-auth: ``` sudo nano /etc/pam.d/common-auth ``` 3. Добавьте следующую строку в файл для использования модуля pam_sqlite: ``` auth [success=1 default=ignore] pam_sqlite.so db=/путь_к_базе_данных.db ``` Замените /путь_к_базе_данных.db на путь к вашей базе данных SQLite. 4. Сохраните и закройте файл. 5. Создайте базу данных SQLite и таблицу для хранения информации об авторизованных пользователях. Например, можно воспользоваться командной строкой SQLite: ``` sqlite3 /путь_к_базе_данных.db CREATE TABLE users (username TEXT PRIMARY KEY, password TEXT); ``` 6. Добавьте пользователей и их пароли в таблицу users. 7. Перезапустите службу, чтобы изменения вступили в силу: ``` sudo systemctl restart sshd ``` Теперь pam_sqlite будет использоваться для записи информации об авторизации пользователей в базу данных SQLite.
Установить pam_sqlite , создать БД, добавить в /etc/pam.d/login что-нибудь типа:
session required pam_sqlite.so /path/to/sqlite.db
Если мы говорим про этот модуль https://github.com/HormyAJP/pam_sqlite3
то он поддерживает только авторизацию (auth/account/password) из базы по логину/паролю.
И не делает никакой записи о том, как прошла авторизация.
Чтобы была какая-то запись, нужно использовать тип модуля session , в который pam_sqlite3 не умеет.
Тип-Модуля должен быть одним из следующих:
* auth:Такой модуль проверяет наличие пользователя в системе,
спрашивает его имя, разрешает или нет доступ в ту или иную группу
(независимо от записей в файле /etc/groups) и вообще способен
давать привилегии (конечно специально предназначенные для этого).
* account: Этот модуль не занимается аутентификацией, а позволяет
контролировать распределение ресурсов системы для тех или иных
пользовательских бюджетов.
* session:А этот связан с вещами которые могут происходить перед тем
как пользователь получит доступ к той или иной службе. Например
ведение записей в системных журналах.
* password:Модуль, как следует из названия, занимающийся
непосредственно проверкой паролей на подлинность, на слабость и
т.д.
PS. Настройки написаны на страничке по ссылке выше.
PPS. А вот pam_sqlite умеет в session , спасибо ky0