一)安装vsftpd

yum -y install vsftpd mysql-server mysql-devel pam_mysql

pam_mysql是epel源提供:安装epel方法

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

二)先介绍vsftpd主配置文件常见参数详解

anonymous_enable=YES  是否允许匿名登录
local_enable=YES    是否允许本地登录
write_enable=YES    是否可写
local_umask=022   本地用户上传的umask值
anon_upload_enable=NO   是否允许匿名上传数据
anon_mkdir_write_enable=NO   是否允许匿名用户创建目录
dirmessage_enable=YES  开启目录显示信息。
xferlog_enable=YES  是否启用日志
connect_from_port_20=YES    设定连接端口20
chown_uploads=YES  是否改变上传文件的属主和属组
chown_username=whoever  改变那个用户的权限
xferlog_file=/var/log/xferlog  日志保存到此目录下。
xferlog_std_format=YES   设定vsftp的服务日志保存路径
idle_session_timeout=600  回话超时,客户端连接ftp等待的时间
data_connection_timeout=120数据传输超时时间。
nopriv_user=ftpsecure   运行vsftpd需要的非特权系统用户默认是nobody
async_abor_enable=YES   支持异步传输功能
ascii_upload_enable=YES  支持ASCCII模式下载功能
ascii_download_enable=YES  支持asccii上传功能
deny_email_enable=YES  创建一个保存匿名电子邮件的黑名单。
banned_email_file=/etc/vsftpd/banned_emails
chroot_local_user=YES           把用户锁定到家目录下。
chroot_list_enable=YES        开启禁锢用户列表
chroot_list_file=/etc/vsftpd/chroot_list   禁锢用户多的,写到列表里。
ls_recurse_enable=YES   是否能使用ls -R命令防止浪费 大量的服务器资源
listen=YES  绑定端口
listen_ipv6=YES 绑定ipv6端口
mac_clients:最大并发连接数
max_per_ip:每ip可同时发起并发请求。
anon_max_rate:匿名用户的最大传输速率
local_max_rate:本地用户的最大传输速率
pam_service_name=vsftpd 设定pam服务下vsftp的验证配置文件名
userlist_enable=YES  开启拒绝和允许的登录用户名单。拒绝优先,
userlist_deny=YES   设置黑名单。 在user_list这个文件中的都拒绝
userlist_deny=NO设置白名单。在user_list中的允许,没有在的拒绝
tcp_wrappers=YES   限制主机对vsftpd服务器的访问。
guest_enable=YES  启用虚拟用户功能
guest_username=vuser    指定虚拟用户的用户


三)创建虚拟用户,由数据库管理

启动mysql数据库

service mysqld start

wKiom1MySByij4PKAAFBv6rxnI4979.jpg

wKioL1MySpLi58xkAAHl_kL5nw0726.jpg

wKiom1MyS0GyAzP0AAJ0NAP2YKM920.jpg

四)在vsftpd库中添加两个虚拟用户

wKiom1MyS26hUBUsAAE2dbKgjEs150.jpg

五)配置vsftpd,建立pam认证需要的文件

vim /etc/pam.d/vsftpd.mysql

wKioL1MyTD2BAtKlAAELRwFe2Wk102.jpg

密文验证必须是2因为mysql授权时时密文,0是明文。

六)建立虚拟用户映射的系统用户及目录

wKioL1MySy2hJ5WGAAEHa4SPlz8254.jpg

七)修改vsftpd配置文件使其对应mysql认证。
vim /etv/vsftpd/vsftpd.conf

anonymous_enable=YES  
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=vsftpd.mysql

anon_umask=022如果不写的话,虚拟用户不能下载。

八)启动vsftpd服务

service vsftpd start
chkconfig vsftpd on

 netstat -tnlp |grep :21

九)给不同的虚拟用户设置不同的权限,如果不设置,虚拟用户会使用主配置文件中定义的匿名用户的权限。

vsftpd.conf主配置文件添加如下行:

user_config_dir=/etc/vsftpd/vuser_dir  后面的目录是随便指定的。

mkdir vuser_dir

touch benet accp 创建用户

10)给不同的用户创建不同的权限。

给虚拟的用户设置单独的权限,最好把主配置文件中设置的匿名用户的权限注释掉。

vim benet 

anon_upload_enable=YES 设置上传的权限,给benet用户。

wKiom1MyV-_wZy8SAAIW0jaNgJA912.jpg

vim accp

anon_upload_enable=NO

wKiom1MyWAfgJ0AeAAHX1-QVb_E258.jpg

PS:

    vsftpd+mysql数据库用户管理操作大致完成。