我的电脑 CentOS7.064位系统
按照书中的配置方法
yum install db4-utilsdb_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
vftpuser.txt内容:
user 奇行是用户名
123456偶行是密码
vi /etc/pam.d/vsftpd
将里面其他的都注释掉,添加下面这两行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES (开启虚拟用户)
guest_username=ftp (FTP虚拟用户对应的系统用户)
pam_service_name=virtualftpusers #PAM认证文件
#systemctl restart vsftpd
尝试登陆发现
user
123456
530 Login incorrect错误
查看日志
tail -f /var/log/secure
发现PAM unable to dlopen(/lib/security/pam_userdb.so): /lib/security/pam_userdb.so: cannot open shared object file: No such file or directory
原来pam_userdb.so在/lib64/security/pam_userdb.so
解决方法:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
#systemctl restart vsftpd //修改后重启vsftpd服务正常
这是因为64位系统的原因