为ftp增加mysql认证
1.安装vsftpd,此处可yum安装或源码安装;
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了墨玉免费建站欢迎大家使用!
2.安装MySQL,略过,可查看之前文档;
3.安装pam-mysql,依赖pam-devel包;
[root@WebA-136 ~]#tar xf pam_mysql-0.7RC1.tar.gz
[root@WebA-136 ~]#yum install pam-devel
[root@WebA-136 ~]#./configure --with-mysql=/usr/local/mysql --with-openssl
[root@WebA-136 ~]#make && make install
[root@WebA-136 ~]#less README
[root@WebA-136 ~]#vim /etc/pam.d/vsftpd.mysql
[root@WebA-136 ~]#cat /etc/pam.d/vsftpd.mysql
[root@WebA-136 ~]#auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=192.168.146.136 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=3 md5=yes
[root@WebA-136 ~]#account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=192.168.146.136 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=3 md5=yes
再配置数据库
create database vsftp;
grant selcet on vsftp.* to vsftpd@192.168.146.136 identified by '123456';
创建表
create table users(
id smallint auto_increment not null,
name char(20) binary not null,
password char(48) binary not null,
primary key(id))
;
查看表结构
desc users;
此处还需要插入虚拟用户
INSERT INTO users(name,password)VALUES('tom',md5(123456)),('jack',md5(123456));
4.修改vsftpd.conf配置文件,使其适用于mysql认证
首先创建用户
useradd -s /sbin/nologin -d /var/ftp-test vsftp
chmod go+rx /var/ftp-test
确保vsftpd.conf中打开以下选项
[root@WebA-136 ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
增加以下选项
guest_enable=YES
guest_username=vsftpd######所有的虚拟用户 都必须映射到一个指定的用户上。
listen=YES
pam_service_name=vsftpd.mysql
注:可根据不同的虚拟用户实现不同的访问权限设置
在vsftpd.conf中新增
user_config_dir=/etc/vsftpd/test
在/etc/vsftpd/test目录下增加与虚拟用户同名的文件
cd /etc/vsftpd/test
vim tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
vim jack
anon_upload_enable=NO
anon_mkdir_write_enable=NO
文章题目:为ftp增加mysql认证
文章网址:http://scgulin.cn/article/gisccj.html