ftp:File Transfer Protocol,工作在应用层的文件传输协议,监听在tcp的21号端口;而ftp协议的实现有vsftpd、lftp、Filezilla、proftpd等等。

            ftp的用户一般由三类:

                匿名用户:不需要账号和密码就能直接登录

                本地用户:当前系统上非系统用户登录,即本地的普通用户

                虚拟用户:借助于其他的存储方式系统来远程登录,而非本地用户

            由于ftp的文件传输是明文的,不具有安全性;于是就有了一种安全的ftp协议的实现,那就是vsftpd

            vsftpd是ftp协议实现中的一种,它具有安全的文件传输环境,相比于ftp安全环境高了很多。vsftp的主程序在/usr/sbin/目录下;配置文件为/etc/vsftpd/vsftpd.conf。可以修改vsftpd的主配置文件来调整vsftpd的特性

            本文主要介绍vsftpd基于虚拟用户实现访问

             准备环境:

              (1)虚拟机1 IP:172.18.42.200;mariadb-server、pam_mysql已安装;用于vsftpd的服务器

              (2)虚拟机2 IP:172.18.42.201;用于客户端尝试虚拟用户登录vsftpd服务器

              

                一、在虚拟机2上创建数据、表,随后在表中创个两个用户(我们数据库以vsftpd为例)

                    1、创建表pam

                      

wKioL1cgwHbBxXSLAAAwXC-Skic379.png

                   2、在表pam中新增两个用户

wKiom1cgxW7A6tSaAABG9SGkBA0215.png

                 3、随后创建一个用户,给此用户授权管理vsftpd数据库

         

wKioL1cgx7iwVCmzAAAaibdaXbM697.png

                

               二、操作虚拟机1

                 1、/etc/pam.d/目录下编辑文件vsftpd.mysql

                   

wKioL1cgyUmCAbHmAACEyNp5KX4777.png

                 2、在根目录下创建ftproot目录,并修改其属性;同时创建一个虚拟用户登录的映射用户

                     

wKioL1cgyqryIPk0AAAc52V3bgo036.png

                 3、更改vsftpd的主配置文件

                        

wKiom1cgy7SiCJHaAAAlhajs5Bg006.png

                       注意:更改之后要确保以下三项要为开启状态

                             

wKioL1cgzMPhKgf6AAAlXVGLG7k318.png

                    4、可重启vsftpd的服务,随后可用虚拟机2尝试登录

                       

wKiom1cg1BejsbA_AAAjXeX0sSk346.png

                     注意:如果登录不上,需要去掉wtc用户对/ftproot用户的写权限

                        

wKioL1cg1T-Tp2iCAAAT_UGV8lM734.png

      

wKioL1cg1VyyO2aFAAArZBM81Uo283.png