Ubuntu 22.04 安装ftp实现与windows文件互传

Ubuntu 22.04 安装ftp实现与windows文件互传


1、配置安装

安装:

sudo apt install vsftpd -y

使能开机自启:

sudo systemctl enable vsftpd 

启动:

sudo systemctl start vsftpd

创建ftp工作目录:

sudo mkdir -p /home/ftp/uftp

创建一个用于ftp的工作用户uftp:

sudo useradd -d /home/ftp/uftp -m uftp

设置uftp的密码:

sudo passwd uftp

改变ftp工作目录的读写权限:

chmod -R 777 /home/ftp

修改ftp配置文件/etc/vsftpd.conf

先备份一下原文件:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

使用vi编辑器修改:

sudo vim /etc/vsftpd.conf

主要修改的有:

listen=YES
listen_ipv6=NO
chroot_local_user=YES   \\去掉注释

在该文件默认增加:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
local_enable=YES
write_enable=YES
pasv_promiscuous=YES
anonymous_enable=NO
allow_writeable_chroot=YES 

在/etc目录下创建文件allowed_users,该文件中是存储允许ftp登录的本地用户,直接执行以下命令,将我们刚才创建的uftp用户添加进这个文件:

echo uftp >> /etc/allowed_users

最后,重启vsftpd:

sudo systemctl restart vsftpd

2、测试验证

Windows端使用软件FileZilla:

将文件或者文件夹上传到linux:


3、补充说明

vsftpd.conf配置文件说明:

# 示例配置文件,地址: /etc/vsftpd.conf
#
# vsftpd的默认编译设置比较谨慎,这个示例文件会放宽一些限制,使ftp服务更加易用。
# 同时建议查看vsftpd.conf.5文件以了解所有编译默认值。
#
# 特别提醒:这个示例文件并不包含vsftpd选项的所有内容,建议阅读vsftpd.conf.5手册页以充分了解vsftpd的功能。
#
#
# 
# 用来设置vsftpd是否以独立守护进程运行。
# 如果设置为"listen=YES",则表示vsftpd将作为独立守护进程运行;
# 如果设置为"listen=NO",则表示vsftpd将不会以独立守护进程运行,而是通过inetd或者initscript启动。
listen=NO
#
# 设置vsftpd是否启用IPv6监听。
# 如果设置为"listen_ipv6=YES",则表示vsftpd将启用IPv6监听;
# 如果设置为"listen_ipv6=NO",则表示vsftpd将不会启用IPv6监听。
# 默认情况下,IPv6监听地址为"::",同时可以接受IPv6和IPv4客户端的连接。
# 如果你只需要监听IPv4或IPv6地址,则不需要同时启用两种监听,如果你需要同时监听特定的IPv4和IPv6地址,则需要运行两个vsftpd实例,并使用两个不同的配置文件来进行配置。
listen_ipv6=YES
#
# 设置是否允许匿名FTP登录。
anonymous_enable=NO
#
# 设置是否允许本地用户登录FTP服务器。
local_enable=YES
#
# 设置是否允许FTP用户执行写入操作。
# write_enable=YES
#
# 设置本地用户的默认umask值。
# umask是一个三位八进制数,用来控制新建文件或目录的访问权限。
# 在FTP服务器中,local_umask选项用来设置本地用户上传文件或创建目录时的默认权限。
# 默认情况下,local_umask的值为077,表示新建的文件或目录权限为只有所有者可读、可写、可执行,其他用户无权访问。
# 如果你的用户希望默认权限为所有者可读、可写、可执行,其他用户可读、可执行,则可以将local_umask的值设置为022。
local_umask=022
#
# 设置是否允许匿名FTP用户上传文件。
# 如果将该选项的注释去掉(即将“#”删去),并将其值设置为YES,则表示允许匿名FTP用户上传文件。
# 但是,这个选项只有在全局写入权限被激活时才会生效。此外,你还需要创建一个由FTP用户可写的目录,以便匿名FTP用户可以上传文件。
# 需要注意的是,开启匿名FTP用户上传文件功能可能存在一定的安全风险,因此需要谨慎使用。
# anon_upload_enable=YES
#
# 设置是否允许匿名FTP用户创建新目录。
# 如果将该选项的注释去掉(即将“#”删去),并将其值设置为YES,则表示允许匿名FTP用户创建新目录。
# 需要注意的是,开启匿名FTP用户创建新目录功能可能存在一定的安全风险,因此需要谨慎使用。
# anon_mkdir_write_enable=YES
#
# 这段配置文件是用来设置是否启用目录消息功能。
# 如果设置为YES,则表示启用目录消息功能。当远程用户进入某个目录时,会显示该目录的消息。
dirmessage_enable=YES
#
# 设置是否启用本地时间功能。
# 启用本地时间功能后,vsftpd将会在目录列表中显示本地时间而非GMT时间。
use_localtime=YES
#
# 启用上传和下载日志记录功能。
# 启用该功能后,vsftpd会记录每个用户的上传和下载操作,并将其记录到指定的日志文件中。
xferlog_enable=YES
#
# 设置数据传输的端口号。
# 将其值设置为YES,则表示数据传输使用的端口号为20。
connect_from_port_20=YES
#
# 设置匿名用户上传的文件的所有者。
# 设置为YES,则表示上传的文件将会被转换为指定用户的所有权。
# chown_uploads=YES
# 设置为指定的用户名。
# chown_username=whoever
#
# 设置vsftpd日志文件的路径。该路径必须具有可写权限,并且对于vsftpd进程来说,必须具有可访问权限。
# xferlog_file=/var/log/vsftpd.log
#
# 设置vsftpd日志文件的格式。设备为YES则存储为标准ftpd xferlog格式。
# xferlog_std_format=YES
#
# 设置vsftpd空闲会话超时的时间(以秒为单位)。
# idle_session_timeout=600
#
# 设置vsftpd数据连接超时的时间(以秒为单位)。
# data_connection_timeout=120
#
# vsftpd建议在系统中定义一个唯一的用户,供FTP服务器使用,作为完全隔离和无特权的用户。
# nopriv_user选项可以用来指定该用户的用户名。
# nopriv_user=ftpsecure
#
# 用于启用异步ABOR请求的识别。
# 异步ABOR请求是一种FTP客户端请求,用于取消当前正在进行的数据传输操作。
# 启用该选项可以提高FTP服务器的性能,但也会增加安全风险。因为异步ABOR请求的代码比较复杂,可能会被黑客利用进行恶意攻击。
# 所以,如果安全性是首要考虑因素,则不建议启用该选项。
# async_abor_enable=YES
#
# 用于控制FTP服务器是否启用ASCII模式下的文件转换功能。
# 默认情况下,FTP服务器会假装允许ASCII模式,但实际上会忽略该请求。
# 如果需要启用ASCII模式下的文件转换功能,则可以将ascii_upload_enable和ascii_download_enable选项的注释去掉,并将它们的值设置为YES。
# 在ASCII模式下,FTP服务器会将文本文件中的换行符和回车符进行转换,以便在不同操作系统之间进行传输。
# 但是,需要注意的是,ASCII模式下可能存在一些安全风险。例如,攻击者可以利用SIZE命令在ASCII模式下发送一个超大文件名,导致FTP服务器崩溃。
# 因此,建议谨慎使用ASCII模式,并确保FTP服务器已经做好了相应的安全措施。
# ascii_upload_enable=YES
# ascii_download_enable=YES
#
# vsftpd的登录横幅的设置,你可以理解为登录成功后的欢迎词。
# ftpd_banner=Welcome to blah FTP service.
#
# 设备是否拒绝匿名电子邮件地址
# 有助于减轻利用匿名访问FTP服务器进行的拒绝服务(DoS)攻击。如果检测到被禁止的电子邮件地址,服务器将拒绝该用户的访问。
# deny_email_enable=YES
# 如果启用了拒绝匿名电子邮件地址的选项,则通过从指定的文件“/etc/vsftpd.banned_emails”读取被禁止的电子邮件地址列表。
# banned_email_file=/etc/vsftpd.banned_emails
#
# 设备限制本地用户仅访问其home目录。
# 如果启用,则本地用户将仅访问其home目录和其子目录,无法访问其他目录。
# chroot_local_user=YES
#
# 是否允许本地用户,是否将本地用户限制在其主目录中,如果设置为YES,则不会将列在chroot_list_file中的用户限制在其主目录中。
# chroot_local_user=YES
# 是否启用chroot_list_file列表,用于指定哪些用户不应该被限制在主目录中。
# chroot_list_enable=YES
# 指定了chroot_list_file列表的路径和名称。一行一个用户名。
# chroot_list_file=/etc/vsftpd.chroot_list
#
# 否启用ls命令的递归选项“-R”,该选项可以在列出目录内容时递归地列出子目录。
# 默认情况下,该选项被禁用以避免远程用户在大型站点上引起过多的I/O。
# ls_recurse_enable=YES
#
# 自定义配置:
#
# 指定了一个空目录作为安全chroot() jail。
# 在某些情况下,vsftpd不需要访问文件系统,因此可以将FTP用户限制在这个空目录中,以增强安全性。该目录应该为空,并且不应该被FTP用户写入。
secure_chroot_dir=/var/run/vsftpd/empty
#
# 指定vsftpd将使用的PAM服务的名称。
# 默认情况下,pam_service_name的值为“vsftpd”,这意味着vsftpd将使用名为“vsftpd”的PAM服务来进行认证。
# 如果需要使用其他的PAM服务,可以修改该选项的值。
pam_service_name=vsftpd
#
# 用于指定在SSL加密连接中使用的RSA证书的位置。
# 通过设置rsa_cert_file和rsa_private_key_file选项来指定RSA证书和私钥的位置。
# 其中,rsa_cert_file选项用于指定证书文件的位置,而rsa_private_key_file选项用于指定私钥文件的位置。
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
# 是否启用SSL加密连接。
ssl_enable=NO
#
# 指定是否在vsftpd中使用UTF-8编码的文件系统。
# utf8_filesystem=YES

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch-8.11.1 (2+1)HA(高可用)集群部署

目录 一、环境描述 二、安装 ES 2.1 下载Elasticsearch 2.2 解压Elasticsearch 2.3 创建es服务账号/密码 2.3 修改服务器配置 2.4 配置节点 2.4.1 配置说明 2.4.2 配置高可用集群 2.4.2.1 maser节点服务配置 2.4.2.2 node1 节点服务配置 2.4.2.3 node2 节点服务配置…

ARCGIS PRO SDK GeometryEngine处理独立几何图形

1、面积类:pol为Polygon 1).Area:获取几何图形的面积。这是使用二维笛卡尔数学来计算面积的平面测量 double d GeometryEngine.Instance.Area(pol) 2).GeodesicArea:获取几何图形的椭球面积 …

SLAM学习入门--机器学习

文章目录 机器学习逻辑回归(LR)基本原理为什么 LR 要使用 sigmoid 函数?LR 可以用核函数么?为什么 LR 用交叉熵损失而不是平方损失?LR 能否解决非线性分类问题?LR为什么要离散特征?逻辑回归是处…

【JavaScript】垃圾回收与内存泄漏

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…

SPI机制原理+使用

一、概述 SPI全称(Service Provider Interface),是JDK内置的一种服务提供发现机制;SPI机制提供了组件发现和注册方式,可以为应用程序提供灵活的插件机制, 主要原理:接口 反射 配置文件。 二、…

软件测试/测试开发丨Python常用数据结构学习笔记

Python常用数据结构 list 列表 列表定义 列表是有序的可变元素的集合,使用中括号[]包围,元素之间用逗号分隔列表是动态的,可以随时扩展和收缩列表是异构的,可以同时存放不同类型的对象列表中允许出现重复元素 列表使用&#x…

python练习2【题解///考点列出///错题改正】

一、单选题 【文件】 *1.【单选题】 ——文件:读取方法 下列哪个选项可以从文件中读取任意字节的内容?(C )A A.read() B.readline() C.readlines() D.以上全部 A\B\C三种方法都是可以读取文件中任意的字节内容的&#xff0…

消息队列基础知识

学一点,整一点,基本都是综合别人的,弄成我能理解的内容 https://blog.csdn.net/BenJamin_Blue/article/details/125946812 https://blog.csdn.net/qq_46119575/article/details/129794304 📌导航小助手📌 生产者-消费者…

JS作用域:全局作用域,函数作用域,块级作用域

JS作用域:全局作用域,函数作用域,块级作用域 背景作用域全局作用域函数作用域块级作用域通过调用栈分析块级作用域开发者工具查看作用域选项卡示例 背景 由于 JavaScript 存在变量提升这种特性,从而导致很多与直觉不符的代码&…

详解数组的轮转

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

Git 分布式版本控制系统(序章1)

第一章 Git 分布式版本控制系统 为什么学Git? 某些企业面试需要掌握Git,同时,也方便管理自己的Qt项目。 一、Git 客户端下载(Windows) 下载地址 https://gitee.com/all-about-git#git-%E5%A4%A7%E5%85%A8 二、Git 的特点 分支…

vue3引入百度地图(两种方法)

首先要有百度开放平台并进行注册&#xff0c;不懂看这里 ### 第一种方法 地图引入流程 安装vue-baidu-map-3x插件 参考官网地址&#xff1a;快速上手 | vue-baidu-map-3x npm install vue-baidu-map-3x --save 在public/index.html文件中引入 <!-- 百度地图 --> &…

微软开源,全平台通用:Shell 自动补全工具 | 开源日报 No.132

microsoft/inshellisense Stars: 7.6k License: MIT inshellisense 是一个为 Shell 提供 IDE 风格自动补全的工具。它是一个终端本地运行时自动完成&#xff0c;支持 600 多个命令行工具&#xff0c;并且可以在 Windows、Linux 和 macOS 上使用。主要功能包括安装后可通过运行…

HTML教程(1)——概述和第一个网页

一、什么是HTML HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言&#xff0c;而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页 二、什么是HTML 标签 H…

设计模式:工厂方法模式(讲故事图文易懂)

目录 简单工厂工厂方法模式 简单工厂 定义&#xff1a;简单工厂由一个工厂根据参数类型决定创建哪种产品的实例。 简单工厂不包含在23种设计模式之内&#xff08;简单工厂不满足开闭原则&#xff0c;后面会详细讲&#xff09; 举例&#xff1a;张三去4S店买了车&#xff0c;显…

城市生态数据大屏,PSD设计稿

现分享生态系统可视化大数据大屏的 Photoshop 源文件&#xff0c;下载即用&#xff01;以下为截图示意。 若需 更多行业 相关的大屏&#xff0c;请移步小7的另一篇文章&#xff1a;200套精选数据可视化大屏&#xff0c;大屏PSD设计&#xff08;各行业大屏UI&#xff09;https:…

DevExpress 皮肤改变触发后触发的事件,用来保存皮肤配置

代码&#xff1a; private UserLookAndFeel userLookAndFeel; public MainGeneral() {InitializeComponent();// 创建 UserLookAndFeel 实例userLookAndFeel new UserLookAndFeel(this);// 订阅 StyleChanged 事件userLookAndFeel.StyleChanged UserLookAndFeel_StyleChange…

UDP套接字搭建简易服务器与客户端

使用UDP套接字搭建 文章目录 使用UDP套接字搭建前言一、基本结构二、使用步骤1.服务器端2.客户端 三、效果展示总结 前言 这次较上个版本《Python 网络编程之搭建简易服务器和客户端》https://only-me.blog.csdn.net/article/details/135251171增加了&#xff1a; UDP协议来进…

1.PHP简单入门

1.PHP代码执行方式 PHP是在服务器端执行&#xff0c;然后返回给用户结果。 如果直接使用浏览器打开&#xff0c;就会解析为文本。 意思是说&#xff0c;浏览器通过 http请求&#xff0c;才能够执行php页面。 2.PHP代码框架 开启本机服务器&#xff08;下载软件略&#xff09…

数据结构: 位图

位图 概念 用一个bit为来标识数据在不在 功能 节省空间快速查找一个数在不在一个集合中排序 去重求两个集合的交集,并集操作系统中的磁盘标记 简单实现 1.设计思想:一个bit位标识一个数据, 使用char(8bit位)集合来模拟 2.预备工作:a.计算这个数在第几个char b.是这个ch…