ftp虚拟用户,以mysql的方式储存账号数据

本次搭建用两台主机,ftp获取账号数据从远端数据库上获取

192.168.0.106 mysql

192.168.0.104 vsftpd

在192.168.0.106创建数据库vsfftpd表users,并授权用户vsftp

安装mysql数据库:yum install -y mysql-server mysql-devel

ftp虚拟用户,以mysql的方式储存账号数据_第1张图片

创建数据库并授权用户select的权限:

ftp虚拟用户,以mysql的方式储存账号数据_第2张图片

grant select on vsftpd.* to vsftp@'192.168.%.%' identified by '123456': 表示允许用户vsftp密码为123456从以192.168.开头的地址查看vsftpd数据库下所有的表的权限

flush privileges重读授权表;

创建表users字段有id自动增长为主键,name用户名,password密码;

create table users( id int unsigned not null auto_increment primary key, name varchar(50) binary not null, password char(48) binary not null)

插入两条数据insert into users(name,password) values('admin',password('123456')), ('user',password('123456'));

password('123456')表示以mysql内部函数password加密密码

ftp虚拟用户,以mysql的方式储存账号数据_第3张图片

先在vsftpd服务器上测试是否能够连上mysql

ftp虚拟用户,以mysql的方式储存账号数据_第4张图片

编辑/etc/pam.d/vsftpd.mysql加入如下内容:

auth required pam_mysql.so user=vsftp passwd=123456 host=192.168.0.106 db=vsftpd table=users usercolumn=name passwdcolumn=pass
word crypt=2
account required pam_mysql.so user=vsftp passwd=123456 host=192.168.0.106 db=vsftpd table=users usercolumn=name passwdcolumn=p
assword crypt=2

建立虚拟用户映射的系统用户及对应的目录
# useradd -s /sbin/nologin -d /var/ftproot vir
# chmod go+rx /home/ftp

ftp虚拟用户,以mysql的方式储存账号数据_第5张图片

然后编辑vsftpd.conf文件增加如下内容:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES开启本地用户不能切换目录
guest_enable=YES
guest_username=vir

pam_service_name=vsftpd.mysql

ftp虚拟用户,以mysql的方式储存账号数据_第6张图片

配置权限文件使不同用户拥有不同权限:

virtual_use_local_privs=NO表示权限与匿名用户权限一样
write_enable=YES可查看
anon_world_readable_only=NO可下载
anon_mkdir_write_enable=YES可创建目录
anon_other_write_enable=YES可重命名,删除目录
anon_upload_enable=YES可上传文件

在vsftpd.conf文件中加入user_config_dir=/etc/vsftpd/vsftpd_user_conf/指明虚拟用户权限文件所在目录

/etc/vsftpd/vsftpd_user_conf目录在创建与虚拟用户同名的文件

admin:

virtual_use_local_privs=NO
write_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES

ftp虚拟用户,以mysql的方式储存账号数据_第7张图片

user:

anon_world_readable_only=NO

anon_upload_enable=YES

write_enable=YES

ftp虚拟用户,以mysql的方式储存账号数据_第8张图片

测试:

ftp虚拟用户,以mysql的方式储存账号数据_第9张图片

ftp虚拟用户,以mysql的方式储存账号数据_第10张图片

 

 

 

 

你可能感兴趣的:(linux运维)