Centos
vsftpd 無法使用 Berkeley DB (V4) 數據庫和 PAM (pam_userdb.so) 登錄 ftp
我最近剛剛嘗試設置
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
它工作得很好。但是,我使用它的時間還不夠長,無法弄清楚它是否在其他地方產生了錯誤。如果有人認為此更改有任何問題,請告訴我。