FTP、SFTP安装,整合Springboot教程

news2024/11/15 10:51:20

文章目录

  • 前言
  • 一、FTP、SFTP是什么?
    • 1.FTP
    • 2.SFTP
  • 二、安装FTP
    • 1.安装vsftp服务
    • 2.启动服务并设置开机自启动
    • 3.开放防火墙和SELinux
    • 4.创建用户和FTP目录
    • 4.修改vsftpd.conf文件
    • 5.启动FTP服务
    • 6.问题
  • 二、安装SFTP
  • 总结


前言

在一般项目开发工程中,我们大多数会使用文件服务,比如上传图片、各种文档之类的。
供我们选择的方式很多,比如第一种直接通过Java的File对象存储在本地,然后部署时候修改linux环境下的路径,这种方式简单粗暴;

第二种就是在连网的情况下,直接使用OSS对象存储,比如阿里云OSS对象存储,当然这种是要花钱的,如果不花钱的话,
也可以自己本地搭建一个OSS本地对象存储;

第三种就是我们今天要说的,在Linux服务器上面通过ftp服务、sftp服务搭建一个文件服务,其实本质上第一种类似,直接读取磁盘上面的文件;然后我们通过springboot程序来读取操作;


一、FTP、SFTP是什么?

1.FTP

  • FTP 是不安全的,因为它在传输过程中使用明文传输密码和数据,容易受到窃听和攻击。
  • FTP 默认使用端口21进行控制连接,和端口20进行数据连接。
  • FTP 提供了基本的文件上传和下载功能,以及简单的目录操作。
  • 适合于内部网络环境或者传输不敏感的数据,对安全性要求不高的场景。
  • FTP有主动和被动模式两种,简单讲,主动就是客户端随机开了端口,然后服务器端主动连接,然后传输数据;被动就是服务器先开了一个 大于 1024 小于65535的端口,然后客户主动去连接,然后传输数据;至于更详细的参考其它说明文章。

2.SFTP

  • SFTP 基于SSH协议,所有的数据传输都被加密,包括身份验证信息和传输的文件内容,因此提供了更高的安全性。
  • SFTP 默认使用SSH的端口(通常是22),只需要一个端口来完成所有的传输。
  • SFTP 不仅支持文件传输,还可以进行更多高级的文件管理操作,比如权限管理和符号链接的操作。
  • 适合于需要保证数据传输安全性的场景,特别是在Internet环境中传输敏感数据或者需要进行复杂文件管理的情况下。
    总结来说,选择使用FTP还是SFTP取决于你的具体需求,特别是对于数据安全性的要求。如果需要更高的安全性和更丰富的功能,建议选择SFTP。

二、安装FTP

1.安装vsftp服务

yum -y install vsftpd

服务器需要联网。
安装FTP

2.启动服务并设置开机自启动

systemctl start vsftpd            # 启动vsftpd
systemctl enable vsftpd.service   # 设置开机自启动

3.开放防火墙和SELinux

主要是为了减少麻烦的产生,关闭防火墙和selinux,等搭建成功可以开启防火墙和相应的端口。

systemctl stop firewalld.service      #关闭防火墙
systemctl disable firewalld.service   #并设置开机自启
 
# 修改 /etc/selinux/config 将SELINUX=enforcing改为disabled
vim /etc/selinux/config
setenforce 0    #使修改后的配置文件生效

4.创建用户和FTP目录

ftpuser1和ftpuser1为该FTP服务创建的用户,而/web/www/html作为两个用户的访问目录(限制)。

创建文件目录并配置权限:

mkdir -p /web/www/html    
chmod -R 775 /web/www/html

创建ftp组以及用户:

我们创建的team1和team2用户,为了系统安全考虑,当然不希望能让这两个账号的登录系统,要使得FTP组的用户不能的登录系统,则需要为FTP用户统一建立在不能登录系统的shell中,就拿 /sbin/nologin 来实现;
-g:指定所属组
-d:指定家目录
-M:不创建家目录
-s:不登录系统

#创建组ftp
groupadd ftpgroup 
 
# 创建用户
useradd -g ftpgroup -d /web/www/html -M -s /sbin/nologin ftpuser1
useradd -g ftpgroup -d /web/www/html -M -s /sbin/nologin ftpuser2
#为用户创建密码
passwd ftpuser1@123456
passwd ftpuser2@123456
 
# 修改/web/www/html目录为ftpgroup组
chown root:ftpgroup /web/www/html

4.修改vsftpd.conf文件

先将/etc/vsftpd/vsftpd.conf配置文件备份(防止后面出错后没法还原),然后进行修改:

cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.backup
vim vsftpd.conf 

进入该配置文件后,将101、102、104行的内容去掉注释:
在这里插入图片描述
将剩下注释的内容全部删除后剩下的内容:
在这里插入图片描述

解释常用的:
anonymous_enable=YES #是否开启匿名用户,因为这里指定用户所以修改为NO
local_enable=YES #是否允许本地用户登录,默认允许
write_enable=YES #是否允许账号有写的权限
local_umask=022 :掩码
#本地用户创建文件目录都会默认777-022=755,最终文件目录的权限为755
#然而创建文件会默认666-022=644,最终创建的文件权限为644
dirmessage_enable=YES # 进入某个目录会提示
根据实验要求创建的两个用户只能在受限于/web/www/html文件目录下,跟以下两条命令的搭配效果有关:
chroot_local_user=YES
chroot_list_enable=NO # 激活chroot功能
#在文件 /etc/vsftpd/chroot_list 中列出的用户不能切换到其他目录
chroot_list_file=/etc/vsftpd/chroot_list #设置锁定用户在根目录列表的文件

添加配置文件:
除了以上的还需添加以下的配置

local_root=/web/www/html #设置本地用户的根目录
allow_writeable_chroot=YES #允许 chroot限制,否则出现连接错误。

最终文件配置信息 :
在这里插入图片描述
创建 /etc/vsftpd/chroot_list 文件:

vim /etc/vsftpd/chroot_list

添加 ftpsuer1和 ftpsuer2注意换行

5.启动FTP服务

systemctl restart vsftpd
# 在客户端上需要先安装 ftp 服务
yum -y install ftp

在这里插入图片描述

6.问题

  • 问题1、安装vsftpd时候,可能包yum源的问题,更换阿里云、或者其它的yum源即可;
  • 问题2、xxx

二、安装SFTP


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

相关文章

什么是数据治理?在企业数字化转型过程中有什么用?

建设背景 有效的数据治理不仅能够确保数据的安全和质量,还能为企业提供深入的业务洞察,推动决策制定和创新。数据治理是数字化转型的基础,是数据资源成为数据资产的基础,只有经过了数据治理,相应的数据资源才能产生价…

Ubuntu 24.04中安装virtualenv

在Ubuntu 24.04中安装virtualenv,可以按照以下步骤进行: 1. 确保Python已安装‌: 在终端中输入python --version或python3 --version来检查Python的安装情况。 python3 --version2. 安装pip‌(如果尚未安装)&#x…

【论文笔记】AutoLFADS (Nature Methods, 2022)

相关链接: Is This Tutorial For You? - AutoLFADS TutorialDANDI ArchiveNonhuman Primate Reaching with Multichannel Sensorimotor Cortex Electrophysiology Abstract 通过深度神经群体动力学模型实现最先进的性能需要对每个数据集进行广泛的超参数调整。 Au…

机器学习:opencv--图像金字塔

目录 一、图像金字塔 1.图像金字塔是什么? 2.有哪些常见类型? 3.金字塔的构建过程 4.图像金字塔的作用 二、图像金字塔中的操作 1.向下采样 2.向上采样 3.注意--无法复原 三、代码实现 1.高斯金字塔向下采样 2.高斯金字塔向上采样 3.无法复…

JavaEE:文件内容操作(一)

文章目录 文件内容的读写---数据流字节流和字符流打开和关闭文件文件资源泄漏try with resources 文件内容的读写—数据流 文件内容的操作,读文件和写文件,都是操作系统本身提供了API,在Java中也进行了封装. Java中封装了操作文件的这些类,我们给它们起了个名字,叫做"文…

药品识别与分类系统源码分享

药品识别与分类检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

Vue | Vue深入浅出——Vue中的render函数详解

1.render函数 在编写vue单文件的大多数情况下,我们都是使用template模板来创建HTML。然而在一些条件判断比较复杂的场景下,使用JavaScript去描绘HTML的生成逻辑会显得更加的简洁直观。 使用Vue官网的例子来简单说明: 如果自己在开发的时候…

vscode配置django环境并创建django项目

1、创建文件夹 创建文件夹 并在vscode打开 终端输入命令 “ python -m venv env ” 查看目录结构 2、创建项目 在终端输入 django-admin startproject 文件名(这里以myshop为例) 3、创建应用 在myshop打开终端 在终端输入 django-admin startapp 应用名 这里以app1为例…

6个免费icon图标素材网站

在这个数字化时代,优秀的图标设计对于提升用户体验至关重要。为了帮助设计师和开发者找到高质量的免费icon图标素材,我整理了以下6个实用的网站,让你轻松获取精美图标,助力你的设计工作。快来一起看看吧! 1、菜鸟图库 …

如何显示Dialog窗口

文章目录 1. 概念介绍2. 使用方法2.1 Overlay效果2.1 Dialog效果 3. 示例代码4. 内容总结 我们在上一章回中介绍了"使用get显示snackBar"相关的内容,本章回中将介绍使用get显示Dialog.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在…

【卷起来】VUE3.0教程-07-异步请求处理(springboot后端)

&#x1f332; 服务端接口准备 pom文件&#xff0c;引入mybatis/mybatis-plus相关依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>&…

Split函数

Split:可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。 String[] split(String regex) :将字符串全部拆分. String[] split(String regex, int limit) :将字符串以指定的格式&#xff0c;拆分为limit 组 代码实例&#xff1a; 切割小数点&#xff0c;或\ ,需…

每日单词记背

2024年9月12日 1.discriminate&#xff1a;歧视&#xff0c;区别&#xff0c;分辨 discriminate against 歧视&#xff1b;排斥 discriminate between 区别 辨别 dis(区别)crim(罪犯)inate ->区别为罪犯->歧视 it is illegal to discriminate against women in any way.…

【Linux修行路】信号的产生

目录 ⛳️推荐 一、信号的产生 二、产生信号的系统调用 2.1 kill——给指定的进程发送指定的信号 2.2 模拟实现指令 kill 2.3 raise——给调用的进程发送指定的信号 2.4 abort——给调用者发送 6 号信号 三、验证哪些信号不可以被捕捉 四、为什么除0和解引用空指针会给…

数据库(DB、DBMS、SQL)

今天我来讲解一下数据库和可视化数据库管理系统的使用 数据库概述 数据库 存储数据的仓库&#xff0c;数据是有组织的存储 DataBase (DB) 数据库管理系统 操纵和管理数据库的大型软件 DataBaseMangement System (DBMS) SQL 操作关系型数据库的编程语言&#xff0c;定义…

探索最佳 Shell 工具:全面测评 Bash、Zsh、Fish、Tcsh 和 Ksh

感谢浪浪云支持发布 浪浪云活动链接 &#xff1a;https://langlangy.cn/?i8afa52 文章目录 1. 简介2. 测评工具3. 测评标准4. Bash 测评4.1 易用性4.2 功能特性4.3 性能4.4 可定制性4.5 社区和支持 5. Zsh 测评5.1 易用性5.2 功能特性5.3 性能5.4 可定制性5.5 社区和支持 6. F…

C++设计模式——Builder Pattern建造者模式

一&#xff0c;建造者模式的定义 建造者模式&#xff0c;又被称为生成器模式&#xff0c;是一种创建型设计模式&#xff0c;它将复杂产品的构建过程分解为一系列简单的步骤&#xff0c;每个步骤由独立的建造者对象负责。 建造者模式常用于创建复杂的对象&#xff0c;它避免了…

网络安全架构师

网络安全架构师负责构建全面的安全框架&#xff0c;以保护组织的数字资产免受侵害&#xff0c;确保组织在数字化转型的同时维持强大的安全防护。 摩根大通的网络安全运营副总裁兼安全架构总监Lester Nichols强调&#xff0c;成为网络安全架构师对现代企业至关重要&#xff0c;…

单向链表之创建,插入,输出(上)

文章目录 &#x1f34a;自我介绍&#x1f34a;创建&#x1f34a;插入&#x1f34a;输出 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff09;哦~ &#x1f34a;自我介绍 Hello,大家好&#xff0c;我是小珑也要…

VMware Fusion虚拟机Mac版 安装Ubuntu操作系统教程

Mac分享吧 文章目录 下载镜像地址&#xff1a;[www.macfxb.cn](http://www.macfxb.cn)一、CentOS安装完成&#xff0c;软件打开效果二、Mac中安装Ubuntu虚拟机1️⃣&#xff1a;下载镜像2️⃣&#xff1a;创建虚拟机3️⃣&#xff1a;虚拟机设置4️⃣&#xff1a;虚拟机安装5️…