Rhel5.6下通过Mysql数据库实现虚拟用户登陆Vsftp服务器

1、 安装 vsftpd 并设置开机自动启动
yum -y install vsftpd
chkconfig vsftpd on
 
2、 安装 mysql 数据库
yum -y install mysql-devel mysql-server
 
3、 启动 mysql 服务并设置开机自动启动
service mysqld start
chkconfig mysqld on
 
4 、设置 mysql 的管理员密码
mysqladmin  -u root  password  123456
 
5 、建立用于虚拟用户的数据库、表,并创建虚拟用户 zzp vfast
mysql -u root -p123456
mysql>create database vftp ;
mysql>use vftp ;
mysql>create table userinfo(name char(16),pwd char(16)) ;
mysql>insert into userinfo(name,pwd) values('zzp','123456') ;
mysql>insert into userinfo(name,pwd) values('vfast','123456') ;
mysql> grant select on vftp.userinfo to ftpuser@localhost identified by '123456' ; //基于安全考虑创建一个专门用于读取数据库中虚拟用户信息的用户(ftpuser
mysql> flush privileges ;
 
6 测试 ftpuser 是否可以正常查询数据库信息
mysql -u ftpuser -p123456
mysql>use vftp ;
mysql>select * from userinfo ;
 
7、 创建本地映射用户,并修改其家目录的权限
useradd -d /var/ftp/guest -s /sbin/nologin guest
注: -d 指定家目录的位置
     -s 指定用户登录的 shell ,如果为用户分配的 shell /sbin/nologin ,则该用户是不能登录到系统的。
chmod o+rw /var/ftp/guest
 
8、 编辑 /etc/vsftpd/vsftpd.conf ,添加以下两句,用于启用虚拟账号,并禁用匿名账号
guest_enable=yes
guest_username=guest
anonymous_enable=no
 
9 、安装yum -y install pam-devel
 
10、下载安装支持 mysql 认证的 PAM 模块 http://sourceforge.net/projects/pam-mysql/files/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz/download
[root@router ]tar xvzf pam_mysql-0.7RC1.tar.gz -C /usr/src
[root@router ]cd /usr/src/pam_mysql-0.7RC1/
[root@…… ]./configure
[root@…… ]make
[root@…… ]makinstall
ls /usr/lib/security
安装完成后查看/usr/lib/security中是否存在pam_mysql.la  pam_mysql.so这两个文件,若果有则表示安装成功!
 
11. 编辑 pam 认证文件 /etc/pam.d/vsftpd ,将原有的内容全部注释掉并添加以下两行内容以使用 mysql 认证
auth       required    /usr/lib/security/pam_mysql.so  user=ftpuser passwd=xiaofeixia host=localhost db=vftp table=userinfo usercolumn=name passwdcolumn=pwd crypt=0
account  required  /usr/lib/security/pam_mysql.so  user=ftpuser passwd=xiaofeixia host=localhost db=vftp table=userinfo usercolumn=name passwdcolumn=pwd crypt=0
 
12、重新启动ftp服务器
service vsftpd restart
 
13、客户端测试
 
备注:该实验应关闭selinux、关闭系统防火墙;否则会登陆验证失败!

你可能感兴趣的:(数据库,服务器,用户)