mysql实验创建用户表示_实验-----基于MYSQL验证的vsftpd虚拟用户

一、安装需要的包和包组:

(1)在数据库服务器上安装包:

Centos7:在数据库服务器上安装

yum -y install mariadb-server   安装包

systemctl start mariadb       启动服务

systemctl enable mariadb     设置开机启动

mysql_secure_installation     运行安全脚本,设置root管理员及密码

Centos6:在数据库服务器上安装

yum -y install mysql-server    安装包

service mysqld start       启动服务

chkconfig mysqld on         设置开机启动

mysql_secure_installation     运行安全脚本,设置root管理员及密码

(2)在FTP服务器上安装vsftpd和pam_mysql包:

Centos6:pam_mysql由epel6的源提供,可直接安装

yum install vsftpd pam_mysql

Centos7:无对应rpm包,需手动编译安装

①yum -y groupinstall "Development Tools"      安装开发包组

yum -y install mariadb-devel pam-devel vsftpd  安装必要的包

②下载pam_mysql-0.7RC1.tar.gz

解压tar xvf pam_mysql-0.7RC1.tar.gz

③编译安装pam_mysql

cd pam_mysql-0.7RC1/

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

make && make install

二、在FTP服务器上创建系统用户

①useradd -d  /app/ftpdir -r -m ftpuser   创建系统用户

②mkdir /app/ftpdir;chmod 555 /app/ftpdir  除去ftp根目录的写权限才能登陆

三、在数据库服务器上创建虚拟用户账号

1.建立存储虚拟用户数据库(vsftpd)和连接的数据库用户(ftpuser)

①mysql -uroot -p123456         登陆数据库

②mysql> CREATE DATABASE vsftpd;  创建数据库vsftpd

③授权用户对数据库vsftpd有查询权限:

ftp服务和mysql不在同一主机:

mysql> GRANT SELECT ON vsftpd.* TO ftpuser@'192.166.199.%' IDENTIFIED BY '123456';

ftp服务和mysql在同一主机:

mysql> GRANT SELECT ON vsftpd.* TO ftpuser@localhost IDENTIFIED BY '123456';

2.准备相关表(ftpusers)

mysql> USE vsftpd;

vsftpd> CREATE TABLE ftpusers (name CHAR(50),pass CHAR(50));

cd9d5ef81c024eb30b989c1e2f506b5d.png

3.添加虚拟用户

根据需要添加所需要的用户,为了安全应该使用PASSWORD函数加密其密码后存储

mysql> INSERT INTO ftpusers values(‘ftp1',password('123456')); 添加ftp1用户

mysql> INSERT INTO ftpusers values(‘ftp2',password('123456')); 添加ftp2用户

mysql> SELECT * FROM ftpusers; 查看表ftpusers,可看到两个用户已添加

80db46bfc47ab60728085262271af275.png

四、在FTP服务器上配置vsftpd服务

1、在FTP服务器上建立pam认证所需文件

vim /etc/pam.d/vsftpd.mysql

添加如下两行

auth required pam_mysql.so user=ftpuser passwd=123456 host=192.168.199.134 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2

account required pam_mysql.so user=ftpuser passwd=123456 host=192.168.199.134 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=pass crypt=2

字段说明:

auth           表示认证

account          验证账号密码正常使用

required         表示认证要通过

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

user=ftpuser       登录mysql的用户

passwd=123456       登录mysql的的密码

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

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

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

usercolumn=name      当做用户名的字段

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

crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql password()函数加密,3表示md5加密,4表示sha1加密。注意:参考README文档,选择正确的加密方式

2、修改vsftpd配置文件,使其适应mysql认证

vim /etc/vsftpd/vsftpd.conf

确保已经启用了以下选项:

anonymous_enable=YES

添加下面项:

guest_enable=YES

guest_username=ftpuser

user_config_dir=/etc/vsftpd/conf.d/  作为每个用户单独的配置文件的路径,下面会创建

修改下面一项,原系统用户无法登录:

pam_service_name=vsftpd.mysql

五、启动vsftpd服务

Centos6:service vsftpd start

Centos7:systemctl start vsftpd

查看端口开启情况

ss -ntlp|grep 21

1e344d75a13f67b98d55bff3bc60c5bc.png

六、在FTP服务器上配置虚拟用户具有不同的访问权限

说明:vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可。

创建所需要目录,并为虚拟用户提供配置文件

1、创建目录:mkdir /etc/vsftpd/conf.d/ 虚拟用户配置文件所在的目录

2、为ftp1提供配置文件

①vim /etc/vsftpd/conf.d/ftp1      编辑ftp1的配置文件

anon_upload_enable=YES    允许上传

②mkdir /app/ftpdir/upload      创建子目录,使ftp1可以在该目录上传文件

③setfacl -m u:ftpuser:rwx /app/ftpdir/upload  给予ftp1对该目录rwx权限

ftp1用户实现效果:ftp1用户登陆就能进到upload里面上传文件了

3、为ftp2提供配置文件

①vim /etc/vsftpd/conf.d/ftp2

local_root=/app/ftpdir2   登录目录改变至指定的目录(/app/ftpdir2)

②mkdir /app/ftpdir2;chmod 555 /app/ftpdir2  登陆根目录不能有w权限

③touch /app/ftpdir2/hello

ftp2用户实现效果:ftp2用户登陆就能使用ls看到hello文件了

4、重启vsftpd服务

systemctl restart vsftpd

七、测试效果图如下:

f6ffc78f3349980c9ecf78ae948a97c2.png

ccb51fd7f52e5631a2379d6801b3b8c8.png

感谢浏览,如有不同意见,欢迎留言。

1e60aa0d35594fd7837f20fa10cf4c23.gif

本文转自lc0108131451CTO博客,原文链接: http://blog.51cto.com/13150617/1976558,如需转载请自行联系原作者

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值