通过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
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
Ubuntu实用简单的FTP架设
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置
RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例
openSUSE 13.2/13.1 下安装配置 FTP服务器 vsftpd