搭建FTP+PAM+MySQL环境

1 搭建环境: CentOS6.5或CentOS6.7

 [root@vhost3 ~]# uname -a
Linux vhost3 2.6.-.el6.x86_64 # SMP Thu Jul :: UTC x86_64 x86_64 x86_64 GNU/Linux

2 yum安装安装MySQL、vsftpd,需要的依赖包,大多是系统自带的,即使最小化安装也会有

 yum install -y vsftpd mysql-server mysql-devel mysql-libs

3 安装pam

# 安装依赖包

 yum install -y pam-devel fprintd-pam pam_passwdqc pam

# 编译安装pam,适用于yum安装的MySQL

 [root@localhost]#wget http://www.huzs.net/soft/vsftpd/pam_mysql-0.7RC1.tar.gz
[root@localhost]#tar xvf pam_mysql-.7RC1.tar.gz
[root@localhost]#cd pam_mysql-.7RC1
[root@localhost]# ./configure --with-openssl --with-pam-mods-dir=/lib/security/
[root@localhost]# make && make install

# 安装完成后,会生成如下两个文件

 /lib/security/pam_mysql.la  /lib/security/pam_mysql.so

4 修改vsftpd配置文件(参考)

 anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=kdui_ftp # pam认证的配置文件
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES # 启用虚拟用户
guest_username=kdui_ftp # 虚拟用户的权限是寄宿在操作系统的kdui_ftp这个用户上的,这个用户必须真实存在
local_root=/home/dms/kdui/dmsdata/userBase/$USER #指定用户登录的家目录,$USER是内置变量,表示用户名
user_sub_token=$USER
virtual_use_local_privs=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd
user_config_dir=/etc/vsftpd/user_config #每个虚拟用户的独立配置文件目录,配置文件和用户同名

5 根据vsftpd配置文件配置系统环境

# 创建宿主账号的家目录

 [root@localhost]#mkdir -p /home/dms/kdui/dmsdata/

# 创建虚拟用户宿主账号

 [root@localhost]# useradd -s /sbin/nologin -d /home/dms/kdui/dmsdata/userBase/ kdui_ftp

# 创建虚拟用户配置文件目录,(按上述配置文件可以不创建)

[root@localhost]# mkdir -p /etc/vsftpd/user_config

6 修改pam认证文件

[root@localhost]# vim /etc/pam.d/kdui_ftp
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required /lib/security/pam_mysql.so user=ftp passwd= host=localhost db=ftp table=ftpuser usercolumn=username passwdcolumn=password crypt=
account required /lib/security/pam_mysql.so user=ftp passwd= host=localhost db=ftp table=ftpuser usercolumn=username passwdcolumn=password crypt=
# 调用的模块 数据库用户名 密码 IP 库名 表名 哪个字段作为用户名 哪个字段作为密码
# crypt表示密码是否加密以及加密方式,0表示明文,1表示使用UNIX的DES加密,2表示使用MySQL的password()函数,3表示口令使用MD5加密

7 配置MySQL数据库

 # 启动数据库
[root@localhost]# /etc/init.d/mysqld start

# 连接数据库

[root@localhost]# mysql -uroot

# 建库

 mysql> CREATE DATABASE IF NOT EXISTS `ftp` ;
mysql> use ftp;

# 建表

 mysql> CREATE TABLE IF NOT EXISTS `ftpuser` (
`id` int() NOT NULL AUTO_INCREMENT,
`username` varchar() NOT NULL,
`password` varchar() NOT NULL,
`status` int() NOT NULL DEFAULT '',
`level` int() NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT= ;

# 插入两条数据即ftp虚拟用户

mysql> INSERT INTO `ftpuser` (`username`, `password`) VALUES ( 'aaa', '');
mysql> INSERT INTO `ftpuser` (`username`, `password`) VALUES ( 'bbb', '');

# 授权pam验证用的mysql账号

mysql>  grant select on ftp.ftpuser to ftp@localhost identified by '';
mysql> FLUSH PRIVILEGES;
mysql> quit;

8 启动ftp

[root@loaclhost]#/etc/init.d/vsftpd start

搭建FTP+PAM+MySQL环境的更多相关文章

  1. 实现FTP+PAM+MySQL环境,批量配置虚拟用户

    实现FTP+PAM+MySQL环境,批量配置虚拟用户 搭建环境: CentOS6.5或CentOS6.7 [root@vhost3 ~]# uname -a Linux vhost3 2.6.32-5 ...

  2. 基于ubuntu 14搭建nginx+php+mysql环境

    基于最新的Ubuntu 14.04(2014年9月)搭建nginx.php.mysql环境, 以下全部命令行操作: 1 由于需要大量的权限操作,方便起见临时提升权限,使用root账号 sudo su ...

  3. 腾讯云服务器搭建Apache/PHP/MySQL环境

    软件环境 Windows Server 2008 R2 企业版 SP1 64位 刚刚进入 Windows Server ,你会看到以下界面: 列出了服务器的基础信息和常用配置 下载 XAMPP htt ...

  4. Linux操作系统Centos7.2版本搭建Apache+PHP+Mysql环境

    对于在校大学生来说腾讯云1元主机很划算,所以就申请了一台,打算在上面学习下linux,使用版本为centos7.2版本.在服务器上比较推荐centos,此版本生命周期较长,而且网上有关centos的教 ...

  5. Docker快速搭建PHP+Nginx+Mysql环境(https://notemi.cn/docker-quickly-set-up-php-nginx-mysql-environment.html)

    目录 1 · 目标 2 · 安装Docker 3 · 创建资源文件夹 4 · 部署Mysql · 1. 拉取镜像 · 2. 运行容器 · 3. 进入容器 · 4. 开启Mysql远程连接 5 · 部署 ...

  6. linux上搭建nginx+php+mysql环境详细讲解

    1.mysql安装 #安装编译环境 yum install -y gcc gcc-c++ gcc-devel g++ g++-devel; yum install -y wget yum instal ...

  7. 云服务器搭建JDK+Tomcat+MySQL环境

    一.首先租赁一台云服务器(阿里云服务器或者腾讯云服务器) 其实可以在windows电脑上使用VMware workstation来安装虚拟机进行操作,毕竟云服务器低配也是很贵的.不过可以使用学生价去租 ...

  8. windows下搭建nginx+php+mysql环境

    一.下载需要的东西 1.nginx:http://nginx.org/en/download.html 2.php:http://php.net/downloads.php 3.mysql:(暂时先不 ...

  9. Mac下搭建Apache+PHP+MySql运行环境

    https://www.cnblogs.com/xiaovw/p/8854896.html 前言 我们在Mac上搭建Apache+PHP+MySql环境是非常方便的,因为Mac预装的有Apache和P ...

随机推荐

  1. Heartbeat+DRBD+NFS 构建高可用的文件系统

    1.实验拓扑图 2.修改主机名 1 2 3 vim /etc/sysconfig/network vim /etc/hosts drbd1.free.com     drbd2.free.com 3. ...

  2. ArrayList Iterator remove java.lang.UnsupportedOperationException

    在使用Arrays.asList()后调用add,remove这些method时出现 java.lang.UnsupportedOperationException异常.这是由于Arrays.asLi ...

  3. date命令--修改linux系统时间

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...

  4. 用FSM写Case,玩过没?

    一.引言 测试工程师小新一是一名安卓客户端测试工程师,对于安卓客户端的功能测试.自动化测试和性能测试方面都有着非常丰富的经验.最近小新一被通知负责某二手交易APP的功能测试,在初步了解了该APP后,小 ...

  5. 自动化测试实施的几个idea

    UI检查.测试的一个idea 在电子商务网站中, 为达到较好的用户体验, 可能页面上会有大量的UI设计,一堆css.ajax效果等,敏捷开发中, UI变动更是带来了测试的苦恼.对于回归组catch U ...

  6. vs2010常用快捷方式

    1.注释 直接打三个"///"就会出现 /// <summary> ///非方法体上 /// </summary> MusicStoreEntities s ...

  7. shell脚本应用(2)--变量,数值和字符串

    变量 定义,赋值: var=value 引用 $var,${var} 特殊变量 $?上条命令状态 $*/$@所有参数列表 $#参数个数 $0执行的命令名称 $1/${10}第1/10个参数 数值运算 ...

  8. SharePoint服务器将连接配置数据库的连接字符串保存在什么地方?

    经常有人问我这个问题,SharePoint服务器将连接配置数据库的连接字符串保存在什么地方?虽然其他SharePoint服务器场设置都是保存到了配置数据库里面,但连接配置数据库本身的连接字符串,肯定是 ...

  9. 【解决】hbase regionserver意外关机启动失败 [main] mortbay.log: tmpdir java.io.IOException: Permission denied

    错误信息: 015-12-24 10:57:26,527 INFO  [main] mortbay.log: jetty-6.1.26.cloudera.4 2015-12-24 10:57:26,5 ...

  10. POJ2479,2593: 两段maximum-subarray问题

    虽然是两个水题,但是一次AC的感觉真心不错 这个问题算是maximum-subarray问题的升级版,不过主要算法思想不变: 1. maximum-subarray问题 maximum-subarra ...