Как настроить конфигурационный файл pam_sqlite?

Как настроить использование pam_sqlite в Linux для записи информации об авторизации пользователей в базу данных SQLite?
  • 28 марта 2024 г. 10:39
Ответы на вопрос 3
Для настройки конфигурационного файла 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
Похожие вопросы