配置说明:

1、mysql服务器:CentOS6.6    192.168.1.62

2、vsftpd服务器:CentOS6.6    192.168.1.61


一、配置mysql服务器

1、安装mysql

[root@localhost ~]# yum -y install mysql-server
[root@localhost ~]# service mysqld start
[root@localhost ~]# mysql

2、准备数据库及相关表

mysql> create database vsftpd;
Query OK, 1 row affected (0.00 sec)
mysql> grant select on vsftpd.* to vsftpd@192.168.1.61 identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
mysql> use vsftpd;
mysql> create table users ( id int auto_increment not null, name char(20) binary not null, password char(48) binary not null, primary key (id) );
Query OK, 0 rows affected (0.08 sec)

2、添加测试用户

mysql> insert into users (name,password) values ('zhangsan',password('123456'));
Query OK, 1 row affected (0.00 sec)
mysql> insert into users (name,password) values ('lisi',password('123456'));    
Query OK, 1 row affected (0.00 sec)

二、配置vsftpd

1、安装epel源

[root@localhost ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm

2、安装vsftpd服务及pam_mysql认证

[root@localhost ~]# yum -y install vsftpd pam_mysql

3、建立pam认证所需要的文件

# vim /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=vsftpd passwd=123456 host=192.168.1.62 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=123456 host=192.168.1.62 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

4、添加虚拟用户对应的系统用户,使其适用mysql认证

[root@localhost ~]# useradd -s /sbin/nologin -d /var/ftproot vuser
[root@localhost ~]# chmod +rx /var/ftproot/

5、修改vsftpd的配置文件

请确保/etc/vsftpd.conf中已经启用了以下选项
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
而后添加以下选项
guest_enable=YES
guest_username=vuser
并确保pam_service_name选项的值如下所示
pam_service_name=vsftpd.mysql

6、重启服务并进行验证

[root@localhost vsftpd]# service vsftpd restart

三、配置虚拟用户具有不同的访问权限

vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可。

1、配置vsftpd为虚拟用户使用配置文件目录


# vim vsftpd.conf

添加如下选项

user_config_dir=/etc/vsftpd/vusers_config 


2、创建所需要目录,并为虚拟用户提供配置文件


# mkdir /etc/vsftpd/vusers_config/

# cd /etc/vsftpd/vusers_config/

# touch zhangsan lisi


3、配置虚拟用户的访问权限


虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传文件的权限,可以修改/etc/vsftpd/vusers_config/tom文件,在里面添加如下选项即可。

anon_upload_enable={YES|NO}

anon_mkdir_write_enable={YES|NO}

anon_other_write_enable={YES|NO}