vsftpd端口的作用:
控制连接:tcp21端口用于发送FTP命令
数据连接:tcp20端口用于上传下载数据

传输模式:分为主动模式和被动模式
主动模式是当需要传输数据时,客户端以PORT命令告知服务器,我打开了某个端口,你过来连我呀!服务器会从20端口向客户端的该端口发送请求并建立数据连接,
被动模式是当需要传输数据时,服务端以PASV命令告知客户端,我打开了某个端口(非20端口),你过来连我呀!于是客户端向服务器的该端口发送请求并建立数据连接,

用户类型:匿名用户,虚拟用户,本地用户,

vsftpd默认有两个用户黑名单:在安装目录,分别为:ftpusers user_list,ftpusers用户黑名单优先级大于user_list,可将将user_list黑名单改为白名单,修改配置文件:
userlist_enable=YES
userlist_deny=NO #手动添加
从新加载服务器就可以了,

匿名用户搭建:
服务端
准备匿名用户访问FTP的目录:
默认是在/var/ftp/pub
修改pub目录权限,将属主改为ftp
chown -R ftp pub
安装vsftp:
yum -y install vsftpd
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES #开起匿名用户上传权限
anon_umask=022 #手动添加匿名用户权限掩码
anon_mkdir_write_enable=YES #开起匿名用户创建目录的权限
anon_other_write_enable=YES #手动添加其他用户创建目录的权限
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog #手动添加日志的输出路径
启动vsftp
/etc/init.d/vsftpd start

客户端:安装一个ftp命令
yum -y install ftp
ftp 192.168.1.1 #这就可以测试了,登录的时候用ftp登录,密码随便
以上匿名用户搭建全部结束

本地用户搭建
先在本地创建两个用户用于测试用
修改默认的配置文件,修改两个地方即可;
vim /etc/vsftpd/vsftpd.conf
local_umask=077 #将本地用户的目录权限掩码改为077
chroot_local_user=YES #开起本地用户的目录权限
从新加载服务器就可以了
/etc/init.d/vsftpd reload

客户端测试登录时输入用户名密码即可

搭建虚拟用户验证FTP服务
1、先创建一个虚拟用户账号密码的列表文件
[root@centos101 vsftpd]# cat vusers.list
zhangsan
123
list
123
wangwu
123
使用db_load工具生成数据库文件
[root@centos101 vsftpd]# db_load -T -t hash -f vusers.list vusers.db
[root@centos101 vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh vusers.db vusers.list
db_load命令注释:-T 允许非Berkeley的程序使用数据库, -t 指定算法, -f 指定源文件, 注意:生成的数据库文件必须以db结尾。
[root@centos101 vsftpd]# chmod 600 vusers*
-rw------- 1 root root 12288 5月 11 11:48 vusers.db
-rw------- 1 root root 33 5月 11 11:46 vusers.list #为了安全,修改有关用户文件的权限

2、添加虚拟映射账户,并修改其权限
[root@centos101 vsftpd]# useradd -d /var/ftproot/ -s /sbin/nologin virtual
[root@centos101 var]# chmod 755 ftproot/
drwxr-xr-x 4 virtual virtual 4096 5月 11 11:53 ftproot/

3、增加pam认证
[root@centos101 vsftpd]# cat /etc/pam.d/vsftpd.new #这个文件手动创建
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers #这里可以不写文件名后缀

4、修改配置文件
[root@centos101 vsftpd]# vim vsftpd.conf
anon_umask=022 #手动添加
pam_service_name=vsftpd.new #这里改为pam认证自己创建的那个文件名
guest_enable=YES #手动添加
guest_username=virtual #手动添加,这个是创建的账户

客户端测试就可以了

为每个用户创建不同的根目录,不同权限管理
先创建一个统一管理用户权限文件的目录
[root@centos101 vsftpd]# mkdir vusers.dir
[root@centos101 vusers.dir]# touch zhangsan lisi wangwu
lisi wangwu zhangsan
[root@centos101 vusers.dir]# cat zhangsan #内容全部手写
anon_upload_enable=YES #开起匿名用户上传权限
anon_mkdir_write_enable=YES #开起匿名用户创建目录的权限
anon_other_write_enable=YES #开起其他用户创建目录的权限
anon_max_rate=5 #传输速率为每秒5字节,0为不限制传输速率
local_root=/var/zhangsan #根 目录
[root@centos101 vusers.dir]# cat lisi
anon_upload_enable=YES
anon_max_rate=0
local_root=/var/lisi
wangwu的权限不做设置,为默认权限,仅可以下载,不可以上传
然后修改配置文件,在最后加入一行;
[root@centos101 vsftpd]# vim vsftpd.conf
[root@centos101 vsftpd]# tail -1 vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.dir/
重新加载服务

vsftp搭建文档的更多相关文章

  1. 环境搭建文档——Windows下的Python3环境搭建

    前言 背景介绍: 自己用Python开发了一些安卓性能自动化测试的脚本, 但是想要运行这些脚本的话, 本地需要Python的环境. 测试组的同事基本都没有安装Python环境, 于是乎, 我就想直接在 ...

  2. 生产环境轻量级dns服务器dnsmasq搭建文档

    dnsmasq搭建文档 一.生产环境域名解析问题 之前生产环境设备较少,是通过维护master(192.168.1.1)设备的hosts文件实现的.每次新增设备后,需要在master的hosts文件中 ...

  3. kafka集群搭建文档

    kafka集群搭建文档 一. 下载解压 从官网下载Kafka,下载地址http://kafka.apache.org/downloads.html 注意这里最好下载scala2.10版本的kafka, ...

  4. VUE CLI环境搭建文档

    VUE CLI环境搭建文档 1.安装Node.js 下载地址 https://nodejs.org/zh-cn/download/ 2.全局安装VUE CLI win+R键打开运行cmd窗口输入一下代 ...

  5. OpenStack Pike超详细搭建文档 LinuxBridge版

    前言 搭建前必须看我 本文档搭建的是分布式P版openstack(1 controller + N compute + 1 cinder)的文档. openstack版本为Pike. 搭建的时候,请严 ...

  6. OpenStack Ocata 超详细搭建文档

    前言 搭建前必须看我本文档搭建的是分布式O版openstack(controller+ N compute + 1 cinder)的文档.openstack版本为Ocata.搭建的时候,请严格按照文档 ...

  7. 使用ghpage(github服务)搭建文档网站几种方式

    可以通过github提供的ghpage服务来搭建网站,有以下三种方式来实现: 1.文档放在master分支,作为一个子目录. 仓库:https://github.com/Ourpalm/ILRunti ...

  8. Readthedocs+Github搭建文档

    一.文档撰写前提 环境部署: > git clone https://github.com/toooney/demo-readthedocs.git > pip install sphin ...

  9. 推荐一个vuepress模板,一键快速搭建文档站

    介绍 vuepress-template是一个简单的VuePress案例模板,目的是让用户可以直接clone这个仓库,作为初始化一个VuePress网站启动项目,然后在这个项目的基础上新增自定义配置和 ...

随机推荐

  1. Chapter_4_JAVA作业

    一.类的封装,继承与多态 1.课前预习 1.1 举列现实生活中的封装,以及简述在程序中什么是属性的封装? 1.1.1 将东西捆绑在一起,如集成芯片:高压电线等等 1.1.2 封装就是将属性私有化,提供 ...

  2. python中的列表及numpy数组排序

    一.列表排序  # python中对列表排序有sort.sorted两种方法,其中sort是列表内置方法,其帮助文档如下:In [1]: help(sorted) Help on built-in f ...

  3. java webservice生成客户端代码并调用

    wsimport简介 在JDK的bin文件夹中,有一个wsimport.exe工具,可依据wsdl文件生成相应的类文件,将生存在本地这些类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用web ...

  4. 图解Go select语句原理

    Go 的select语句是一种仅能用于channl发送和接收消息的专用语句,此语句运行期间是阻塞的:当select中没有case语句的时候,会阻塞当前的groutine.所以,有人也会说select是 ...

  5. 笔记javascript

    // var demo1=12;// alert('点击确定按钮看结果'+demo1);// for(var i = 0; i<10;i++)// {//     document.write( ...

  6. @无痕客 https://www.cnblogs.com/wuhenke/archive/2012/12/24/2830530.html 通篇引用

    无痕客 https://www.cnblogs.com/wuhenke/archive/2012/12/24/2830530.html 关于Async与Await的FAQ 关于Async与Await的 ...

  7. #error "OpenCV 4.x+ requires enabled C++11 support"解决方法

    报错的本质是需要c++11的支持,顾名思义,当前的编译环境是c++11以下的版本.我用的cmake编译,因此再cmakelists文件内添加设置c++标准为14就可以编译通过. )

  8. Gitlab使用时的一些注意事项

    1 gitlab-runner 不选中,在commit没有tab的时候,runner不会进行运行 2 在新安装的gitlab的环境上更改@localhost为远程地址 2.1  vim /opt/gi ...

  9. asp.net core web 项目附加进程调试

    之前asp.net web项目在部署IIS站点的时候可以直接选择项目目录,不用发布,然后附加进程的时候,找到w3wp.exe开头的进程,再根据用户名找到要附加的进程,就可以附加进程调试了.但asp.n ...

  10. C#写入Oracle 中文乱码问题

    这个问题是我刚踏入工作觉得最坑的一个问题,找了很多方法.也问过不少人,但还是没能解决,偶然间返现了新大陆.... 具体问题描述是这样的: 我可以读取Oracle数据库中已有的中文内容,并能正确显示(O ...