ftp奥妙之怎么实现基于mysql的数据库和对应的表中的字段来完成对用户认证的?...
虚拟用户登录模式:将登录用户映射到指定的系统账号(/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数据库中管理起来是不是很简便啊?
转载于:https://blog.51cto.com/6644068/1182257