通过MySQL实现虚拟用户访问vsftpd服务器


通过MySQL实现虚拟用户访问vsftpd服务器

配置
# 安装本次实验所用到的所有软件包
yum -y install vsftpd mysql-server mysql-devel pam-devel gcc-c++ make wget

# 启动mysqld服务
service mysqld start
# 初始化数据库管理员密码
mysqladmin -uroot password RedHat

# 登录数据库
mysql -uroot -predhat
# 创建vftpuser数据库
create database vftpuser;
# 进入vftpuser数据库
use vftpuser;
# 创建表用于存储账号和密码
create table users(name char(41),pwd char(41));
# 创建测试用户
insert into users(name,pwd) values('test',password('test'));
# 安全起见,创建一个专门用于查询users表的用户
grant select on vftpuser.users to vsqluser@localhost identified by 'redhat';
# 刷新权限表
flush privileges;
# 离开数据库
quit;

# 下载基于MySQL认证的PAM模块并安装
wget http://ncu.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz
tar xzf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure
make && make install

# 修改/etc/pam.d/vsftpd文件,注释原来的内容,添加以下内容
auth    required        /lib/security/pam_mysql.so user=vsqluser passwd=redhat host=localhost db=vftpuser table=users usercolumn=name passwdcolumn=pwd crypt=2
account required        /lib/security/pam_mysql.so user=vsqluser passwd=redhat host=localhost db=vftpuser table=users usercolumn=name passwdcolumn=pwd crypt=2

# 创建本地用户用于映射虚拟用户
useradd -d /var/ftp/vuserdir -s /sbin/nologin vuser

# 用以下内容替换/etc/vsftpd/vsftpd.conf文件原来的内容
listen=YES
pam_service_name=vsftpd
guest_enable=YES
guest_username=vuser
anonymous_enable=NO
anon_world_readable_only=NO
local_enable=YES

# 启动vsftpd服务
service vsftpd start

玩转vsftpd服务器的四大高级配置:

vsFTPd配置教程:

Ubuntu实用简单的FTP架设

Ubuntu 上架设FTP服务器和Apache服务器

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置

RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例

Linux系统vsftpd源码安装

openSUSE 13.2/13.1 下安装配置 FTP服务器 vsftpd 

本文永久更新链接地址

相关内容