tep1: mysql
首先安装vsftp和mysql sql
[root@localhost ~]#yum install vsftpd mysql-server mysql-devel pam-devel -y shell
在PAM中默认是没有mysql认证模块的,因此要下载源码本身手动安装 数据库
[root@localhost ~]# tar -xf pam_mysql-0.7RC1.tar.gz -C /usr/src/ vim
[root@localhost ~]# cd /usr/src/pam_mysql-0.7RC1 安全
[root@localhost pam_mysql-0.7RC1]# ./configure --with-pam=/lib64/security/ #文件须要导入64位的目录下 ide
[root@localhost pam_mysql-0.7RC1]# make && make install ui
step2: spa
安装好后启动mysql .net
[root@localhost ~]# service mysqld start
[root@localhost ~]# mysql -u root -p
首先先建立vsftp的数据库
mysql> CREATE DATABASE vsftpd;
而后建立一个用户表
mysql> use vsftpd
mysql> create table users (
-> id int AUTO_INCREMENT NOT NULL,
-> name char(20) NOT NULL UNIQUE KEY,
-> passwd char(48) NOT NULL,
-> primary key(id)
-> );
添加vsftpd的数据库账号
mysql> insert into users(name,passwd) values('lustlost',password('123456')); \
而后建立vsftpd的数据库帐户,为了安全,只授予查询权限
mysql> GRANT select on vsftpd.* to vsftpd@localhost identified by '123456'
mysql> GRANT select on vsftpd.* to vsftpd@127.0.0.1 identified by '123456' ;
step3:
编辑vsftp配置文件,参考个人配置
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# grep -v "^#" /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 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=YES pam_service_name=vsftpd.mysql #主要修改这一行,指定使用vsftpd.mysql这个pam配置文件调用pam认证 guest_enable=YES #开启来宾帐户 guest_username= mysqlftp #映射来宾帐户,这个帐户将会被映射为mysql数据库中的帐户 user_config_dir=/etc/vsftpd/vsftpd_user_conf #建立mysql每一个虚拟用户的配置目录
编辑pam配置文件,参考个人配置
[root@localhost ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.mysql #复制原来的vsftp认证方法,在此基础上添加mysql认证
编辑PAM认证配置文件
[root@localhost ~]# vim /etc/pam.d/vsftpd.mysql
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 account required /lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2
step4:
添加mysql用户认证的虚拟用户
[root@localhost ~]# useradd mysqlftp -d /var/ftp/pub/mysqlftp
修改mysql虚拟帐户的权限
[root@localhost ~]# chown mysqlftp:mysqlftp -R /var/ftp/pub/mysqlftp
建立mysql虚拟帐户配置文件夹
[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf
在此文件夹下配置每一个mysql虚拟帐户的配置文件
[root@localhost vsftpd_user_conf]# touch lustlost
local_root=/var/ftp/pub/mysqlftp/lustlost #其他配置能够本身按需求写,这里只限制了mysql虚拟用户的我的文件夹
在lustlost目录中建立一个文件验证结果
[root@localhost vsftpd_user_conf]# touch /var/ftp/pub/mysqlftp/lustlost/l.txt