您的位置:首页 > 数据库 > SQL

创建基于mysql的ftp虚拟用户

2017-10-28 16:53 295 查看
实验环境:需要两台主机
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 'ftp'@'172.17.166.166' identified by 'centos';(给ftp@172.17.166.166授权)二、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登录测试

当看到这个状态时候,证明ftp1测试成功
用ftp2登录测试


当看到这个状态时,证明ftp2也没问题。那么恭喜你,已经成功搭建好基于mysql的ftp!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql ftp 搭建