安装PAM模块
yum install pam-devel

tar xvf pam_mysql-0.7RC1.tar
cd
./configure --with-mysql=/usr/local/mysql --with-openssl
make && make install

在mysql里创建表。并创建用户
mysql
create database vsftp;
grant select on vsftp.* to vsftpd@localhost identified by 'vsftpd';
grant select on vsftp.* to vsftpd@127.0.0.1 identified by 'vsftpd';
mysql> use vsftp;
Database changed
create table users (
id int AUTO_INCREMENT NOT NULL,
name char(20) binary not null,
passwd char(48) binary not null,
primary key(id)
);
insert into users (name,passwd) values ('wang','wang');
insert into users (name,passwd) values ('jun','jun');

vim /etc/pam.d/vsftpd.mysql

auth required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=0

useradd -s /sbin/nologin -d /var/ftproot vuser  #虚拟映射用户
chmod go+rx /var/ftproot

/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
xferlog_std_format=YES
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
userlist_enable=YES

user_config_dir=/etc/vsftpd/vusers #精确控制每个用户的权限
guest_enable=YES #启
guest_username=vuser
pam_service_name=vsftpd.mysql

tcp_wrappers=YES

useradd admin
echo "admin" | passwd --stdin admin