您的位置:首页 > 数据库 > SQL

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

2014-06-21 20:48 645 查看
声明作者:昨夜星辰
博客:http://yestreenstars.blog.51cto.com/
本文由本人创作,如需转载,请注明出处,谢谢合作!
目的通过MySQL实现虚拟用户访问FTP服务器。
配置
# 安装本次实验所用到的所有软件包
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql vsftpd 虚拟用户