一)安装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
四)在vsftpd库中添加两个虚拟用户
五)配置vsftpd,建立pam认证需要的文件
vim /etc/pam.d/vsftpd.mysql
密文验证必须是2因为mysql授权时时密文,0是明文。
六)建立虚拟用户映射的系统用户及目录
七)修改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用户。
vim accp
anon_upload_enable=NO
PS:
vsftpd+mysql数据库用户管理操作大致完成。