在尝试设置 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”:没有此文件或目录
答案1
关键是它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
。