需要创建一个虚拟的不能登录系统的用户vsftp
useradd -s /sbin/nologin -d /var/ftp vsftp
passwd vsftp =>brightcs
chmod go+wrx /var/ftp
修改vsftp配置文件
/etc/vsftpd/vsftp.conf
pam_service_name= vsftpd
guest_enable=YES
guest_username=vsftp
修改/etc/pam.d/下 vsftpd 文件,需要屏蔽掉其他的验证先,然后再添加mysql验证方式:
auth required /lib/security/pam_mysql.so user=root passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1
account required /lib/security/pam_mysql.so user=root passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1
需要注意2点:
1):
md5 crypt = 3
nocrypt crypt =0
2)
如果你的数据库字段里面有用户状态字段,比如你想当用户被禁用时候,不可以访问ftp,那么可以增加通过where选项来实现, 比如: where=state=1, 具体可以查看安装包下面的README;