Linux-在Ubuntu搭建ftp服务器

news2024/12/29 9:07:25

By: Ailson Jack
Date: 2023.08.20
个人博客:http://www.only2fire.com/
本文在我博客的地址是:http://www.only2fire.com/archives/151.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。

本文将在Ubuntu 22.04上搭建ftp服务器,对于其他版本Ubuntu系统或者其他系列的Linux发行版,配置都差不多。

下述内容配置好了匿名用户和Ubuntu本地用户登录ftp服务器,并能上传和删除文件。

安装vsftpd

sudo apt install vsftpd

vsftpd服务在安装完成后会自动启动。通过下述命令可以查看vsftpd的状态:

sudo systemctl status vsftpd

在这里插入图片描述

配置vsftpd

可以通过编辑/etc/vsftpd.conf文件来配置vsftpd服务器。大多数ftp配置在配置文件中都有描述。有关所有可用选项,可以官方vsftpd页面进行查询。

执行下述命令打开/etc/vsftpd.conf文件:

sudo vim /etc/vsftpd.conf

配置FTP登录方式

/etc/vsftpd.conf文件中的anonymous_enablelocal_enable设置成如下的配置:

anonymous_enable=YES
local_enable=YES

anonymous_enable:控制是否允许匿名登录。

local_enable:控制是否允许Ubuntu的本地用户登录(ftp客户端可以使用Ubuntu的用户名和密码登录到ftp服务器中)。

限制用户访问其他目录

为防止FTP用户访问其主目录之外的其他目录,在/etc/vsftpd.conf文件中,取消chroot_local_user=YES的注释:

chroot_local_user=YES

并且在/etc/vsftpd.conf文件的末尾添加下述内容,设置ftp用户的主目录为/home

local_root=/home

允许上传和删除操作

/etc/vsftpd.conf文件中,取消write_enable的注释,以允许对文件系统进行更改,例如上传和删除文件。

#用户是否有写的权限
write_enable=YES

/etc/vsftpd.conf文件中,打开匿名用户的一些配置,如果下述配置在/etc/vsftpd.conf文件中没有,可以在配置文件中进行添加:

#允许匿名用户上传
anon_upload_enable=YES

#允许匿名用户创建目录文件
anon_mkdir_write_enable=YES

#允许匿名用户删除文件
anon_other_write_enable=YES

设置匿名用户的默认目录

/etc/vsftpd.conf文件中,增加anon_root的配置,内容如下:

anon_root=/home/ailsonjack/share

anon_root:设置匿名用户的默认路径。

到这里已经完成了对/etc/vsftpd.conf文件的配置,保存退出/etc/vsftpd.conf文件的编辑。

/home/ailsonjack文件夹中创建share文件夹,命令如下:

cd /home/ailsonjack
mkdir share

为了保证匿名用户能够顺利的上传和删除文件,需要在share文件夹中创建ftp文件夹,之后改变ftp文件夹的权限为777,匿名用户就只能在ftp文件夹中进行文件的上传或者删除。

cd share
mkdir ftp
chmod 777 ftp/

使配置生效

设置完成/etc/vsftpd.conf文件之后,执行下述命令重启vsftpd来使设置生效:

sudo systemctl restart vsftpd

禁用防火墙

为了确保ftp服务器能够正常工作,我这里简单的关闭防火墙,命令如下:

sudo ufw disable

关闭防火墙之后,可以执行下述命令查看防火墙的状态:

sudo ufw status

至此,Ubuntu搭建ftp服务器算是完成了,试试吧。

欢迎关注博主的公众号呀(微信搜索公众号:嵌入式那些事),可以扫描下面的公众号二维码(如果公众号图片被CSDN处理了,也可以直接访问我的个人博客文章获取公众号二维码图片):

在这里插入图片描述
如果文中有什么问题欢迎指正,毕竟博主的水平有限。

如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^。

排版更好的内容见我博客的地址:http://www.only2fire.com/archives/151.html

注:转载请注明出处,谢谢!^_^

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

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

相关文章

EndNote(一)【界面+功能介绍】

EndNote界面: 顶上小图标的介绍: ①:同步 ②:分享 ③:检索全文 对于第三个(检索全文的功能): (不做任何操作的情况下的界面,检索全文的按钮是灰的&…

详解:Mybatis参数获取和动态SQL以及分页功能

详解:Mybatis参数获取和动态SQL以及分页功能 前置准备项目结构在pom文件导入依赖创建properties配置文件创建Mapper接口创建Mapper映射文件SqlSession对象创建对应的表在数据库中实体类 SQL语句中的参数获取单个参数两个参数比较参数找不到的情况单个参数&#xff0…

C语言小练习(一)

🌞 “人生是用来体验的,不是用来绎示完美的,接受迟钝和平庸,允许出错,允许自己偶尔断电,带着遗憾,拼命绽放,这是与自己达成和解的唯一办法。放下焦虑,和不完美的自己和解…

自动方向识别式 TXB型电平转换芯片

大家好,这里是大话硬件。 在上一篇文章分析了LSF型的电平转换芯片,LSF型电平转换芯片最常见是应用在I2C总线上。I2C为OD型总线,LSF使用时增加电阻。 对于不是OD型总线的电平转换,比如UART,SPI,普通GPIO口信号,这些信号在进行双向电平转换使用什么样的芯片呢? 从上面…

Python写一个创意五子棋游戏

前言 在本教程中,我们将使用Python的Tkinter库和OpenAI的GPT-3模型构建一个简单的对话弹窗软件,用于与老板进行对话。我们将介绍如何创建图形用户界面、集成OpenAI API以生成回复,并提供一些进一步的扩展和优化建议。 📝个人主页→…

岩土工程安全监测隧道中使用振弦采集仪注意要点?

岩土工程安全监测隧道中使用振弦采集仪注意要点? 岩土工程的安全监测是非常重要的,它可以帮助工程师及时发现可能存在的问题,并及时解决,保障施工进度以及施工质量,保障工程的安全运行。其中,振弦采集仪是…

Liunx系统编程:进程信号的概念及产生方式

目录 一. 进程信号概述 1.1 生活中的信号 1.2 进程信号 1.3 信号的查看 二. 信号发送的本质 三. 信号产生的四种方式 3.1 按键产生信号 3.2 通过系统接口发送信号 3.2.1 kill -- 向指定进程发送信号 3.2.2 raise -- 当自身发送信号 3.2.3 abort -- 向自身发送进程终止…

Docker修改daemon.json添加日志后无法启动的问题

docker实战(一):centos7 yum安装docker docker实战(二):基础命令篇 docker实战(三):docker网络模式(超详细) docker实战(四):docker架构原理 docker实战(五):docker镜像及仓库配置 docker实战(六):docker 网络及数据卷设置 docker实战(七):docker 性质及版本选择 认知升…

视频转云存的痛点

现在运营商体系里面,有大量的视频转云存储的需求,但是视频云存储有一个比较大的痛点,就是成本! 成本一:存储成本; 我们以1000路2M视频转云存,存储时间为90天为例(B端存储时间有时候…

明星都偏爱的多燕瘦活酵素,不含非法添加事件更健康

不少瘦身人士信奉“运动就能瘦”的准则,每天坚持高强度运动,一段时间后却发现,不仅体重没有下降,甚至整个人看起来都变得更加壮实了,这是为什么? 首先,运动是分为减脂和增肌两种类型的&#xff…

我的创作纪念日 - CSDN创作者4周年,感谢平台,未来可期!

CSDN创作者4周年,感谢平台,未来可期! 不知不觉已经加入这个平台4周年了,恍惚昨日之景,有些事情,你不在意,平台却已经写好了程序来给它画上了标记,思想无线,故程序也无边…

Vulnhub靶机系列 Hackadmeic.RTB1

系列:Hackademic(此系列共2台) 难度:初级 信息收集 主机发现 netdiscover -r 192.168.80.0/24端口扫描 nmap -A -p- 192.168.80.143访问80端口 使用指纹识别插件查看是WordPress 根据首页显示的内容,点击target 点击…

(已解决)PySpark : AttributeError: ‘DataFrame‘ object has no attribute ‘iteritems‘

AttributeError: ‘DataFrame’ object has no attribute ‘iteritems’ 原因在使用SparkSession对象中createDataFrame函数想要将pandas的dataframe转换成spark的dataframe时出现的 因为createDataFrame使用了新版本pandas弃用的iteritems(),所以报错 解决办法&…

webSocket 开发

1 认识webSocket WebSocket_ohana!的博客-CSDN博客 一,什么是websocket WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议)它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽…

这些Linux基础命令你总得掌握吧

B站|公众号:啥都会一点的研究生 写在前面 很多深度学习/机器学习/数据分析等领域(或者说大多数在Python环境下进行操作的领域)的初学者入门时是在Windows上进行学习,也得益于如Anaconda等工具把环境管理做的如此友善 但如果想在…

阿里网盘海外使用速度很慢

小虎最近在HK使用阿里云盘,速度突然变得很慢,但是百度的没问题。查了发现是阿里的DNS做的不好,所以换了一个DNS速度就上来了。 解决方案 在这个网站:[原创工具] DNS优选(挑选最合适的DNS服务器,拒绝DNS劫下载DNS推荐工具&#x…

如何取消订阅IEEE membership的email

最近小虎开了一个IEEE Student Member,邮箱都快被IEEE给爆箱了。所以想办法取消订阅其邮件,但是保留其member身份。 方法 在profile界面选择communication preferences and policies, Uncheck所有communications,选择I only want to recei…

Flink内核源码解析--Flink中重要的工作组件和机制

Flink内核源码 1、掌握Flink应用程序抽象2、掌握Flink核心组件整体架构抽象3、掌握Flink Job三种运行模式4、理解Flink RPC网络通信框架Akka详解5、理解TaskManager为例子,分析Flink封装Akka Actor的方法和整个调用流程6、理解Flink高可用服务HighAvailabilityServ…

Spring Cloud Alibaba -微服务架构(二)

1. 微服务架构介绍 微服务架构, 简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。 1.1 微服务架构的常见问题 一旦采用微服务系统架构,就势必会遇到这样几个问题: 这么多小…

最长回文子序列——力扣516

动态规划 int longestPalindromeSubseq(string s){int n=s.length();vector<vector<int>>