При попытке настроить 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
.