Назад | Перейти на главную страницу

pam_userdb не может открыть базу данных

При попытке настроить vsftpd для использования виртуальных пользователей я столкнулся с этой проблемой.

Я создал файл базы данных:

db_load -T -t hash -f users.txt /etc/vsftpd/users.db

И /etc/pam.d/vsftpd:

session optional pam_keyinit.so force revoke
auth    required pam_userdb.so db=/etc/vsftpd/users.db
account required pam_userdb.so db=/etc/vsftpd/users.db

Но несмотря на то, что база данных доступна для чтения vsftpd процесс, я получаю это в /var/log/auth.log

pam_userdb (vsftpd: auth): user_lookup: не удалось открыть базу данных `/etc/vsftpd/users.db ': нет такого файла или каталога

Ключ в том, что pam_userdb тихо добавляет .db на путь, поэтому вам нужна эта конфигурация вместо

session optional pam_keyinit.so force revoke
auth    required pam_userdb.so db=/etc/vsftpd/users
account required pam_userdb.so db=/etc/vsftpd/users

Это не упоминается на странице руководства, и на самом деле в приведенном примере неправильно используется /etc/dbtest.db вместо того /etc/dbtest.