ftp基于mysql_创建基于mysql的ftp虚拟用户

实验环境:需要两台主机

1、一台mariadb server

2、一台ftp server

一、mariadb服务器

1、安装mariadb包

yum install mariadb-devel

2、跑下安全脚本

mysql_secure_installation

3、创建数据库

mysql -uroot -p

>create database vsftpd;

>use vsftpd

>create table ftpusers(name char(30),pass char(50));(创建表)

>insert ftpusers values(‘ftp1‘,password(‘centos‘)),(‘ftp2‘,password(‘magedu‘));(添加表内容)

>grant select on vsftpd.ftpusers to [email protected] identified by ‘centos‘;([email protected])

二、ftp服务器

1、安装包组以及所需要的包

yum groupinstall "development tools"

yum install mysql-devel pam-devel

2、编译安装 pam_mysql-0.7RC1.tar.gz

tar xvf pam_mysql-0.7RC1.tar.gz

cd pam_mysql-0.7RC1

./configure --with-pam-mods-dir=/lib64/security --with-pam=/usr

make  && make install

3、创建用户

useradd -d  /app/ftpdir -r -m ftpuser (创建系统用户,使所有用户访问都指向ftpuser)

4、编写模块配置文件

vim /etc/pam.d/vsftpd.mysql

auth required pam_mysql.so user=ftp passwd=centos host=172.17.177.177 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2

account required pam_mysql.so user=ftp passwd=centos host=172.17.177.177 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2

其中选项为:

auth 表示认证

account 验证账号密码正常使用

required 表示认证要通过

pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路径而言,也可以写绝对路径;后面为给此模块传递的参数

user=vsftpd为登录mysql的用户

passwd=magedu 登录mysql的的密码

host=mysqlserver mysql服务器的主机名或ip地址

db=vsftpd  指定连接msyql的数据库名称

table=users 指定连接数据库中的表名

usercolumn=name 当做用户名的字段

passwdcolumn=password 当做用户名字段的密码

crypt=2 密码的加密方式为mysql password()函数加密

5、更改ftp配置文件

vim /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.mysql 修改

再加下面行

guest_enable=yes(开启指定用户选项)

guest_username=ftpuser(指定用户)

user_config_dir=/etc/vsftpd/conf.d/(指定目录,使其每个虚拟用户的权限不同)

6、创建目录

mkdir /etc/vsftpd/conf.d/

cd /etc/vsftpd/conf.d/

vim /etc/vsftpd/conf.d/ftp1

anon_upload_enable=yes(允许ftp1上传文件)

vim /etc/vsftpd/conf.d/ftp2

local_root=/app/ftpdir2(指定ftp2的根文件为/app/ftpdir2)

7、设置权限

cd /app

chmod 555 /app/ftpdir/(根目录不能有写权限)

mkdir /app/ftpdir/upload

chown ftpuser /app/ftpdir/upload

mkdir /app/ftpdir2

chmod 555 /app/ftpdir2

三、测试是否成功

用ftp1登录测试

6bc415cab6465e9ba86eae68000993e6.png当看到这个状态时候,证明ftp1测试成功

用ftp2登录测试

b41e3a96543d2ca2fd33ef8dea3020c3.png

当看到这个状态时,证明ftp2也没问题。那么恭喜你,已经成功搭建好基于mysql的ftp!!!!

原文:http://13296637.blog.51cto.com/13286637/1977053

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值