CentOS8服务篇10:FTP服务器配置与管理
一、安装与启动FTP服务器
1、安装VSFTP服务器所需要的安装包
#yum -y install vsftpd
2、查看配置文件参数
Vim /etc/vsftpd/vsftpd.conf
(1)是否允许匿名登录
anonymous_enable=YES
该行用于控制是否允许匿名用户登录。
(2)是否允许匿名用户创建目录
anon_mkdir_write_enable=YES
该行控制是否允许匿名用户创建目录。
(3)设置传输速度
anon_max_rate=0
该行设置匿名用户的最大数据传输速度,单位是Byte/s。
(4) 是否允许本地用户登录
local_enable=YES
该行用户控制是否允许本地用户登录。
(5) 设置是否有写权限
write_enable=YES
该行用于设置使用者是否有写权限,就是上传文件的权限。
(6) 设置是否开启目录提示
dirmessage_enable=YES
该行用于设置是否开启目录提示功能。
(7)设置日志文件
xferlog_enable=YES
该行用于设置是否设置一个用于记录下载和上传的日志文件。
(8) 使用20端口数据传输
connect_from_port_20=YES
该行设置以port模式进行数据传输时使用20端口。
(9) 设置日志的格式
xferlog_std_format=YES
该行用于设置日志的格式是否采用标准格式。
3、关闭防火墙和SELinux,启动或重启服务器
安装完后,可以不改变“vsftpd.conf”配置文件的内容,直接输入如下命令:
#systemctl stop firewalld
#setenforce 0
#systemctl start vsftpd
#systemctl enable vsftpd
来启动FTP服务器。
每次对服务器配置文件修改保存后,要重启服务器,要输入以下命令:
service vsftpd restart 来重启FTP服务器。
4、安装telnet和ftp命令
在安装光盘的“packages”目录中找到“telnet-0.17-64.el7.x86_64.rpm”和“ftp-0.17-67.el7.x86_64.rpm”文件,然后在终端窗口,输入如下命令:
rpm –ivh telnet-0.17-64el7.x86_64.i386.rpm
rpm –ivh ftp-0.17-67el7.x86_64.i386.rpm
5、测试FTP服务器
在终端窗口,输入命令:
telnet 192.168.1.9 21
如果FTP服务器启动正常,会出现如下内容:
Trying IP地址...
Connected to localhost.
Escape character is '^]'.
220 (vsFTPd 3.0.2)
看到了“220 (vsFTPd 3.0.2)”表示VSFTP服务器就架设成功,客户可以访问服务器了。
6、简单登录FTP服务器
在终端窗口,输入命令:
ftp 192.168.1.9
准备登录FTP服务器。会出现如下信息:
Connected to 192.168.1.9 (192.168.1.9).
220 (vsFTPd 3.0.2)
Name (192.168.1.9:root):
输入一个已经存在的Linux用户名,出现如下的输入密码提示:
331 Please specify the password.
Password:
用户的登录Linux的密码,会出现登录成功的提示。内容如下:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
成功登录FTP服务器。
7、关闭FTP服务器
如果想关闭FTP服务器,输入如下命令:
#systemctl stop vsftpd
停止VSFTP服务器。
二、FTP服务器基本应用
1、修改VSFTP服务器配置文件
进入在终端中,输入命令下面命令字段打开配置文件:
Vim /etc/vsftpd/vsftpd.conf
打开配置文件后,根据任务要求,找到如下命令进行更改:
anonymous_enable=YES
用于控制是否允许匿名用户登录。
将下面两行命令字段前面的“#”删除,使它们从注释状态变为有效状态。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
这两行命令字段的功能分别是允许匿名用户上传和允许匿名用户新建目录,重命名删除目录。
保存退出。
2、修改访问目录的用户权限
修改pub文件夹的权限使之任何用户都可以读写。命令如下:
chmod u=rwx,g=rwx,o=rwx /var/ftp/pub
目的将pub目录使得任何用户都可以读写。之后,输入以下命令:
systemctl restart vsftpd
重新启动FTP服务器。
3、配置Windows客户机
设置Windows客户机与CentOS7 FTP服务器为同一网段,使用“ping”命令测通服务器。
4、测试登录服务器
上面的设置成功后,开始测试登录服务器。打开本地主机的浏览器,在地址栏中,输入“ftp://192.168.1.9”,(FTP服务器的IP地址)单击回车,登录FTP服务器,如图所示。

5、测试建立与拷贝文件
双击“pub”目录,打开该目录,从本计算机中可以拷贝一些文件到“pub”目录中,也可以在该目录下建立一些文件。在图中目录“aaa”,文件“abab”、“sdsd”为CentOS7系统下建立的文件,“项目1……”为拷贝到该目录的文件。

三、FTP服务器的本地用户控制
1、修改VSFTP服务器配置文件
在终端中输入以下命令打开配置文件:
vim /etc/vsftpd/vsftpd.conf
在配置文件找到“anonymous_enable=YES”一行,将其中的“YES”改为“NO”,即为“anonymous_enable=NO”意思是不允许以匿名方式登录FTP服务器。
保存退出。
输入如下命令:
Systemctl restart vsftpd
重新启动服务器。
2、建立用户
进入终端,在“#”提示符下输入:
useradd first
改行是建立一个用户名为“first”的用户。
passwd first
之后会出现输入密码的提示,两次输入一样的密码,“first”用户的密码建立成功。
3、查看用户目录并建立测试文件
建立了用户后,在“home”文件夹下就会建立一个与用户名同名的文件夹,就是在“home”文件夹下就有一个“first”的文件夹。在该文件夹下使用“touch file1”和“touch file2”命令来建立两个文件file1、file2用于测试。
touch file1
touch file2
4、测试登录服务器
切换到客户端Windows主机上,在资源管理器的地址栏中重新输入ftp://192.168.1.9,回车后,这时不再直接出现目录内容,而是出现了登录窗口,如图所示。

单击“登录”按钮,就出现first目录中的文件了,在Widows下用户可以建立文件或文件夹,如图所示。

5、查看建立的目录
回到服务器在“first”目录下输入“ll”命令查看文件,会看到在客户端建立的文件夹,如图所示。

四、FTP服务器登录限制
1、不允许使用者匿名登录
这里要求禁止匿名用户登录,只有符合安全条件的用户才可以登录。
这一项在前面已经有过叙述,这里只是提及。具体请参看前面步骤三部分即可。
2、只开放匿名登录
在终端中输入如下命令打开配置文件:
vim /etc/vsftpd/vsftpd.conf
在配置文件找到“anonymous_enable=??”一行,如果“??”为“YES”则不需要更改,如果为“NO”请改回“YES”,即为“anonymous_enable=YES”意思是允许以匿名方式登录FTP服务器。
再寻找“local_enable=??”一行,如果“??”为“NO”则不需要更改,如果为“YES”请改为“NO”,即为“local_enable= NO”意思是禁止本地用户登录FTP服务器。
最后保存配置文件,退出编辑。重启FTP服务即可只开放匿名登录。
3、不允许特定账户登录
(1)修改“/etc/vsftpd/vsftpd.conf”文件
在终端中输入如下命令打开配置文件:
Vim /etc/vsftpd/vsftpd.conf
在配置文件找到“userlist_enable=??”一行,如果“??”为“YES”则不需要更改,如果为“NO”请改回“YES”,即为“userlist_enable==YES”意思是使用者登录时,VSFTP服务器会去读取“/etc/vsftpd/user_list”设置文件。
在该行之后,手工添加一行“userlist_deny=YES”,表示“/etc/vsftpd/user_list”设置文件中的使用者会被拒绝登录。
最后保存配置文件,退出编辑。
(2) 修改“/etc/vsftpd/user_list”设置文件
在终端中输入如下命令打开“/etc/vsftpd/user_list”配置文件:
vim /etc/vsftpd/user_list
在配置文件最后,添加想要拒绝的登录的账户,比如“user”即可。
4、设置不允许登录的主机和网络
(1)测试与启动tcp-wrappers
本CentOS7系统默认已经安装了tcp_wrappers,如果不能够确定是否安装,可以输入如下命令来测试:
rpm -qa|grep tcp_wrappers
如果出现了“tcp_wrappers-7.6-77.el7.x86_64”和“tcp_wrappers-libs-7.6-77.el7.x86_64”之类的信息,表明已经安装了tcp_wrappers。
然后修改“/etc/vsftpd/vsftpd.conf”文件,找到“tcp_wrappers=YES”一行,默认是启动状态,如果存在表示tcp_wrappers已启动直接退出即可。如果该行不存在或内容不一样,请添加或修改之。
(2)修改“/etc/hosts.deny”文件
接着使用编辑软件修改“/etc/hosts.deny”文件,在该文件最后添加一行“vsftpd: IP 地址 网段 或域名”之类的内容。
比如不希望IP地址为“192.168.2.132”的主机、“192.168.3.0”网段的所有主机以及域名为“test.com”的主机不能访问该FTP服务器,可以在“/etc/hosts.deny”文件中添加如下一行:
vsftpd:192.168.2.132 192.168.3.0/255.255.255.0 test.com
即可实现以上要求。
相关文章:
CentOS8服务篇10:FTP服务器配置与管理
一、安装与启动FTP服务器 1、安装VSFTP服务器所需要的安装包 #yum -y install vsftpd 2、查看配置文件参数 Vim /etc/vsftpd/vsftpd.conf (1)是否允许匿名登录 anonymous_enableYES 该行用于控制是否允许匿名用户登录。 (2&…...
笔试强训3.14
一、选择题 1.以下说法错误的是(C) A.数组是一个对象 B.数组不是一种原生类 C.数组的大小可以任意改变 D.在Java中,数组存储在堆中连续内存空间里 相关知识点:原生/内置数组是那八个,其他的都是引用的,借…...
elasticsearch 环境搭建和基本操作
参考资料 适合后端编程人员的elasticsearch快速实战教程 ElasticSearch最新实战教程 ElasticSearch配套笔记 自制搜索引擎 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/setup.html restful风格的api REST 设计风格 例如以下springboot示例 RestContr…...
IDEA操作:Springboot项目打包为jar包并运行
在IDEA环境下对Springboot项目打包为jar包且在terminal运行操作 1、 2、 3、注意:在项目目录里创建一个用来存放jar包的文件夹(res),该路径不能使用IDEA设置的默认路径,必须手动创建。 4、 5、点击ok后加载运行包 (8…...
原理底层计划---JVM
二、JVM对空间大小怎么配置?各区域怎么划? 新生代:短时间生成,可以马上回收 老生代:少部分对象会存在很久,回收策略应不同 三、JVM哪些内存区域会发生内存溢出(程序计数器不会) …...
CSDN-猜年龄、纸牌三角形、排他平方数
猜年龄 原题链接:https://edu.csdn.net/skill/practice/algorithm-a413078fb6e74644b8c9f6e28896e377/2258 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。 一次,他参加某个重要会议…...
【Linux】软件包管理器 yum
什么是软件包和软件包管理器 在 Linux 下需要安装软件时, 最原始的办法就是下载到程序的源代码, 进行编译得到可执行程序。但是这样太麻烦了,所以有些人就把一些常用的软件提前编译好, 做成软件包 ( 就相当于windows上的软件安装程序)放在服…...
一天吃透TCP面试八股文
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…...
zzu天梯赛选拔
C. NANA去上课 — 简单数学 需要记录上一步处在哪个位置 然后判断如果是同一侧移动距离就是abs(x1 - x2) 如果不同就是x1 x2 #include <iostream> #include <cmath> using namespace std; #define int long long signed main() {int n; c…...
【C语言】一篇让你彻底吃透(结构体与结构体位段)
本章重点 主要讲解结构体和位移动的使用和定义与声明,并且结构体和位段在内存中是如何存储的。 文章目录结构体结构体类型的声明结构体特殊的声明结构体变量的定义和初始化结构体成员的访问结构的自引用结构体内存对齐结构体传参位段什么是位段位段的内存分配位段的…...
数据结构之二叉树构建、广度/深度优先(前序、中序、后序)遍历
一、二叉树 1.1 树 说到树,我们暂时忘记学习,来看一下大自然的树: 哈哈 以上照片是自己拍的,大家凑合看看 回归正题,那么在数据结构中,树是什么呢,通过上面的图片大家也可以理解 树是一种非…...
“国产版ChatGPT”文心一言发布会现场Demo硬核复现
文章目录前言实验结果一、文学创作问题1 :《三体》的作者是哪里人?问题2:可以总结下三体的核心内容吗?如果要续写的话,可以从哪些角度出发?问题3:如何从哲学角度来进行续写?问题4:电…...
202304读书笔记|《不被定义的女孩》——做最真实最漂亮的自己,依心而行
202304读书笔记|《不被定义的女孩》——做最真实最漂亮的自己,依心而行《不被定义的女孩》作者ASEN,很棒的书。处处透露着洒脱,通透,悦己,阅世界的自由的氛围和态度! 部分节选如下: 让自己活得…...
SpringBoot帮你优雅的关闭WEB应用程序
Graceful shutdown 应用 Graceful shutdown说明 Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and servlet-based web applications. It occurs as part of closing the applica…...
递归与递推
递归 直白理解:函数在其内部调用自身(自己调用自己)所有递归都可以采用递归搜索树来理解递归的特点: 一般来说代码较为简短,但是理解难度大一般时间和空间消耗较大,容易产生重复计算,可能爆栈 …...
使用<style scoped>导致的样式问题
问题描述: 今天使用开源组件库TDesign的自动补全组件时,遇到了一个样式失效问题,一开始怎么也找不到问题出在哪,后面一个偶然去掉了scoped,竟然发现样式竟然正常了,具体原因不知道在哪,有大佬知…...
Elasticsearch深入理解(十八)-集群关键指标及调优指南
1、CPU使用率 CPU使用率是指在一段时间内CPU执行程序的百分比,它是衡量系统资源利用率的一种指标。 1.1 详细说明: 在Elasticsearch中,高的CPU使用率通常意味着节点正在执行大量的计算任务,这可能是因为索引和搜索操作的负载较大…...
Transformer到底为何这么牛
从注意力机制(attention)开始,近两年提及最多的就是Transformer了,那么Transformer到底是什么机制,凭啥这么牛?各个领域都能用?一文带你揭开Transformer的神秘面纱。 目录 1.深度学习࿰…...
【Spring事务】声明式事务 使用详解
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 声明式事务一、编程式事务二、声明式事务&…...
学习28个案例总结
学习前 对于之前遇到的问题没有及时总结,导致做什么事情都是新的一样。没有把之前学习到接触到的内容应用上。通过这次对28个案例的学习。把之前遇到的问题总结成自己的经验,在以后的开发过程中避免踩重复性的坑。多看帮助少走弯路。 学习中 对28个案例…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
