创建FTP账户有多种方式:

1.创建系统用户

2.创建虚拟用户(基于文件或者数据库),这里主要介绍基于mysql数据库的虚拟用户

步骤一:首先安装mysql与FTP

1.安装mysql:  sudo apt-get install mysql-server  mysql-client  libmysqlclient-dev(或者选择源码安装方式)

2.安装FTP:sudo apt-get install vsftp

步骤二:安装pam_mysql

安装方式1:sudo apt-get install pam_mysql

安装方式2:源码编译安装:

下载链接:https://sourceforge.net/projects/pam-mysql/files/?source=navbar

解压:

tar -xzvf  pam_mysql-0.7RC1.tar.gz

cd pam_mysql-0.7RC1

./configure --with-pam-mods-dir=/lib/security/

如果是源码编译安装的mysql,需要指定mysql安装路劲,如下:

./configure --with-mysql=/usr/local/mysql/ --with-pam-mods-dir=/lib/security/

make

make install

安装过程中会遇到几个常见依赖错误,具体解决方式,随后补发,需要的同学,可以查看本人,下篇文章

另外,在最后启动ftp,登录的时候会遇到一个ubuntu16的系统BUG(其他linux系统没有此BUG),解决方式也见下一章

步骤二:

完成上面安装步骤之后,现在来配置虚拟用户:

1.进入mysql服务,创建一个数据库,并创建一张数据表用来存储虚拟用户账户、密码

mysql -uroot -p (进入数据库服务)

2.建数据库与数据表

create database vsftpd;

use vsftpd;

create table users(name char(16) binary,passwd char(16) binary);

插入一条测试数据

insert into users (name,passwd) values ('test','123456');

3.将users表查询权限付给一个系统用户:

GRANT select on vsftpd.* to vsftpd@localhost identified by '123456';

grant select on vsftpd.* to vsftpd@127.0.0.1 identified by '123456';

(此时系统用户还未创建,稍后创建)

exit;

4.创建一个系统用户:

sudo useradd vsftpd -d /home/vsftpd -s /bin/false (这用户与刚才mysql授权用户必须同名)

5.编辑FTP配置文件:

sudo vim /etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_umask=022

umask是在linux中常见的一个东西,它其实是一个掩码。当然,也有umask这样一个命令,它是对用户建立的文件的默认属性的定义。该定义为: 假设umask为022,则对于一个文件夹的话,它的默认属性为 777-022=755,这也就是我们平时建立文件夹的权限。而对于一般的文件的话,则是用 666-022=644. 这个umask在其他地方也经常见到,比如vsftpd中有 local_umask 和 anon_umask, 分别控制着本地用户和匿名用户所建立的文件的属性。

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=20
ftpd_banner=Welcome to Daiyuechuan's FTP server.
listen_port=21
local_enable=YES
pasv_min_port=40000
pasv_max_port=40999
####下面配置很重要

pam_service_name=vsftpd #该用户为系统用户

guest_enable=YES
guest_username=vsftpd
allow_writeable_chroot=YES
chroot_local_user=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
virtual_use_local_privs=YES
#这个是动态模板配置,有了下面两行就不需要再给每个虚拟用户弄一个配置文件了,

否则,每添加一个虚拟用户,就添加一个配置文件,最后还得重启,这个就相当的不work了,

这里的USER是虚拟用户名,所以在你的,ftp访问根目录下,必须建一个与USER同名的目录,否则,提示找不到路径

本人ftp跟目录以    /ftp_dir  为例

user_sub_token=$USER
local_root=/ftp_dir/$USER

6.编辑pam_mysql 配置文件:

sudo vim /etc/pam.d/vsftpd

1.删除里面所有

2.添加两行

auth required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
account required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0

# 注意:
crypt=0: 明文密码
crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
crypt=2: 使用MYSQL中的password()函数加密
crypt=3:表示使用md5的散列方式#上面是两句配置,第一句是以auth开始的,第二句以account开始的。

7.重启FTP服务:

sudo service vsftpd restart

8.测试登录:

ftp localhost

以后每新增一个虚拟用户,只需要创建一个目录即可。。。。

另外,在最后启动ftp,登录的时候会遇到一个ubuntu16的系统BUG(其他linux系统没有此BUG),解决方式也见下一章

vsftpd虚拟账户(虚拟用户,ubuntu16,舍弃虚拟用户配置文件)相关推荐

  1. linux mysql 邮件_linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件...

    linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件 使用虚拟用户收发邮件安装 九.安装Courier authentication lib ...

  2. linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件...

    linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件 使用虚拟用户收发邮件安装 九.安装Courier authentication lib ...

  3. 配置vsftpd的遇到的坑及搭建虚拟账户

    配置vsftpd的遇到的坑及搭建虚拟账户 vsftpd是Very secure FTP 的简写,是一款非常安全的FTP软件.支持IPV6及SSL加密. vsftpd特性: 安全,高速,稳定 基于IP的 ...

  4. vsftpd的虚拟账户配置

    1). yum -y install vsftpd db4-utils 2). 建立系统账号      useradd virftp -s /sbin/nologin 3). 建立虚拟账户       ...

  5. vsftpd创建虚拟用户,解决本地用户不安全问题,增强服务器安全性

    转载来源 : vsftpd创建虚拟用户,解决本地用户不安全问题,增强服务器安全性 : 摘要: 前面两篇介绍VSFTPd服务器的匿名用户和本地用户访问,基本满足文件的上传下载任务,今天给大家说说虚拟用户 ...

  6. FTP虚拟账户的创建(1)

    FTP虚拟账户的创建(1) 一个系统的本地账户当然是越少越好,可有的时候偏偏需要很多账户来提供给用户使用,就比如这个FTP服务,这个时候虚拟账户就能很好的排上用场了,它只需要一个系统账户即可蓄念n个F ...

  7. linux 查看ftp账户,linux的ftp服务之本地访问浏览与虚拟账户

    限制本地用户浏览根目录 /etc/vsftpd/vsftpd.conf 功能:所有用户被锁定到自己的加目录中(修改之前不仅可以在自己家目录,还可以看其他) 编辑限制浏览根目录用户 vim /etc/v ...

  8. Debian搭建ftp服务并使用虚拟账户登录

    在Debian Buster中配置vsFtpd并使用虚拟用户 (ineko.cc) 首先贴上原贴,本文的内容都是受到这篇文章的启发,感谢这篇文章的作者,我找了两三个小时的资料,最后还是这篇文章完美的解 ...

  9. 使用FTP协议的服务,包括匿名用户验证访问,用户验证访问,虚拟用户验证访问等

    目录 1.FTP服务概述 2.在服务端安装vsftpd程序 3.基于匿名用户验证访问的 FTP 服务 4.测试匿名 FTP服务 5.基于用户验证访问的FTP服务 6.基于用户验证访问的FTP服务的测试 ...

  10. CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP虚拟账户

    一.前言 继写下<PHP下利用PHPMailer配合QQ邮箱下的域名邮箱发送邮件>一文已有一年之久,随着时间的流逝,此文中的一些解决方案逐渐暴露出了一个限制性问题,也就是通过smtp连接Q ...

最新文章

  1. 加密与解密以及openssl的应用
  2. zblog php标签,201502200101 zblogphp调整“显示常用标签”个数方法
  3. 2.3.3 进程互斥的硬件实现方法
  4. 学习asp.net ajax 笔记(一)
  5. RabbitMQ简介以及应用
  6. Linux颜色所代表的文件类型
  7. 【原】UCS-2和UTF-8的互相转换
  8. SAP Cloud for Customer Price-计价简介 1
  9. 微信小程序-简易计算器
  10. 《人月神话》——一部被名字误导的软件开发的书——第一次阅读
  11. Android 自定义控件 Demo合集
  12. C语言实现简易五子棋
  13. 耳机电声测试仪软件,CLIO 11电声测试仪
  14. 华为od面试java经历
  15. 美国大学计算机专业排名2014,2013-2014USNews美国大学计算机工程专业研究生排名...
  16. 拍卖系统业务演进过程(一)
  17. 条件变量基本概念和原理
  18. node.js毕业设计联影医疗器械管理系统小程序(源码+程序+LW+部署)
  19. SM5202高性能版TP4056,SOP8/EMSOP8线性1A单节锂电充电管理芯片SM5202性能浅析
  20. halcon学习地址

热门文章

  1. LUA提取免费迅雷账号
  2. Java将英文句子分解为单词
  3. 【转载】《武学求真录》和《逝去的武林》及《老拳师的故事》 -3
  4. 从零开始编写minecraft光影包(1)基础阴影绘制
  5. visual studio C++冒号:与双冒号::的使用说明
  6. 2020年中国干旱灾害受灾面积、饮水困难人口数量及造成经济作物损失分析[图]
  7. 访问路由出现An error occurred
  8. Oracle字符集的简单图解,中文乱码解决
  9. 两台路由器的连接方法和无线路由桥接
  10. 辛意云教授讲《论语》