vsftpd虚拟用户搭建

vsftpd虚拟用户搭建

1.安装vsftpd等一系列的安装包

yum install vsftpd mariadb-server mariadb-devel pam-devel -y

2.安装pam_mysql

下载:pam_mysql-0.7RC1.tar.gz
wget -c ftp://172.16.0.1/pub/Sources/sources/pam/pam_mysql-0.7RC1.tar.gz


./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
make && make install

3.编辑mysql

cp /etc/my.cnf.d/mysql-server.cnf{,.back}
vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
innodb_file_per_table = 1
log-bin=mysql-bin
skip_name_resolve=1

4.启动mysql,添加一下数据库,表,插入数据等

create database vsftpd;#建立虚拟用户数据库,库名vsftpd
use vsftpd; #进入vsftpd数据库
create table users(id int unsigned not null auto_increment primary key, name varchar(100) not null,password varchar(48) not null,unique key(name));  #建立虚拟用户口令表,表名users,插入数据                        
insert into users (name,password) values ('srayban',password('123456')), ('test',password('123456'));
#授权vsftpd这个账号可以读取vsftpd数据库的user表                                                            
grant all on vsftpd.users to 'vsftpd'@'localhost' identified by '123456'
flush privileges;
#查看一下用户
select * from users;

5.配置vsftpd.conf(设置虚拟用户配置项)

cp /etc/vsftpd/vsftpd.conf{,.back}
vim /etc/vsftpd/vsftpd.conf                           
guest_enable=YES                          #开启虚拟用户
guest_username=vuser                 #FTP虚拟用户对应的系统用户,需要创建系统用户
pam_service_name=vsftpd.vusers             #PAM认证文件   这里是手动建立的pam认证文件名

6.创建系统用户vuser

mkdir /ftproot/vuser
useradd  -d /ftproot/vuser vuser
chown -R vuser:vuser /ftproot/vuser
chmod a-w  /ftproot/vuser

7.提供配置文件:/etc/pam.d/vsftpd.vusers

vim /etc/pam.d/vsftpd.vusers  

auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2




这里需要注意的是user和passwd填写的是授权数据库访问账号和密码

crypt=0:表示口令使用明文方式保存在数据库中
crypt=1:表示口令使用UNIX的DES加密方式加密后保存在数据库中
crypt=2:表示口令使用MySQL的password()函数加密后保存在数据库中
crypt=3:表示口令使用MD5散列值的方式保存在数据库中
  1. 重启vsftpd服务
systemctl restart vsftpd

9.注意,我们在登录的时候,是把mysql账号的用户映射成,系统用户vuser,所以我们同样需要拿走vuser的写权限

chmod a-w  /ftproot/vuser

10.虚拟用户的写权限,通过匿名一样的指令进行定义; 还能实现不同的用户有不同的权限; 在/etc/vsftpd/vsftpd.conf 后面添加

user_config_dir=/etc/vsftpd/vusers_config/

我们创建该目录
mkdir -p /etc/vsftpd/vusers_config/
vim srayban
anon_upload_enable=YES

vim test
anon_upload_enable=YES
anon_mkdir_write_enable=YES

11.登录测试ok

原创文章,作者:srayban,如若转载,请注明出处:http://www.178linux.com/77611

(0)
sraybansrayban
上一篇 2017-06-05
下一篇 2017-06-06

相关推荐

  • DNS基础知识

    一、DNS介绍:   1、DNS: Domain  Name Service,域名解析服务;      部署方式为分布式部署,如图所示:        2、查询类型:     递归查询:仅发出一次请求,要求对方回复最终结果&nbs…

    Linux干货 2015-05-18
  • 计算机操作系统与简单命令

    计算机系统的组成 硬件:主机(cpu、内存等),外部设备(输入设备键盘鼠标、输出设备显示屏;硬软盘   等等)。 软件:主要由操作系统和应用程序构成。 计算机硬件的组成部分及工作流程图 输入设备——存储器——CPU运算——输出设备   服务器主要分类有: 塔式服务器:立式PC相像 机架式服务器:统一标准宽度19英寸(48.26c…

    Linux干货 2017-02-14
  • centos7 root密码忘记怎么修改

           对于事务繁忙或者容易忘东忘西的朋友说,想要记着一些事情总感觉比登天还要难,特别是像密码之类的。可能要记忆的密码太多,总是不经意间就把密码忘记或者把密码混淆。总之这种站的比例还是有点分量的,例如我刚刚接触Linux时 ,第一把centos7装到电脑上没有多久,就把root密码忘记了,费了好时间,也请教了很多…

    Linux干货 2017-04-03
  • 记事本操作的小小小技巧

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/140063       大家在查看文本文件的时候,如果内容很多,想快速到达某一位置可能比较麻烦,这时如果按住shift,再点击右侧…

    Linux干货 2015-03-26
  • linux基础之lvm操作流程

    linux基础之lvm基本操作流程    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装L…

    2017-03-19
  • linux命令的使用格式

    Linux命令的一般格式为: [root@node1 ~]#command [选项] [参数] 1、ifconfig 设备 参数 参数: up:启动指定设备 down:关闭指定设备 arp:指定设备是否支持ARP协议 -a:显示全部接口信息 例如:[root@node1 ~]#ifconfig eth0 up #启动eth0网卡 2、echo打印 &nbsp…

    Linux干货 2016-09-17