請問:vsftpd的本地用戶登錄是如何認證的?

火星人 @ 2014-03-04 , reply:0
←手機掃碼閱讀

請問:vsftpd的本地用戶登錄是如何認證的?

各位,最近新建了一個ftp伺服器,vsftpd+pam_mysql+mysql;虛擬用戶用mysql認證,都沒有問題!

不過....

導致本地用戶卻無法登錄ftp了,我查看了下日誌/var/log/secure

Dec 25 15:14:30 jingwei vsftpd: pam_mysql - SELECT passwd FROM users WHERE name = 'admin'
Dec 25 15:14:30 jingwei vsftpd: pam_mysql - SELECT returned no result.
Dec 25 15:14:30 jingwei vsftpd: pam_mysql - pam_mysql_check_passwd() returning 1.
Dec 25 15:14:30 jingwei vsftpd: pam_mysql - pam_mysql_sql_log() called.
Dec 25 15:14:30 jingwei vsftpd: pam_mysql - pam_mysql_format_string() called
Dec 25 15:14:30 jingwei vsftpd: pam_mysql - pam_mysql_quick_escape() called.
Dec 25 15:14:30 jingwei last message repeated 3 times

大致是因為在mysql資料庫找不到本地用戶「admin」信息;我想這是肯定的,因為本地用戶admin的用戶信息沒有保存在資料庫。


那如果本地用戶想登錄vsftpd的話,該如何認證呢?在vsftp.conf中,我已經指定了,
pam_service_name=vsftpd.mysql
#pam_service_name=vsftpd          //如果我取消該行註釋,則本地用戶能登錄了,但虛擬用戶又不能登錄了;


請教大家該咋搞呢??






《解決方案》

本帖最後由 dualgaun 於 2012-12-25 15:46 編輯

vsftpd.conf文件:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
connect_from_port_20=YES
listen_port=21
pam_service_name=vsftpd.mysql
#pam_service_name=vsftpd

userlist_enable=YES
tcp_wrappers=YES
virtual_use_local_privs=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
user_config_dir=/etc/vsftpd/vsftpd_user_conf
guest_enable=YES
guest_username=vsftpdvirtual
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999     




[火星人 via ] 請問:vsftpd的本地用戶登錄是如何認證的?已經有221次圍觀

http://www.coctec.com/docs/service/show-post-11928.html