1 前言
需要解决由FTP上传的文件自动以某个应用程序的身份保存的唯一方式是使用VSFTP的虚拟用户,由于笔者对MySQL比较熟悉,所以利用PAM_MySQL模块将VSFTP与MySQL集成。另外,本文不但整理了CentOS6与CentOS7的安装配置方法,而且同时涵盖了RPM包与编译两种安装方法。
2 理论基础
2.1 PAM模块的介绍
所谓虚拟用户,即通过pam模块将vsftp与数据库集成,将vsftp的传统身份验证方式变成通过数据库中保存的帐号密码验证,用户的身份并非系统用户,而需由pam模块虚拟出来的用户,故称虚拟用户。
2.2 PAM模块的加载
注:通过编辑pam.d目录下的规则实现加载
2.3 PAM模块的选项
配置例子:
其他选项
注:以上是本人对原文的理解翻译(详细请参阅源码包的README文件),如果有误欢迎指正。
3 实践部分
3.1 环境配置
3.1.1 安装配置工具
3.1.2 安装编译工具包(可选,编译安装才需要)
3.1.3 MySQL安装
1)配置MySQL的源
输入如下内容:
2)安装数据库相关包
3.1.4 安装相关包
3.1.5 下载pam模块(可选,编译安装才需要)
3.1.6 开启防火墙端口
In CentOS 6:
加入如下行:
重启防火墙服务:
In CentOS 7:
3.1.7 关闭selinux
3.2 安装pam模块
3.2.1 yum方式安装
In CentOS 6:
注:下载页面,
In CentOS 7:
注:下载页面,
3.2.2 编译安装方式(可选,编译安装才需要)
1)解压安装包
2)编译并安装
如果提示错误以下错误:
可增加参数解决:
3.3 配置数据库
3.3.1 启动服务并配置自动启动
In CentOS 6:
In CentOS 7:
3.3.2 初始化数据库
向导如下:
3.3.3 创建验证数据库
3.3.4 创建验证数据表
3.3.5 添加测试数据
查询数据库中的账号:
3.3.6 配置验证账号
3.3.7 测试验证账号
3.4 配置vsftp
3.4.1 备份配置文件
输入如下配置:
重要代码解析:
3.4.2 配置pam
确认pam_mysql.so的位置:
假设显示如下:
加载认证模块:
修改配置如下:
注:请根据pam_mysql.so实际路径写,不同的安装方法位置会有所不同。
3.4.3 创建用户配置文件目录
3.4.4 配置映射用户目录权限
查询映射用户的家目录
显示如下:
修改映射用户的属主
3.4.5 重启服务
In CentOS 6:
In CentOS 7:
3.5 测试并调试
3.5.1 监视日志
注:如果登陆成功secure中没有任何日志,但vsftpd.log中会有登陆成功的提示,这时候无论是否能正常使用都表示PAM_MySQL模块已经配置好,请检查VSFTP的配置。
3.5.2 尝试登陆
注:如果登陆不成功请根据监视日志的提示信息排错。
4 用户管理工具的使用
4.1 工具的下载
http://down.51cto.com/data/2298015
注:该工具是笔者自己写的,请按照自己的需求确定是否使用。
4.2 安装配置
4.2.1 部署工具
4.2.2 工具的常量定义
修改以下常量:
4.3 工具的使用
4.3.1 获取帮助
显示如下:
4.3.2 增加用户
4.3.3 打印用户
4.3.4 删除用户
4.3.5 重命名用户
4.3.6 更改用户密码