ftp奥妙之怎么实现基于mysql的数据库和对应的表中的字段来完成对用户认证的? 推荐
2013-04-20 21:28
771 查看
虚拟用户登录模式:将登录用户映射到指定的系统账号(/sbin/nologin)来访问FTP资源,这样就起到安全的效果。
一、安装所需程序
1、安装好开发环境和mysql数据库
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464425OcER.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464427lUcN.jpg)
2、安装 pam_mysql-0.7RCl模块,因为我们的pam默认情况下是不支持到mysql中去验证用户账号的,所以我们还得自己为pam安装一个插件
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_136646443054RN.jpg)
3、解压pam_mysql-0.7RC1模块
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464432JTDM.jpg)
4、启动mysql
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464433RMo1.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464434JARK.jpg)
6、查看mysql列表
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464437EM1t.jpg)
7、查看mysql包并验证mysql的安装位置
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464439rqxV.jpg)
8、告诉mysql安装在何处
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464442KTyX.jpg)
9、make
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464447OxnF.jpg)
10、安装make
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464451pNav.jpg)
11、查看是否有pam_mysql
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464455Isib.jpg)
二、创建虚拟用户账号
1、连接到数据库mysql创建数据库和表
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_13664644587AeI.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464459bKYB.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464460wkFg.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464463oyU3.jpg)
2、测试vsftpd数据库
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464466gFj0.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464467YlLC.jpg)
3、建立pam认证所需文件
编辑配置文件vim /etc/pam.d/vsftpd.mysql
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464468I9IW.jpg)
auth的主要目的就是认证,auth required表示这个需求必须满足,先检查用户的账号合不合法,再检查用户的账号有没有过期
4、创建一个用户
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464471kiWL.jpg)
5、修改vsftpd的配置文件 vim /etc/vsftpd/vsftpd.conf
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_13664644742aFG.jpg)
6、重启服务并验证虚拟用户能否登录上传下载文件
service vsftpd restart 重启服务
cp /etc/fstab /var/ftproot/ 复制/etc/fstab 到家目录/var/ftproot/
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464481orrq.jpg)
补充:虚拟用户的指令都是被匿名用户的指令匹配的,所有的用户都映射到一个叫vuser的用户上了,只要我们禁止的虚拟用户不能上传,也就意味着每一个虚拟用户都不能上传。
三、具体实例
能不能定义不同的虚拟用户使用配置不同的权限呢?比如说tom不能上传下载但是jerry可以,这是不可以的,因为所有的虚拟用户必须映射在同一个用户账号上来,没办法让他们之间建立一一映射的关系,但是可以让他们之间有不同的权限,怎么做呢?只需在ftp中添加一个指令。
我们定义让tom能下载文件但不能上传文件等其他功能,jerry可以上传文件、下载文件、创建目录
1、编辑配置文件 vim /etc/vsftpd/vsftpd.conf
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464482NlYR.jpg)
2、创建所需目录和文件
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464483B2Nx.jpg)
vim tom 编辑文件内容如下
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464484RaKT.jpg)
vim jerry 编辑文件内容如下
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464485KnAq.jpg)
3、测试验证
首先测试用户tom
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464487FHBF.jpg)
测试用户jerry
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464490lVGA.jpg)
这就是怎么实现基于mysql的数据库和对应的表中的字段来完成对用户认证的内容,
从以上内容我们可以看出虚拟用户放在mysql数据库中管理起来是不是很简便啊?
一、安装所需程序
1、安装好开发环境和mysql数据库
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464425OcER.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464427lUcN.jpg)
2、安装 pam_mysql-0.7RCl模块,因为我们的pam默认情况下是不支持到mysql中去验证用户账号的,所以我们还得自己为pam安装一个插件
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_136646443054RN.jpg)
3、解压pam_mysql-0.7RC1模块
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464432JTDM.jpg)
4、启动mysql
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464433RMo1.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464434JARK.jpg)
6、查看mysql列表
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464437EM1t.jpg)
7、查看mysql包并验证mysql的安装位置
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464439rqxV.jpg)
8、告诉mysql安装在何处
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464442KTyX.jpg)
9、make
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464447OxnF.jpg)
10、安装make
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464451pNav.jpg)
11、查看是否有pam_mysql
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464455Isib.jpg)
二、创建虚拟用户账号
1、连接到数据库mysql创建数据库和表
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_13664644587AeI.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464459bKYB.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464460wkFg.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464463oyU3.jpg)
2、测试vsftpd数据库
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464466gFj0.jpg)
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464467YlLC.jpg)
3、建立pam认证所需文件
编辑配置文件vim /etc/pam.d/vsftpd.mysql
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464468I9IW.jpg)
auth的主要目的就是认证,auth required表示这个需求必须满足,先检查用户的账号合不合法,再检查用户的账号有没有过期
4、创建一个用户
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464471kiWL.jpg)
5、修改vsftpd的配置文件 vim /etc/vsftpd/vsftpd.conf
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_13664644742aFG.jpg)
6、重启服务并验证虚拟用户能否登录上传下载文件
service vsftpd restart 重启服务
cp /etc/fstab /var/ftproot/ 复制/etc/fstab 到家目录/var/ftproot/
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464481orrq.jpg)
补充:虚拟用户的指令都是被匿名用户的指令匹配的,所有的用户都映射到一个叫vuser的用户上了,只要我们禁止的虚拟用户不能上传,也就意味着每一个虚拟用户都不能上传。
三、具体实例
能不能定义不同的虚拟用户使用配置不同的权限呢?比如说tom不能上传下载但是jerry可以,这是不可以的,因为所有的虚拟用户必须映射在同一个用户账号上来,没办法让他们之间建立一一映射的关系,但是可以让他们之间有不同的权限,怎么做呢?只需在ftp中添加一个指令。
我们定义让tom能下载文件但不能上传文件等其他功能,jerry可以上传文件、下载文件、创建目录
1、编辑配置文件 vim /etc/vsftpd/vsftpd.conf
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464482NlYR.jpg)
2、创建所需目录和文件
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464483B2Nx.jpg)
vim tom 编辑文件内容如下
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464484RaKT.jpg)
vim jerry 编辑文件内容如下
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464485KnAq.jpg)
3、测试验证
首先测试用户tom
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464487FHBF.jpg)
测试用户jerry
![](http://10240214.blog.51cto.com/attachment/201304/20/6634068_1366464490lVGA.jpg)
这就是怎么实现基于mysql的数据库和对应的表中的字段来完成对用户认证的内容,
从以上内容我们可以看出虚拟用户放在mysql数据库中管理起来是不是很简便啊?
相关文章推荐
- FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制 推荐
- 实验:实现基于MYSQL的FTP虚拟用户
- FTP服务系列之vsftpd+pam+mysql实现虚拟用户认证
- linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建
- 实验:实现基于mysql的ftp虚拟用户
- 基于ubuntu中使用mysql实现opensips用户认证的解决方法
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- 基于ubuntu中使用mysql实现opensips用户认证的解决方法
- mysql+jsp,在jsp页面连接了数据库,已成功获取数据库字段,请问如何取到当前用户对应的信息
- ftp实现通过数据库的虚拟用户认证
- 基于mysql控制vsftp的用户认证机制 推荐
- vsftpd+mysql+pam实现基于数据库的安全的ftp服务
- Linux FTP服务器的搭建与配置+基于关系型数据库实现用户认证
- vsftpd基于mysql实现用户认证
- 多功能复合机基于用户认证功能的实现过程详解 推荐
- FTP(六)实现基于MYSQL验证的FTP虚拟用户
- FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制
- 搭建FTP-----实现基于mysql验证的虚拟用户