1、使用yum 方式安装MySQL

#yum -y install mysql mysql-servermysql-devel

2、启动 MySQL 服务并修改MySQL 管理员密码

#service mysqldstart

#mysql_secure_installation// 设置一下root管理员密码

3、创建MySQLvsftpd验证的数据库与表

[root@vsftpd ~]# mysql -u root –p

Enter password:    //此处输入vsftpd为刚刚为MySQL设置的管理员密码


mysql> create database vsftpd;  //创建一个vsftpd的数据库

Query OK, 1 rowaffected (0.00 sec)

mysql> use vsftpd;     //使用vsftpd数据库

mysql> create table users (

>id INT NOT NULL AUTO_INCREMENT PRIMARYKEY,

>name CHAR(15) NOT NULL UNIQUE KEY,

>passwordCHAR(48) NOT NULL );   //创建一个3个列位的users表,一个id用于索引,name用于账户名,password用户设置密码

mysql> insert into users(name,password) values ('oracle',password('oracle'));   //添加一个oracle账户,密码为oracle,并加密存储密码,此账户是为了等下登录FTP服务器用

4、创建一个vsftpdMySQL账户用于检索vsftpd数据库

mysql> grant select on vsftpd.* to vsftpd@localhostidentified by 'vsftpd';    //创建一个只有select vsftpd数据库下所有表的权限的MySQL账户并将密码设为vsftpd

mysql> flush privileges;  //只为使权限即时生效

.安装并配置PAM模块

1、安装依赖库

[root@vsftpd ~]# yum -y install gccgcc-c++ make pam pam-devel openssl openssl-devel

2、下载并安装pam_mysql

[root@vsftpd ~]# wget http://nchc.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz

[root@vsftpd ~]# tar zxvf pam_mysql-0.7RC1.tar.gz

[root@vsftpd ~]# cd pam_mysql-0.7RC1

[root@vsftpdpam_mysql-0.7RC1]# ./configure --with-openssl

[root@vsftpdpam_mysql-0.7RC1]# make

[root@vsftpd pam_mysql-0.7RC1]# make install

pam文件默认安装到/lib 目录下,若系统为64位系统,需要将文件复制一份到/lib64 目录下

[root@vsftpd ~]# cp /lib/security/pam_mysql.*/lib64/security/


3、创建认证文件

[root@vsftpd ~]# vim /etc/pam.d/vsftpd.mysql

auth required /lib64/security/pam_mysql.souser=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2

account required/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpdtable=users usercolumn=name passwdcolumn=password crypt=2

注意:这里是2行,不可以换行.另外还要注意里面相应栏位的填写。

特别说明下crypt选项

crypt=0:明文密码

crypt=1:使用 crpyt()函数(对应 SQL 数据里的 encrypt()encrypt()随机产生 salt)

crypt=2:使用 MYSQL 中的 password()函数加密

crypt=3:表示使用 md5 的散列方式

user passwd 用户名密码当然你也可以随便设置,不过需要在mysql 里面赋予查询权限。

.vsftpd的安装与设置

1、使用yum方式安装vsftpd

[root@vsftpd ~]# yum -y install vsftpd

2、备份vsftpd的配置文件

[root@vsftpd ~]# cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.bak

3、修改vsftpd.conf

anonymous_enable选项改为anonymous_enable=NO

pam_service_name选项改为pam_service_name=vsftpd.mysql   //这里更改为上面创建的认证文件名

并添加如下:

virtual_use_local_privs=YES

user_sub_token=$USER

local_root=/home/share/$USER

guest_enable=YES

guest_username=vsftpd

chroot_local_user=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf

4、创建一个vsftpd服务的宿主用户vsftpd账户 (注:账户可以任意取)

[root@vsftpd ~]# useradd -s /sbin/nologin -d /home/share/vsftpd

5、在/etc/vsftpd/下面创建一个vsftpd_user_conf目录

[root@vsftpd ~]# mkdir/etc/vsftpd/vsftpd_user_conf


6、将MySQL服务器及vsftpd服务器开机启动


[root@vsftpd ~]# chkconfig  --level 35 mysqld on

[root@vsftpd ~]# chkconfig  --level 35 vsftpd on

7定制虚拟用户配置文件模版

[root@vsftpd ~]# vim/etc/vsftpd/vsftpd_user_conf/userclone.tmp

local_root=/home/share/

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=300

data_connection_timeout=90

max_clients=10

max_per_ip=110

local_max_rate=525000

                  ______________________________________________________

8、复制用户模版给用户

[root@vsftpd ~]#cd /etc/vsftpd/vsftpd_user_conf

[root@vsftpd ~]#cp userclone.tmp oracle

[root@vsftpd ~]#vimoracle

local_root=/home/share/ 改为 local_root=/home/share/oracle


9、开启iptables 防火墙

[root@vsftpd ~]#iptables -A INPUT -p tcp --dport 21 -j ACCEPT

[root@vsftpd ~]#iptables -A INPUT -p tcp --dport 23 -j ACCEPT

[root@vsftpd ~]#iptables-save > /etc/sysconfig/iptables

[root@vsftpd ~]# service iptables start

iptables: Applyingfirewall rules:                        [  OK  ]

[root@vsftpd ~]#setsebool -P allow_ftpd_full_access 1

// 设置 SElinux 允许 ftp用户访问

10、创建 oracle 用户登录目录

[root@vsftpd ~]#mkdir /home/share/oracle

[root@vsftpd ~]# chown –R vsftpd:vsftpd /home/share

11、现在可以使用oracle用户进行登录了。