Centos搭建FTP

FTP搭建

安装vsftpd

#安装vsftpd
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
systemctl restart vsftpd

创建测试用户

#创建测试用户
useradd -d /home/ftptest -g ftp -s /sbin/false ftptest
passwd ftptest #admin12@#$..
echo "/sbin/false">>/etc/shells
#并将用户添加到chroot_list中 只添加用户名
vi /etc/vsftpd/chroot_list

配置防火墙

#配置防火墙
firewall-cmd --zone=public --add-port=21/tcp --permanent 
# 重启防火墙
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

FTP配置更改

vim /etc/vsftpd/vsftpd.conf#配置config
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YESpam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#设置本地用户登录后所在目录。
# local_root=/var/ftp/test
##全部用户被限制在主目录。
chroot_local_user=YES
##启用例外用户名单。
chroot_list_enable=NO
##指定例外用户列表文件,列表中用户不被锁定在主目录。
#chroot_list_file=/etc/vsftpd/chroot_list
##开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
##本教程中为Linux实例的公网IP。
pasv_address=101.126.18.12
##设置被动模式下,建立数据传输可使用的端口范围的最小值。
##建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
##设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010
cmds_allowed=MKD,FEAT,REST,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

FTP配置详解

关于userlist_enable的解释https://blog.csdn.net/weixin_34411563/article/details/92101684

参数默认值描述
anonymous_enableYES控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。
write_enableYES是否允许登陆用户有写权限。全局设置,默认值为YES。
no_anon_passwordNO若启动此功能,则匿名登入时不会询问密码。默认值为NO。
ftp_usernameftp定义匿名登入的用户名。默认值为ftp。
anon_root/var/ftp匿名登入时所登入的目录。默认值为/var/ftp。注意,ftp目录不能具有777权限属性。
anon_upload_enableNO如果设为YES,则允许匿名登入者上传文件(非目录),前提是write_enable=YES,并且匿名用户必须具有对上层目录的写入权限。默认值为NO。
anon_world_readable_onlyYES如果设为YES,则允许匿名登入者下载可读的文件(下载到本地阅读,不能直接在FTP服务器中打开)。默认值为YES。
anon_mkdir_write_enableNO如果设为YES,则允许匿名登入者创建目录,前提是write_enable=YES,并且匿名用户必须具有对上层目录的写入权限。默认值为NO。
anon_other_write_enableNO如果设为YES,则允许匿名登入者除了上传和创建目录外的其他操作,例如删除或重命名文件。默认值为NO。
chown_uploadsNO设置是否更改匿名用户上传文件的所有者。默认值为NO。
chown_usernameusername设置匿名用户上传文件的所有者名称。建议不设置为root。
anon_umask077设置匿名用户上传或创建文件时的umask值。默认为077,即新创建的文件权限为700。
deny_email_enableNO若启用此功能,则必须提供/etc/vsftpd/banner_emails文件,其中包含不允许访问的email地址。匿名登入时会要求输入email地址,如果地址在此文件中,则拒绝访问。默认值为NO。
banned_email_file/etc/vsftpd/banner_emails包含不允许访问的email地址的文件路径。仅在deny_email_enable=YES时使用。
local_enableYES控制是否允许本地用户登入,YES为允许,NO为不允许。默认值为YES。
local_root/home/username本地用户登入时切换到的目录。默认为各用户的家目录。
local_umask022本地用户创建文件时的umask值。默认为022。
file_open_mode0755本地用户上传文件后的文件权限。与chmod使用的数值相同。默认为0666。
dirmessage_enableYES如果启用此选项,用户首次进入目录时,系统会检查是否存在.message文件,并显示其内容(通常为欢迎信息或目录说明)。默认为开启。
message_file.message设置目录消息文件的名称,文件中包含要显示的信息。默认为.message。
banner_file/etc/vsftpd/banner用户登入时显示的欢迎信息或说明的文件路径。默认为无。如果欢迎信息较多,则使用此配置项。
ftpd_bannerWelcome to BOB’s FTP server定义显示的欢迎信息字符串。banner_file为文件形式,而ftpd_banner为字符串形式。默认为无

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

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

相关文章

【单片机毕业设计选题24054】-基于STM32的水质检测系统

系统功能: 主要功能模块原理图: 电源时钟烧录接口: 单片机和按键输入电路: 传感器采集电路: 资料获取地址 系统主要功能模块代码 初始化代码: /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration-----------------------------------------------…

SpringSecurity(Authorization Events)

Authorization Events 对于每个被拒绝的授权,都会激发一个 AuthorizationDeniedEvent。此外,还可以为授予的授权激发 AuthorizationGrantedEvent。 若要侦听这些事件,必须首先发布 AuthorizationEventPublisher。 Spring Security 的 Spri…

编译Linux内核, 制作迷你系统并在虚拟机里运行(2)

编译制作环境:ubuntu20.0.4 一,参考文档 Linux 系统裁剪--制作一个最小化的Linux iso镜像 https://blog.csdn.net/alfiy/article/details/122568957 按照上述文档的步骤,制作的iso启动不了,经过多次尝试,发现生成的…

【Go - 常见的5类函数用法】

函数 函数通过func关键字定义,后跟函数名、参数列表、返回类型。语法如下: func functionName(parameters) returnType {// 函数体 }示例 func add(x int, y int) int {return x y }func swap(x, y string) (string, string) {return y, x }变参函数…

电脑虚拟摄像头怎么使用?电脑摄像头可以被虚拟摄像头替代吗?8款推荐!

在数字化日益普及的今天,视频通话和在线会议已成为我们生活和工作中不可或缺的一部分。然而,当我们的电脑没有配备摄像头,或摄像头出现故障时,我们可能会面临一些不便。这时,电脑虚拟摄像头便成为了一个实用的解决方案…

C# 策略模式(Strategy Pattern)

策略模式定义了一系列的算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。 // 策略接口 public interface IStrategy { void Execute(); } // 具体策略A public class ConcreteStrategyA : IStra…

前端面试题37(js递归)

在JavaScript中,递归是一种编程技术,它允许函数调用自身来解决问题。这种方法通常用于处理分治策略的算法,比如遍历树形结构、计算阶乘、 Fibonacci数列等。下面通过几个示例来说明如何使用递归。 1. 计算阶乘 阶乘是一个经典的递归示例&am…

[激光原理与应用-102]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 6 - 激光焊接系统的组成

目录 一、激光焊接系统的组成概述 1.1、核心部件 1.2、焊接执行部件 1.3、辅助系统 1.4、控制系统 1.5、其他辅助设备 二、激光器 2.1 按出光类型分 1. 脉冲激光器 2. 连续激光器 3. 准连续激光器(QCW) 4. 其他常见激光器 5. 应用领域 2.2…

SDK游戏盾、高防IP和高防CDN有什么区别

SDK 游戏盾、高防 IP 和高防 CDN 主要有以下区别: SDK 游戏盾: • 原理:通常需要集成到游戏应用程序中,通过在游戏客户端和服务器之间建立加密通道和智能调度,实现对游戏的防护。 • 特点:能更深入地与游…

C 语言中如何进行冒泡排序?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…

JVM内存泄露的ThreadLocal详解

目录 一、为什么要有ThreadLocal 二、ThreadLocal的使用 三、实现解析 实现分析 具体实现 Hash冲突的解决 开放定址法 链地址法 再哈希法 建立公共溢出区 四、引发的内存泄漏分析 内存泄漏的现象 分析 总结 错误使用ThreadLocal导致线程不安全 一、为什么要有Thr…

Qt开发 | Qt绘图技术 | 常见图像绘制 | Qt移动鼠标绘制任意形状 | Qt绘制带三角形箭头的窗口

文章目录 一、基本绘图技术介绍二、常见的18种图形、路径、文字、图片绘制三、Qt移动鼠标绘制任意形状四、Qt绘制带三角形箭头的窗口 一、基本绘图技术介绍 Qt提供了绘图技术,程序员可以在界面上拖动鼠标,或者在代码里指定参数进行绘图。 Qt绘图技术介绍…

如何在 C 语言中实现链表?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…

vue子组件调用父组件方法

父组件 页面<popoverss ref"pop" :goodspop"goodspop"></popoverss>子组件components: {"popoverss": () > import(../comm/popover.vue)},方法goodspop(e){console.log(e"----")return 9999;},子组件 方法props:[go…

习题练习以

题意&#xff1a;求i&M的popcount的和&#xff0c;i属于0……N 主要思路还是变加为乘。 举个例子N22&#xff0c;即10110 假设M的第3位是1&#xff0c;分析N中&#xff1a; 00110 00111 00100 00101 发现其实等价于 0010 0011 0000 0001 也就是左边第4位和第5…

《AIGC:智能创作时代》:AI创作革命来临,你准备好了吗?

想象一下&#xff0c;你正在欣赏一幅精美的画作&#xff0c;惊叹于其细腻的笔触和独特的构图。然而&#xff0c;当你得知这幅作品是由人工智能创作时&#xff0c;你会作何感想&#xff1f;这不再是科幻小说中的场景&#xff0c;而是我们正在经历的现实。 在这个AI技术飞速发展的…

QListWidget、QTreeWidget、QTableWidget的拖放

QListWidget、QTreeWidget、QTableWidget的拖放实验 QAbstractItemView::DragDropMode 的枚举值 QAbstractItemView::NoDragDrop0组件不支持拖放操作QAbstractItemView::DragOnly1组件只支持拖动操作QAbstractItemView::DropOnly 2组件只支持放置操作QAbstractItemView::DragDr…

AI 图像处理 --CodeFormer 简介

CodeFormer是一款基于深度学习技术&#xff0c;特别是利用自动编码器和VQGAN&#xff08;Vector Quantised Generative Adversarial Network&#xff09;进行人脸修复和视频增强的强大人工智能工具。它通过高分辨率重建和细节修复&#xff0c;显著提升了图像和视频的质量和视觉…

Django 视图 - FBV 与 CBV

Django 视图 - FBV 与 CBV 在 Django 框架中,视图是处理 Web 请求和返回 Web 响应的核心组件。Django 提供了两种主要的视图编写方式:函数基础视图(Function-Based Views,简称 FBV)和类基础视图(Class-Based Views,简称 CBV)。这两种方式各有特点,适用于不同的场景。…

WPF设置全局样式

目的 创建一个资源字典&#xff0c;自动引入到各个Window或者UserControl中&#xff0c;可以随意使用。或者引入多个控件包&#xff0c;为了做兼容&#xff0c;保证可以引用多个控件库。 1. 定义资源字典 首先&#xff0c;你需要创建一个XAML文件来定义你的资源字典&#xf…