Как настроить конфигурационный файл 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.
Установить <a href="https://github.com/ledav-net/pam_sqlite" rel="nofollow">pam_sqlite</a> , создать БД, добавить в /etc/pam.d/login что-нибудь типа: <br/> <code>session required pam_sqlite.so /path/to/sqlite.db</code>
Если мы говорим про этот модуль <a href="https://github.com/HormyAJP/pam_sqlite3" rel="nofollow">https://github.com/HormyAJP/pam_sqlite3</a> <br/> то он поддерживает только авторизацию (auth/account/password) из базы по логину/паролю. <br/> И не делает никакой записи о том, как прошла авторизация. <br/> <br/> Чтобы была какая-то запись, нужно использовать тип модуля <b>session</b> , в который pam_sqlite3 не умеет. <br/> <br/> <blockquote>Тип-Модуля должен быть одним из следующих:<br/>
     * auth:Такой модуль проверяет наличие пользователя в системе,<br/>
       спрашивает его имя, разрешает или нет доступ в ту или иную группу<br/>
       (независимо от записей в файле /etc/groups) и вообще способен<br/>
       давать привилегии (конечно специально предназначенные для этого).<br/>
     * account: Этот модуль не занимается аутентификацией, а позволяет<br/>
       контролировать распределение ресурсов системы для тех или иных<br/>
       пользовательских бюджетов.<br/>
     * session:А этот связан с вещами которые могут происходить перед тем<br/>
       как пользователь получит доступ к той или иной службе. Например<br/>
       ведение записей в системных журналах.<br/>
     * password:Модуль, как следует из названия, занимающийся<br/>
       непосредственно проверкой паролей на подлинность, на слабость и<br/>
       т.д.</blockquote> <br/> <br/> PS. Настройки написаны на страничке по ссылке выше. <br/> <br/> PPS. А вот pam_sqlite умеет в <b>session</b> , спасибо <a href="https://qna.habr.com/user/ky0" rel="nofollow">ky0</a>
Похожие вопросы