首先配置好编译环境,另安装mysql-5.5.25使用cmake编译安装,先按编译工具
- # tar xf cmake-2.8.8.tar.gz
- # cd cmake-2.8.8
- # ./bootstrap
- # make && make install
1、安装mysql:
- # groupadd -r mysql
- # useradd -g mysql -r -s /sbin/nologin -M -d /data/mysql mysql
- # tar xf mysql-5.5.25a.tar.gz
- # cd mysql-5.5.25a
- # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 指定mysql安装路径
- -DMYSQL_DATADIR=/data/mysql \ 存储数据路径
- -DSYSCONFDIR=/etc \ 配置文件路径
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 安装INNOBASE存储引擎
- -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ 安装ARCHIVE存储引擎
- -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 安装BLACKHOLE存储引擎
- -DWITH_READLINE=1 \ 使用绑定的readline
- -DWITH_SSL=system \ 支持SSL功能
- -DWITH_ZLIB=system \ 支持ZLIB压缩库
- -DWITH_LIBWRAP=0 \ 关闭LIBWRAP支持
- -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ 套接字的位置
- -DMYSQL_USER=mysql \ MYSQL用户
- -DDEFAULT_CHARSET=utf8 \ 指定utf8字符集
- -DDEFAULT_COLLATION=utf8_general_ci 指定排序规则
- # make && make install
2、配置mysql
- # cd /usr/local/mysql/
- # cp support-files/my-large.cnf /etc/my.cnf
- # cp support-files/mysql.server /etc/rc.d/init.d/mysqld
- # chmod +x /etc/rc.d/init.d/mysqld
- # chown -R .mysql .
- # scripts/mysql_install_db --user=mysql --datadir=/data/mysql
- # vim /etc/my.cnf
- thread_concurrency = 2
- datadir = /data/mysql
- # service mysqld start
- # vim /etc/ld.so.conf
- /usr/local/mysql/lib
- # ldconfig
- # export PATH=$PATH:/usr/local/mysql/bin/
3、配置mysql数据库
- 新建vsftpd库
- mysql> create database vsftpd;
- 授权vsftpd用户,并设置密码
- mysql> grant select on vsftpd.* to vsftpd@localhost identified by '123456';
- mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by '123456';
- 建立表
- mysql> use vsftpd;
- mysql> create table users ( id int AUTO_INCREMENT NOT NULL PRIMARY KEY, name char(20) NOT NULL UNIQUE KEY, password char(48) NOT NULL );
- 添加用户
- mysql> insert into users(name,password) values ('redhat',password('redhat')) , ('gentoo',password('gentoo'));
- mysql> flush privileges;
4、安装pam
- # tar xf pam_mysql-0.7RC1.tar.gz
- # cd pam_mysql-0.7RC1
- # ./configure --with-mysql=/usr/local/mysql/ --with-openssl
- # make
- # make install
5、安装vsftpd
- # yum -y install vsftpd
- 新建vsftp的pam认证文件
- # vim /etc/pam.d/vsftpd.mysql
- auth required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
- account required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
- 注:这里指定的是和mysql数据库有关的user=vsftpd passwd=123456是这vsftpd登录mysql的用户名密码
- db=vsftpd table=users usercolumn=name passwdcolumn=password分别指的是之前建立的vsftpd库,users表,name字段和password字段,crypt=2是指定mysql添加数据时password是加密的方式
- 修改vsftp配置文件,最后添加如下3行
- # vim /etc/vsftpd/vsftpd.conf
- guest_enable=YES
- guest_username=ftp
- pam_service_name=vsftpd.mysql
- # service vsftpd restart
6、测试,可以登录:
7、出现的问题:
# tail /var/log/messages
Jul 19 12:26:24 bogon vsftpd: PAM adding faulty module: /lib/security/pam_mysql.so
Jul 19 12:26:41 bogon vsftpd: PAM unable to dlopen(/lib/security/pam_mysql.so)
Jul 19 12:26:41 bogon vsftpd: PAM [error: libmysqlclient.so.18: cannot open shared object file: No such file or directory
这里的问题有可能一是pam_mysql.so的路径不再/lib/security/下,解决方法更改路径,
1.先更新一下系统数据库“updatedb”,
2.使用locate命令查找pam_mysql.so文件“locate pam_mysql.so“,我这边是这个路径”auth required /usr/src/pam_mysql-0.7RC1/.libs/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=3“
3.修改后报错解决
8、新建虚拟用户ftpuser:
- mkdir /etc/vsftpd/vconf
- vi ftpuser 输入以下内容
local_root=/var/ftp/ftpuser
write_enable=NO #权限可根据实践需求添加
本文出自 “改变从现在开始”http://peaceweb.blog.51cto.com/3226037/935209,在以上文章处修改一些错误,增加一些设置。