LINUX网络FTP服务
一、FTP服务
FTP服务:file transfer protocol :文件传输协议。在网络上进行双向传输,也是一个应用程序。不同的操作系统有不同的FTP软件,但使用的协议是一样的。
FTP协议基于TCP协议,有两个端口,即20和21。
20端口:建立数据连接,数据传输
21端口:连接控制,传输FTP的控制命令
FTP服务端和客户端,建立连接后,FTP是双向进行的传输
FTP建立数据连接的模式
主动模式:服务器主动向端口发起数据连接
被动模式:服务器等待客户端发起连接
被动模式更容易穿越防火墙,默认就是被动模式。
二、FTP服务
2.1 vsftpd服务
vsftpd的安装和配置

在对vsftpd修改配置前,先备份配置文件

vim /etc/vsftdpd/vsftpd.conf编辑配置文件

2.2 匿名用户配置
2.2.1 服务端配置
vim /etc/vsftpd/vsftpd.conf编辑配置文件

重启vsftpd服务,关闭防火墙和安全机制

匿名用户的默认根目录是 /var/ftp/pub,对该目录赋权777

2.2.2 匿名访问测试

在windows系统打开开始菜单,输入cmd命令打开命令提示符

在实际生产过程中,由于匿名用户权限过高,可靠性低,存在安全隐患,所以都会禁止匿名用户登录。
2.3 系统用户配置登录
2.3.1 设置本地用户可以访问FTP,禁止匿名用户登录

重启vsftpd服务,在 /opt 目录下,

在windows系统打开开始菜单,输入cmd命令打开命令提示符,登录用户test1

在windows用户文件中可以看到test.txt文件,内容为hello,world!
2.3.2 对本地用户切换目录进行限制

重启服务即可,系统用户登录时,把用户禁锢在家目录,系统用户只能在自己的家目录操作,包括root用户。
2.4 黑名单和白名单
黑名单:在名单上的不允许登录,允许所有,拒绝个别
白名单:只有在名单上的才允许登录,拒绝所有,允许个别(常用)
编辑黑名单和白名单相关配置在配置文件 /etc/vsftpd/vsftpd.conf 的最下方
2.4.1 黑名单
黑名单默认开启

用户列表文件 :/etc/vsftpd/userlist ,控制用户访问,修改文件,添加黑名单,不用重启,立刻生效
2.4.2 白名单
设置白名单只要修改下行

userlist_deny改成NO后,即为白名单
修改配置文件需要重启服务
此时用户列表文件/etc/vsftpd/userlist内容为白名单
特别注意:在/etc/vsftpd/ftpusers里记录的用户,即使在白名单上也不能登录,这个文件相当于白名单里的黑名单。
要想使用root用户,把ftpusers里面的root用户注销掉即可
2.5 FTP命令与工具

相关文章:
LINUX网络FTP服务
一、FTP服务 FTP服务:file transfer protocol :文件传输协议。在网络上进行双向传输,也是一个应用程序。不同的操作系统有不同的FTP软件,但使用的协议是一样的。 FTP协议基于TCP协议,有两个端口,即20和21。 20端口&…...
10 C++11
10 C11 1、类型推导1.1 auto关键字1.2 auto类型推断本质 2、类型计算2.1 类型计算分类2.2 类型计算的四种规则2.3 返回值类型计算 3、列表初始化4、Lambda表达式4.1 前置知识4.2 Lambda表达式4.3 捕获表 5、右值引用5.1 概念5.2 左值引用和右值引用 6、移动语义 1、类型推导 1…...
java的封装
为什么要封装?在java的面向对象的思想中,封装是指将类的实现细节包装,隐藏起来的方法。封装可以防止本类的代码和数据被外部定义的代码随机访问。 如何进行封装? 在定义一个类时,将类中的属性私有化,即使…...
为什么选择海外服务器?
如何选择跨境电商服务器:详细指南 选择合适的服务器是跨境电商企业成功的基础。服务器的性能和稳定性直接影响着网站的访问速度、用户体验和安全性,进而影响着企业的销量和利润。那么,跨境电商企业该如何选择服务器呢? 1. 确定目…...
k8s+springcloud+nacos部署配置
1 k8s 部署nacos-2.1.2配置k8s-nacos-statefulSet.yaml文件 apiVersion: v1 kind: Service metadata:name: nacos-headlessnamespace: rz-dtlabels:app: nacosannotations:service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" spec:# 3个端口打开&…...
梯度提升决策树(GBDT)
GBDT(Gradient Boosting Decision Tree),全名叫梯度提升决策树,是一种迭代的决策树算法,又叫 MART(Multiple Additive Regression Tree),它通过构造一组弱的学习器(树&am…...
数据结构之B树的原理与业务场景
B树是一种自平衡的树形数据结构,它能够保持数据有序,并且可以高效地进行查找、顺序访问、插入和删除操作。B树的设计是为了优化磁盘I/O操作,因为它可以减少磁盘访问次数,这在数据库和文件系统中非常有用。 1. B树的原理 节点的出…...
【Android面试八股文】你能说一说线程池管理线程的原理吗?
面试官(Interviewer): 欢迎参加面试,今天我们会讨论一些关于 Java 线程池管理的问题。你能给我解释一下 ThreadPoolExecutor 是如何管理线程的吗? 候选人(Candidate): 当然可以,ThreadPoolExecutor 是 Java 中用于创建和管理线程池的核心类。它通过一组核心参数来控制线…...
springer 在线投稿编译踩坑
springer投稿,在线编译踩坑总结 注意: 有的期刊需要双栏,而预定义的模板中可能为单栏,需要增加iicol选项。 例如: \documentclass[sn-mathphys-num]{sn-jnl}% —>\documentclass[sn-mathphys-num, iicol]{sn-jnl}…...
固态硬盘的指标
固态硬盘的指标主要包括以下几个方面: 接口类型:这是固态硬盘与外部设备连接的方式,常见的接口类型有SATA、PCIe和NVMe等。不同的接口类型决定了固态硬盘的传输速度和性能。例如,PCIe接口的固态硬盘通常比SATA接口的固态硬盘具有…...
mysql 分组后每个取最新的一条记录
在MySQL中,若要从一个分组中获取每组的最新一条记录(通常基于时间戳或其他递增的列),可以使用子查询或者窗口函数(如果MySQL版本支持)。 以下是两种不同的实现方法: 方法1: 使用子查询和LIMIT…...
Java语法和基本结构介绍
Java语法和基本结构是Java编程的基础,它决定了Java代码的书写方式和程序的结构。以下是Java语法和基本结构的一些关键点: 1.标识符和关键字:Java中的标识符是用来标识变量、函数、类或其他用户自定义元素的名称。关键字是预留的标识符&#x…...
TDengine 3.3.0.0 引入图形化管理工具、复合主键等 13 项关键更新
在涛思数据研发团队的努力下,TDengine 3.3.0.0 版本终于和大家见面了。这一版本中,我们引入了多项革新功能和性能优化,力求在为用户提供极致体验的同时,不断推动技术的前沿。 此次更新不仅针对开源社区版本,进行了一系…...
C++基础之红黑树
二叉搜索树 二叉搜索树(Binary Search Tree,BST)是一种二叉树,具有以下性质: 左子树节点值小于根节点值:对于树中的每个节点 x,其左子树中所有节点的值都小于 x 的值。右子树节点值大于根节点值…...
ClickHouse数据库对比、适用场景与入门指南
本文全面对比了ClickHouse与其他数据库(如StarRocks、HBase、MySQL、Hive、Elasticsearch等)的性能、功能、适用场景,并提供了ClickHouse的教学入门指南,旨在帮助读者选择合适的数据库产品并快速掌握ClickHouse的使用。 文章目录 …...
举例说明 如何通过SparkUI和日志定位任务莫名失败?
有一个Task OOM: 通过概览信息,发现Stage 10的Task 36失败了4次导致Job失败。概览信息中显示最后一次失败的退出代码(exit code)是143,意味着发生了内存溢出(OOM,即Out of Memory)。…...
Vue前端通过Axios的post方式传输数据,后端为什么一直接收的值是null?
沃靠!这个细节太细了,搞了我两个多小时才找到这个bug。 一、 首先官方文档给我的post请求的例子是这样的: axios.post(/user, {firstName: Fred,lastName: Flintstone}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);})…...
外链建设如何进行?
理解dofollow和nofollow链接,所谓dofollow链接,就是可以传递权重到你的网站的链接,这种链接对你的网站排名非常有帮助,这种链接可以推动你的网站在搜索结果中的位置向上爬,但一个网站全是这种有用的链接,反…...
深入理解Java正则表达式及其应用
正则表达式是一种强大的文本匹配和处理工具,可以在字符串中查找、替换、提取符合特定模式的内容。Java作为一种广泛应用的编程语言,提供了丰富的正则表达式支持。本文将深入探讨Java正则表达式的基本概念、语法以及常见应用场景,帮助读者全面…...
Gstreamer学习3----灌数据给管线之appsrc
参考资料 Basic tutorial 8: Short-cutting the pipeline gstreamer向appsrc发送帧画面的代码_gst appsrc可变帧率-CSDN博客 在官网教程Basic tutorial 8: Short-cutting the pipeline 里面,讲了一个例子,push音频数据给管线,视频的例子更…...
量子噪声对机器学习模型的影响与优化策略
1. 量子噪声与机器学习模型的复杂博弈在量子计算领域,噪声问题就像一位不请自来的客人,总是干扰着我们的计算过程。特别是在量子机器学习(QML)中,噪声的影响更为微妙且复杂。我最近使用Qiskit平台进行了一系列实验,试图揭示不同类…...
为什么83%的Enterprise客户在第6个月触发License超额预警?揭秘后台用量监控盲区与动态配额优化公式
更多请点击: https://intelliparadigm.com 第一章:License超额预警现象的全局观测与根本归因 License超额预警并非孤立事件,而是软件许可治理体系中多维耦合失衡的外在表征。在企业级 DevOps 平台(如 GitLab Ultimate、JetBrains…...
应急通信无人机中继部署与覆盖率优化【附仿真】
✨ 长期致力于应急通信、无人机、中继部署、通信覆盖率、无人机部署数目研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅如需沟通交流,点击《获取方式》 (1)视距概率信道建模与高度部署&a…...
3分钟掌握Windows与Office智能激活:KMS_VL_ALL_AIO终极解决方案
3分钟掌握Windows与Office智能激活:KMS_VL_ALL_AIO终极解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office的激活问题烦恼吗?KMS_VL_ALL_AIO作…...
告别空转!用RT-Thread PM组件给你的IoT设备省电:从投票机制到外设管理的完整指南
告别空转!用RT-Thread PM组件给你的IoT设备省电:从投票机制到外设管理的完整指南 在电池供电的物联网设备开发中,功耗优化往往成为决定产品成败的关键因素。想象一下,一个部署在偏远地区的环境监测节点,如果因为功耗问…...
Davinci vs. 其他开源BI工具(Superset/Metabase)实战对比:我们团队为什么最终选了它?
Davinci vs. 其他开源BI工具实战对比:技术选型的深度思考 在数据驱动决策的时代,企业级BI工具的选择直接影响着数据分析的效率和深度。当我们团队面临开源BI工具选型时,Davinci、Apache Superset和Metabase成为了主要候选对象。经过三个月的实…...
3大核心功能:智能自动化提升英雄联盟游戏体验的终极指南
3大核心功能:智能自动化提升英雄联盟游戏体验的终极指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款基于英…...
别再乱用STOP模式了!STM32L4三种STOP模式深度对比与选型实战
STM32L4低功耗设计实战:STOP模式选型与能效优化全解析 在物联网终端设备与便携式仪器开发中,每微安电流的节省都直接关系到产品的市场竞争力。最近为一个农业传感器项目做方案评审时,发现团队在STOP模式选择上存在严重误区——工程师们习惯性…...
BIGEMAP自定义在线地图源:从零到一构建专属底图库
1. 为什么需要自定义地图源? 在日常工作中,我们经常会遇到这样的场景:项目需要特殊的地图底图,但软件内置的地图源无法满足需求;或者需要叠加多个地图源进行对比分析;又或者某些专业领域需要特定的地图数据…...
45.什么是内联条件表达式(inline conditional expressions)?在事件处理里怎么用?
内联条件表达式指的是:你在 JSX 里直接用 JavaScript 条件语法(如三元 ? :、逻辑与 &&、逻辑或 ||)来决定事件处理函数是否执行、执行哪段逻辑,或给事件处理器提供一个默认值。它能让事件行为跟 props/state 动态绑定&am…...
