Centos

vsftpd 無法使用 Berkeley DB (V4) 數據庫和 PAM (pam_userdb.so) 登錄 ftp

  • March 31, 2016

我最近剛剛嘗試設置vsftpd,按照關於cyberciti 的這篇nixCraft 文章他們的文章設置虛擬使用者

我可以使用連接,ftp localhost但它無法辨識vivek日誌指出的使用者名:

vsftpd: pam_unix(vsftpd:auth): check pass; user unknown 
vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=vivek
vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user vivek

一切都應該與教程完全相同,除了我使用的/var/www/$USER而不是他們指定的。

幾乎就像它找不到 pam_userdb.so 的數據庫,或者它無法正確讀取它以找到密碼。

這是我的/etc/vsftpd/vsftpd.conf文件:

anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=NO
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
hide_ids=YES
log_ftp_protocol=YES
banner_file=/etc/vsftpd/issue

這是我的/etc/pam.d/vsftpd文件:

#%PAM-1.0
session    optional    pam_keyinit.so    force revoke
auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/f$
auth       required    pam_shells.so
auth       include     system-auth
account    include     system-auth
session    include     system-auth
session    required    pam_loginuid.so
auth       required    pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
account    required    pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
session    required    pam_loginuid.so

有誰知道這裡發生了什麼?

有什麼方法可以找到更多資訊以查看它是否正在查找/使用正確的文件?

/etc/pam.d/vsftpd文件中,事實證明我只應該有最後三行(他們在教程中提供的那些)。

在我將文件更改為此之後:

#%PAM-1.0
auth       required    pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
account    required    pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
session    required    pam_loginuid.so

它工作得很好。但是,我使用它的時間還不夠長,無法弄清楚它是否在其他地方產生了錯誤。如果有人認為此更改有任何問題,請告訴我。

引用自:https://serverfault.com/questions/254316