FTP文件传输与vsftpd配置

一 存储类型

直连式存储DAS

适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

存储区域网络SAN

用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

网络附加存储NAS

适用于大型应用或数据库系统,缺点是成本高、较为复杂

二 FTP工作原理

文件传输协议

是典应用层协议,  c/s架构

20数据端口          用于建立数据连接,并传输文本数据

21命令端口          建立控制连接,并传输FTP控制命令

2 数据传输格式:二进制   文本

3 双通道协议:命令与数据的连接

从服务器角度

主动模式:服务器主动开启20端口连接客户端传输真实数据

被动摸式:服务器随机开启端口等待客户端连接,客户机通过21命令来获取 服务端的随机端口

数据给客户端

被动(PASV style):服务器被动等待客户端连接

FTP服务状态码

服务器数据端口为:

用户认证:

  • 匿名用户:ftp,anonymous,对应Linux用户ftp root,两种协议

  • 一般提供公共文件的下载,如免费文件,学习资料,百度网盘

  • 系统用户:  Linux用户,用户/etc/passwd,密码/etc/shadow

  • 虚拟用户:   特定服务的专用用户,独立的用户/密码文件

常见 FTP 相关软件

vsftpd:

ftp.redhat.com数据

Wu-ftpd

vsftpd 软件介绍

用户认证配置文件: /etc/pam.d/vsftpd

配置文件或子目录: /etc/vsftpd

                             :/usr/sbin/vsftpd

                             :/var/log/vsftpd.log

用户和其共享目录

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp

  • 系统用户共享文件位置:用户家目录

  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

安装服务端

客户端连接服务端

vsftpd服务常见配置

修改默认命令端口

服务端:修改 默认命令端口号

客户端:连接时需要指明 端口号

[root@localhost ~]#vim  /etc/vsftpd/vsftpd.conf

                              listen_port=2121                      #默认值为21

[root@localhost ~]#systemctl restart vsftpd

                             #ss   -ntl                     #查看端口

主动模式端口


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                              connect_from_port_20=YES                  #主动模式端口为20
                               ftp_data_port=20                                    #指定主动模式的端口,默认为20
[root@localhost ~]#systemctl restart vsftpd
 

被动模式端口

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                              pasv_min_port=6000    
                              pasv_max_port=6010
[root@localhost ~]#systemctl restart vsftpd 

   #0为随机分配,规定端口范围会影响客户端的并发数

使用当地时间

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

                              use_localtime=YES                    #使用当地时间  ,  默认为NO,使用GMT 

                              [root@localhost ~]#systemctl restart vsftpd

匿名用户登录


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                               anonymous_enable=YES                           #支持匿名用户,
                               no_anon_password=YES                           #匿名用户略过口令检查 , 默认NO
[root@localhost ~]#systemctl restart vsftpd 

匿名用户上传

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

                             anon_upload_enable=YES 匿名上传,注意:文件系统权限
                             anon_mkdir_write_enable=YES 匿名建目录

还需要开启文件系统访问的权限,不能给FTP根目录写权限否则报如下错误

匿名用户 下载 删除文件

指定匿名用户的上传文件的默认的所有者是ftp用户,这是可以修改的

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES                                           #默认NO
chown_username=mcb                                       #匿名用户的上传文件的默认的所有者用户
chown_upload_mode=0644                                #指定上传文件的权限
[root@localhost ~]#systemctl restart vsftpd  

 
Linux 系统用户

系统用户登录:使用普通用户登录默认是在 系统用户的 家目录

将所有系统用户映射为指定的guest用户

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


guest_enable=YES                                #所有系统用户都映射成guest用户
guest_username=ftp                              #配合上面选项才生效,指定guest用户
#local_root=/ftproot                                 #注释此行,默认所有用户都在ftp用户的家目录
user_config_dir=/etc/vsftpd/conf.d/         #每个用户独立的配置文件目录,可自由指定


[root@localhost ~]#systemctl restart vsftpd 
 

禁锢系统用户


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO                           #默认YES
[root@localhost ~]#systemctl restart vsftpd 
 

禁锢所有系统用户在家目录中


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
guest_enable=YES                                           #所有系统用户都映射成guest用户
guest_username=ftp                                        #配合上面选项才生效,指定guest用户
#local_root=/ftproot                                          #注释此行,默认所有用户都在ftp用户的家目录
user_config_dir=/etc/vsftpd/conf.d/                  #每个用户独立的配置文件目录,可自由指定
[root@localhost ~]#systemctl restart vsftpd  


禁锢用户开启白名单和黑名单

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES                                      #默认是NO
chroot_list_file=/etc/vsftpd/chroot_list                  #默认值
 
当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单,只允许名单里的用户登录
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单,只有文件里的用户禁锢
[root@localhost ~]#systemctl restart vsftpd  
 

ftp 默认启动日志

#wu-ftp 日志:默认启用

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


xferlog_enable=YES                                          #启用记录上传下载日志,此为默认值
xferlog_std_format=YES                                    #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog                                  #可自动生成, 此为默认值


[root@localhost ~]#systemctl restart vsftpd 
 

#vsftpd日志:默认不启用


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


dual_log_enable=YES                    #使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log    #可自动生成, 此为默认值


[root@localhost ~]#systemctl restart vsftpd 
 

提示信息


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


ftpd_banner="welcome to mcb ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt  


[root@localhost ~]#systemctl restart vsftpd 
 

传输速率,单位:字节/秒      百度网盘限速就是这样玩


[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


anon_max_rate=1024000               #1024000表示1MB/(数字随时改)
local_max_rate=102400


[root@localhost ~]#systemctl restart vsftpd 

pam模块实现用户访问

在内网环境ftp下,搭建本地yum仓库

①服务端搭建本地yum仓库,并下载vsftp软件

服务端IP  192.168.11.9

 

 

客户端搭建yum仓库下载vsftpd软件与ftp协议

客户端192.168.11.5   搭建仓库

 教训

在内网环境下http搭建yum仓库

 服务端IP192.168.11.9

指令小金刚

1 [root@localhost ~]#sort --help
   sort  -t

   sort   -n

2 [root@localhost ~]#cut --help
用法:cut [选项]... [文件]...
  cut  -d  使用指定分界符代替制表符作为区域分界

3 [root@localhost ~]#seq --help
  seq  -s

4 [root@localhost ~]#tr --help   转换   压缩    删除

5 [root@localhost ~]#uniq  --help

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程间通信之利用命名管道进行通信

文章目录 什么是命名管道命名管道的作用有什么命名管道的特点和用法是什么命名管道与匿名管道有什么区别匿名管道相较于命名管道的局限性 命名管道如何使用代码 什么是命名管道 命名管道(Named Pipe),也被称为FIFO(First In, Fir…

宝藏排序1

题目 冒泡排序 import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.nextLine();int[] res new int[n];for(int i0;i<n;i)res[i] sc.nextInt()…

C语言——整数和浮点数在内存中的存储

目录 一、整数在内存中的存储 二、大小端字节序和字节序判断 2.1 什么是大小端&#xff1f; 2.2 为什么有大小端? 2.3 练习 2.3.1 练习1 2.3.2 练习2 三、浮点数在内存中的存储 3.1练习 3.2 浮点数的存储 3.2.1浮点数存的过程 3.2.2浮点数取的过程 3.3 题目解…

provide和inject快速上手

应用案例 代码 点击弹窗1按钮&#xff0c;弹窗2出现 父组件 provide注入数据 // 弹窗1<Event ></Event> // 弹窗2<EventEvaluation v-if"isShowEventEvaluation"></EventEvaluation>const isShowEventEvaluation falseconst isShowEvent…

数学建模-预测人口数据

目录 中国09~18年人口数据 创建时间 绘制时间序列图 使用专家建模器 得到结果 预测结果 残差的白噪声检验 中国09~18年人口数据 创建时间 路径&#xff1a;数据-> 定义日期和时间 绘制时间序列图 使用专家建模器 看看spss最终判断是那个模型最佳的契合 得到结果 预…

【2024最新-python3小白零基础入门】No4.python控制语句学习

文章目录 1 选择结构1.1 if语句 2 循环结构2.1 while循环语句2.2 for循环语句2.3 break、continue、pass在循环中的用途 对于 Python 程序中的执行语句,默认是按照书写顺序依次执行的,这时称这样的语句是顺序结构的。但是,仅有顺序结构还是不够的,因为有时需要根据特定的情况,有…

vite多页面打包学习(一)

一、前期准备 首先初始化两套独立的vue实例和相关生态&#xff08;多页面嘛&#xff09;&#xff0c;如下 我在src文件下创建了pages大文件夹&#xff0c;并初始化了两套页面分别为index和page1&#xff0c;每套页面都有自己单独的组件、路由、状态、入口等等&#xff0c;这里…

SpringMVC实现原理及详解

1、什么是 SpringMVC ? 在介绍什么是 SpringMVC 之前&#xff0c;我们先看看 Spring 的基本架构。如下图&#xff1a; 我们可以看到&#xff0c;在 Spring 的基本架构中&#xff0c;红色圈起来的 Spring Web MVC &#xff0c;也就是本系列的主角 SpringMVC&#xff0c;它是属于…

被忽视的暗面:客户端应用漏洞挖掘之旅

被忽视的暗面&#xff1a;客户端应用漏洞挖掘之旅 前言 在2023年12月15日&#xff0c;我有幸参加了由“字节跳动安全中心”举办的“安全范儿”沙龙活动。作为“中孚信息元亨实验室”的一员&#xff0c;我被邀请分享名为“被忽视的暗面&#xff1a;客户端应用漏洞挖掘之旅”的…

unocss+iconify技术在vue项目中使用20000+的图标

安装依赖 npm i unocss iconify/json配置依赖 vue.config.js文件 uno.config.js文件 main.js文件 使用 <i class"i-fa:user"></i> <i class"i-fa:key"></i>class名是 i- 开头&#xff0c;跟库名:图标名&#xff0c;那都有什么库…

mysql函数group_concat()返回结果不全

目录 一、场景二、原因三、排查1、查看group_concat_max_len配置2、修改group_concat_max_len配置a) 如果不方便重启mysql&#xff0c;可以通过以下命令进行配置修改b) 修改mysql配置文件&#xff0c;永久生效 一、场景 mysql使用group_concat()函数拼接返回字段时&#xff0c…

《游戏-01_2D-开发》

首先利用安装好的Unity Hub创建一个unity 2D&#xff08;URP渲染管线&#xff09;项目 选择个人喜欢的操作格局&#xff08;这里采用2 by 3&#xff09; 在Project项目管理中将双栏改为单栏模式&#xff08;个人喜好&#xff09; 找到首选项&#xff08;Preferences&#xff09…

Docker(二)安装指南:主要介绍 Docker 在 Linux 、Windows 10 和 macOS 上的安装

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 安装 Docker Docker 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的 安装指南&#xff0c;这里主要介绍 Docker 在…

CentOS 7安装 NVIDIA 独立显卡驱动(禁用nouveau)

1.禁用nouveau 安装nvidia显卡驱动首先需要禁用nouveau&#xff0c;不然会碰到冲突的问题&#xff0c;导致无法安装nvidia显卡驱动。 禁用步骤 1.使用su命令切换到root用户下: su root查看nouveau是否禁用 lsmod | grep nouveau如果像这样输出一堆信息&#xff0c;则表示没…

allegro画PCB如何倒板框圆弧角

对板框进行倒圆角:Manufacture-Drafting-Fillet 对板框进行倒圆角:Manufacture-Drafting-Fillet 上图中的25对应的就是弧度半径&#xff0c;默认单位是mil&#xff0c;也可以设置成mm 最后点击相邻的边框线就可以倒成圆弧角了。 效果如下图&#xff1a;

SD卡出现乱码文件怎么修复?

SD卡出现乱码文件的问题是用户在使用过程中经常会遇到的故障。这些乱码文件的出现&#xff0c;可能是由于多种原因引起的&#xff0c;例如文件系统损坏、病毒攻击、设备兼容性问题等。本文将深入分析SD卡出现乱码文件的背后原因&#xff0c;并提供相应的解决方案&#xff0c;帮…

Python数据分析案例36——基于神经网络的AQI多步预测(空气质量预测)

案例背景 不知道大家发现了没&#xff0c;现在的神经网络做时间序列的预测都是单步预测&#xff0c;即(需要使用X的t-n期到X的t-1期的数据去预测X的t期的数据)&#xff0c;这种预测只能预测一个点&#xff0c;我需要预测X的t1期的数据就没办法了&#xff0c;有的同学说可以把预…

C++设计模式(李建忠)笔记4(完结)

C设计模式&#xff08;李建忠&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。 参考链接 Youtube: C设计模式 Gtihub源码与PPT&#xff1a;https://github.com/ZachL1/Bilibili-plus 豆瓣: 设计模式–可复用面向对象软件的基础 总结23种设计模式…

5-数组-矩阵置零

这是数组的第5篇算法&#xff0c;力扣链接。 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0…

VMware 安装 CentOS7

目录 镜像下载VMware创建创建新的虚拟机直接自定义了选择镜像所在位置更改虚拟机的名称和存储位置&#xff08;尽量不要使用默认位置&#xff09;设置虚拟机的配置&#xff08;根据自己的情况而定&#xff09;设置虚拟机的内存&#xff08;根据自己情况而定&#xff09;设置网络…