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

ftp奥妙之怎么实现基于mysql的数据库和对应的表中的字段来完成对用户认证的? 推荐

2013-04-20 21:28 771 查看
虚拟用户登录模式:将登录用户映射到指定的系统账号(/sbin/nologin)来访问FTP资源,这样就起到安全的效果。

一、安装所需程序

1、安装好开发环境和mysql数据库









2、安装 pam_mysql-0.7RCl模块,因为我们的pam默认情况下是不支持到mysql中去验证用户账号的,所以我们还得自己为pam安装一个插件





3、解压pam_mysql-0.7RC1模块





4、启动mysql









6、查看mysql列表





7、查看mysql包并验证mysql的安装位置





8、告诉mysql安装在何处





9、make





10、安装make





11、查看是否有pam_mysql





二、创建虚拟用户账号

1、连接到数据库mysql创建数据库和表

















2、测试vsftpd数据库









3、建立pam认证所需文件

编辑配置文件vim /etc/pam.d/vsftpd.mysql





auth的主要目的就是认证,auth required表示这个需求必须满足,先检查用户的账号合不合法,再检查用户的账号有没有过期

4、创建一个用户





5、修改vsftpd的配置文件 vim /etc/vsftpd/vsftpd.conf





6、重启服务并验证虚拟用户能否登录上传下载文件

service vsftpd restart 重启服务

cp /etc/fstab /var/ftproot/ 复制/etc/fstab 到家目录/var/ftproot/





补充:虚拟用户的指令都是被匿名用户的指令匹配的,所有的用户都映射到一个叫vuser的用户上了,只要我们禁止的虚拟用户不能上传,也就意味着每一个虚拟用户都不能上传。

三、具体实例

能不能定义不同的虚拟用户使用配置不同的权限呢?比如说tom不能上传下载但是jerry可以,这是不可以的,因为所有的虚拟用户必须映射在同一个用户账号上来,没办法让他们之间建立一一映射的关系,但是可以让他们之间有不同的权限,怎么做呢?只需在ftp中添加一个指令。

我们定义让tom能下载文件但不能上传文件等其他功能,jerry可以上传文件、下载文件、创建目录

1、编辑配置文件 vim /etc/vsftpd/vsftpd.conf





2、创建所需目录和文件





vim tom 编辑文件内容如下





vim jerry 编辑文件内容如下





3、测试验证

首先测试用户tom





测试用户jerry





这就是怎么实现基于mysql的数据库和对应的表中的字段来完成对用户认证的内容,

从以上内容我们可以看出虚拟用户放在mysql数据库中管理起来是不是很简便啊?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息