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

基于vsftpd + pam + mysql实现虚拟用户访问机制

2013-04-23 07:59 1171 查看
前提:准备好一个yum源,我在后面配置中使用到的软件包下载路径:lftp 172.16.0.1:/pub/Sources/vsftpd
一、准备工作
1.安装开发环境和mysql数据库
[root@localhost ~]#yum –y groupinstall “Development Tools”“Development Libraries”
[root@localhost ~]#yum –y install mysql-server mysql-devel

2.安装pam_mysql-0.7RC1软件包
[root@localhost ~]#lftp 172.16.0.1:/pub/Sources/vsftpd
lftp 172.16.0.1:/pub/Sources/vsftpd>get pam_mysql-0.7RC1
lftp 172.16.0.1:/pub/Sources/vsftpd>bye
[root@localhost ~]#tar xf pam_mysql-0.7RC1
[root@localhost ~]#cd pam_mysql-0.7RC1
[root@localhost pam_mysql-0.7RC1]#./configure –with-mysql=/usr –with-openssl
####指定mysql数据库安装的路径,同时支持openssl加密功能
[root@localhost pam_mysql-0.7RC1]#make
[root@localhost pam_mysql-0.7RC1]#make install

3.安装vsftpd服务
[root@localhost ~]#yum –y install vsftpd

4.启动mysqld服务
[root@localhost ~]#service mysqld start
[root@localhost ~]#chkconfig –add mysqld
[root@localhost ~]#chkconfig mysqld on

二、创建虚拟用户及账号
1.创建数据库及表
####在这里我们创建一个数据库vsftpd,在该数据库中创建存放虚拟用户名和用户密码的用户表users




2.为用户vsftpd授权




3.在users表中插入虚拟用户及密码




三、配置vsftpd
1.创建pam认证的所需文件
###pam认证文件一般在/etc/pam.d下,为了让文件名看起来一目了然,在pam.d下创建vsftpd.mysql文件
[root@localhost ~]#vim /etc/pam.d/vsftpd.mysql
添加如下内容:
auth required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
account required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
####创建的用户必须经过pam这个模块认证,否则就不会进行下面的操作
保存退出

2.创建虚拟用户映射的系统用户及对应的目录
[root@localhost ~]#useradd –s /sbin/nologin –d /var/ftproot vuser
[root@localhost ~]#chmod go+rx /var/ftproot
###使系统用户vuser的家目录任何人都有执行权限

3.修改vsftpd的配置文件,使其支持mysql认证
在vsftpd配置文件中,一定要启用的选项:
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     ###启动来宾用户访问功能,并指定来宾用户为vuser
pam_service_name=vsftpd.mysql    ##指定pam认证的pam文件名
保存退出

4.启动vsftpd服务
[root@localhost ~]#chkconfig –add vsftpd
[root@localhost ~]#chkconfig vsftpd on
[root@localhost ~]#service vsftpd start

四、查看vsftpd服务的端口




五、配置虚拟用户的不同访问权限
此时使用虚拟用户登录到ftp服务中,还没有上传、下载、创建、删除等权限;要想使定义的虚拟用户拥有不同的访问权限,需要在配置文件目录下为每个用户提供单独的配置文件以定义其ftp服务访问权限,每一个虚拟用户的配置文件名可以同虚拟用户的用户名。
1.在vsftpd配置文件中为虚拟用户提供配置文件目录
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
添加一项:
user_config_dir=/etc/vsftpd/vusers
保存退出

2.创建所需要的目录,并为虚拟用户提供配置文件
[root@localhost ~]#mkdir /etc/vsftpd/vusers
[root@localhost ~]#cd /etc/vsftpd/vusers
[root@localhost vusers]#touch tom jerry
[root@localhost vusers]#vim jerry     ####在下面的演示中我只为jerry用户设置不同的访问权限,tom用户的访问权限设定方法和jerry的是相同的
添加选项:
anon_upload_enable=YES     ###开启虚拟用户的上传功能
anon_mkdir_write_enable=YES   ###开启虚拟用户的创建功能
####可以根据个人的需要添加相应的功能,每一项选项只对应一种功能实现

六、测试结果
上传文件




创建目录




删除文件




在IE浏览器中测试使用虚拟用户登录ftp服务器




登录成功,并显示创建的目录




本文出自 “奋斗的小鸟” 博客,请务必保留此出处http://luowenjing.blog.51cto.com/6627118/1184035
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: