配置说明:
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}