用户验证FTP实验
用户FTP实验
目录
匿名用户验证:
本地用户验证:
本地用户访问控制:
匿名用户验证:

例:(前提配置,防火墙关闭,yum安装,同模式vmware11)
现有一台计算机huyanggw(视作服务端),IP地址为192.168.50.1,安装了vsftpd服务,并启动
另一台计算机hy02(视为客户端),IP地址为192.168.50.50,安装了ftp服务
1:使用hy02计算机操作:ftp 1920.168.50.1 可进入
Name=ftp passwd:enter(回车) exit退出

2:验证是否允许匿名用户上传文件
anon_upload_enable=[YES|NO]
操作:cd /etc/vsftpd---ll---vim vsftpd.conf
启动服务:systemctl start vsftpd

可以发现默认配置为关闭状态,打开,删除#

进入到/var/ftp,查看

为pub赋予其他人权限chmod 777 pub

匿名用户客户端建立文件aaa.txt

ftp 192.168.50.1
ftp 回车
cd pub ->put aaa.txt->ls查看aaa.txt已经在目录下

3:验证是否允许匿名用户创建目录
anon_mkdir_write_enable=[YES|NO]
操作:设置anon_mkdir_write_enable=YES

wq保存退出,重启服务systemctl restart vsftpd
客户端进入ftp,可以建立a300文件夹

4:验证是否开放匿名用户的其他写入权限(删除、改名) anon_other_write_enable=[YES|NO]
操作: anon_other_write_enable=YES

wq保存退出,重启服务systemctl start vsftpd
客户端进入ftp,将1.txt删除
delete 1.txt 或者 del1.txt

本地用户验证:

例:(前提配置,防火墙关闭,yum安装,同模式vmware11)
现有一台计算机huyanggw(视作服务端),建立普通用户a1,a2,a3,IP地址为192.168.50.1,安装了vsftpd服务,并启动
另一台计算机hy02(视为客户端),IP地址为192.168.50.50,安装了ftp服务

可选配置项:
local_enable=[YES|NO] 是否允许本地用户登录FTP
local_umask=022 本地用户上传文件的umask值
local_root=/var/ftp 本地用户的FTP根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,确保安全
allow_writeable_chroot=YES 是否允许写入
chroot_list_enable=YES|NO 是否启用chroot_list_file
在/etc/vsftpd/chroot_list文件中列出被不限制的用户的列表chroot_list_file=/etc/vsftpd/chroot_list
1:验证是否允许本地用户登录FTP
local_enable=[YES|NO]
操作:默认为YES,直接验证,可以登陆
ftp 192.168.50.1 name=a1 passwd=密码 回车
且umask=022

2:验证是否允许写入、删除
allow_writeable_chroot=YES
操作:添加allow_writeable_chroot=YES,wq保存退出,重启服务systemctl restart vsftpd

删除文件,del 文件名

删除目录,rmdir 文件名

3:验证是否将用户权限禁锢在FTP目录,确保安全
local_root=/var/ftp 本地用户的FTP根目录
chroot_local_user=[YES|NO]
操作:添加chroot_local_user=YES,
删除local_root=/var/ftp的#注释,wq保存退出,
重启服务systemctl restart vsftpd

设置后显示为“/”,不可以切换目录

设置前显示为“/var/ftp”,可以切换目录

4:验证是否启用chroot_list_file以不限制用户列表
chroot_list_enable=YES|NO 是否启用chroot_list_file
在/etc/vsftpd/chroot_list文件中列出被不限制的用户的列表chroot_list_file=/etc/vsftpd/chroot_list
操作:添加chroot_list_enable=YES,
在新建chroot_list目录
在chroot_list添加a1用户,验证是否a1是否可以切换,目录,若可以,验证成功,否则验证失败
重启服务systemctl restart vsftpd

ftp 192.168.50.1
a1 密码 回车
pwd查看当前路径
cd /etc 切换路径 切换成功

ftp 192.168.50.1
a2 密码 回车
pwd查看当前路径
cd /etc 切换路径 切换失败 验证成功

本地用户访问控制:
userlist_enable=YES
userlist_deny=YES
不允许/etc/vsftpd/user_list
文件中出现的用户名登录FTP
userlist_enable=YES
userlist_deny=NO
仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
ftpusers
不允许/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,无论user_list如何设置
1:验证userlist_enable=YES、userlist_deny=YES
不允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
操作:vim /etc/vsftp/vsftp.conf
添加userlist_enable=YES、userlist_deny=YES
vim /etc/vsftp/vsftp.conf 输入a1 wq保存退出
重启服务systemctl restart vsftpd

验证a1用户是否可以登录ftp,若不可以,验证成功;
否则失败 验证成功

2:验证userlist_enable=YES userlist_deny=NO
仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
操作:vim /etc/vsftp/vsftp.conf
添加userlist_enable=YES、userlist_deny=NO

wq保存退出 重启服务systemctl restart vsftpd
验证a1,a2用户是否可以登录ftp,若a1可以a2不可以,验证成功;若a2可以a1不可以,则验证失败 验证成功

3:验证ftpusers
userlist_enable=YES、userlist_deny=YES
不允许/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,无论user_list如何设置
操作:vim ftpusers 输入a1

wq保存退出 重启服务systemctl restart vsftpd
验证a1,a2用户是否可以登录ftp,若a2可以a1不可以,验证成功;若a1可以a2不可以,则验证失败 验证成功

4:验证ftpusers 优先级是否高于userlist_deny=YES
操作:vim ftpusers 输入a1

wq保存退出 重启服务systemctl restart vsftpd
验证a1,a2用户是否可以登录ftp,若a1,a2均不可以,验证成功;若a1仍然可以,则验证失败 验证成功

本地用户使用被动模式传输:
配置项
pasv_enable=YES 启用被动模式
pasv_min_port=2001 被动模式使用的最小端口号
pasv_max_port=2005 被动模式使用的最大端口号
验证:
服务器主配置文件添加上述3条记录
客户端下载文件时,查看端口号
操作:
vim /etc/vsftpd/vsftpd.conf
输入pasv_enable=YES
pasv_min_port=3001
pasv_max_port=3005

wq保存退出 重启服务systemctl restart vsftpd
查看当前端口状态 netstat -anptl

客户端操作:
ftp 192.168.50.1
a1 密码 回车
而后回到服务端 查看当前端口状态 netstat -anptl

相关文章:
用户验证FTP实验
用户FTP实验 目录 匿名用户验证: 本地用户验证: 本地用户访问控制: 匿名用户验证: 例:(前提配置,防火墙关闭,yum安装,同模式vmware11) 现有一台计算机huy…...
App 软件开发《单选4》试卷答案及解析
App 软件开发《单选4》试卷答案及解析 注:本文章所有答案的解析来自 ChatGPT 的回答(给出正确答案让其解释原因),正确性请自行甄辨。 文章目录 App 软件开发《单选4》试卷答案及解析单选题(共计0分)1&#…...
代码随想录算法训练营第三十七天 | 力扣 738.单调递增的数字, 968.监控二叉树
738.单调递增的数字 题目 738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时,我们称这个整数是单调递增的。 给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。 解析 从后向前遍历…...
C++内存总结
1.2 C内存 参考 https://www.nowcoder.com/issue/tutorial?tutorialId93&uuid8f38bec08f974de192275e5366d8ae24 1.2.1 简述一下堆和栈的区别 参考回答 区别: 堆栈空间分配不同。栈由操作系统自动分配释放 ,存放函数的参数值,局部变…...
开发移动端官网总结_Vue2.x
目录 1、自定义加载中效果 2、HTML页面注入环境变量 / 加载CDN和本地库 3、在 Vue 中使用 wow.js 4、过渡路由 5、全局监听当前设备,切换PC端和移动端 6、移动端常用初始化样式 7、官网默认入口文件 8、回到顶部滑动过渡效果(显示与隐藏、滑动置…...
Zookeeper+消息队列Kafka
一、Zookeeper 概述 官方下载地址:Index of /dist/zookeeper 1.1 Zookeeper 定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 1.2 Zookeeper 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设…...
【滤波】设计卡尔曼滤波器
本文主要翻译自rlabbe/Kalman-and-Bayesian-Filters-in-Python的第8章节08-Designing-Kalman-Filters(设计卡尔曼滤波器)。 %matplotlib inline#format the book import book_format book_format.set_style()简介 在上一章节中,我们讨论了教…...
redis主备切换,哨兵模式,缓存穿透、缓存击穿、缓存雪崩问题
主备切换 主从复制指的是把一台Redis服务器的数据复制到其他Redis服务器上,前者称为主节点Master,后者称为从节点Slave,只能从Master单向复制到Slave,一般Master以写操作为主,Slave以读操作为主,实现读写分…...
2023山东icpc省赛总结
距离比赛结束已经一天多了,现在的感觉就是三个字:意难平。 这是我们第一次打现场赛,去之前真的是很激动。因为我们比赛前做了很多其他省的省赛模拟,也做了几套今年别的省的题目,做完会去搜题解,会看到别人写…...
linux0.12-12-fs
[606页] 第12章 文件系统 606–12-1-总体功能 607–12-1-1-MINIX文件系统 611–12-1-2-文件类型、属性和目录项 615–12-1-3-高速缓冲区 616–12-1-4-文件系统底层函数 616–12-1-5-文件中数据的访问操作 618–12-1-6-文件和目录管理系统调用 619–12-1-7-360KB软盘中文件系统…...
快速入门SpringMVC 学习
目录 SpringMVC 定义 MVC定义 创建SpringMVC项目 SpringMVC掌握功能 一、连接功能 RequestMapping(请求映射) GetMapping 和 PostMapping 二、获取参数功能 传递单个参数/多个参数 注意点: RequestParam(前后端参数映射) 前后端参数映射 RequestParam特…...
leetcode96--不同的二叉搜索树[java]
不同的二叉搜索树 leetcode 96 题 不同的二叉搜索树题目描述暴力递归解题思路代码演示执行效率 递归 缓存解题思路代码演示执行效率 动态规划专题 leetcode 96 题 不同的二叉搜索树 原题链接: 难度—中等 https://leetcode.cn/problems/unique-binary-search-trees/ 题目描述 …...
【Spring 项目的创建和使用】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. 创建 Spring 项目 2. 创建一个 普通 Maven…...
数据类型.
数据类型 数据类型分类 数值类型 tinyint类型 数值越界测试: mysql> create table tt1(num tinyint); Query OK, 0 rows affected (0.02 sec)mysql> insert into tt1 values(1); Query OK, 1 row affected (0.00 sec)mysql> insert into tt1 values(128…...
深入了解JavaScript中的Promise
在JavaScript中,异步编程是必不可少的。过去,我们通常使用回调函数来处理异步操作,但回调地狱(callback hell)和复杂的错误处理使得代码难以维护。为了解决这些问题,ES6引入了Promise,它是一种更…...
Solidity基础六
生活本来就是平凡琐碎的,哪有那么多惊天动地的大事,快乐的秘诀就是不管对大事小事都要保持热情 目录 一、Solidity的特殊变量(全局) 二、Solidity的不可变量 immutable的赋值方式 三、Solidity的事件与日志 事件和日志加深理解 四、Solidity的异常…...
自学网络安全解决问题方法
自学网络安全很容易学着学着就迷茫了,找到源头问题,解决它就可以了,所以首先咱们聊聊,学习网络安全方向通常会有哪些问题,看到后面有惊喜哦 1、打基础时间太长 学基础花费很长时间,光语言都有几门…...
Java之旅(七)
Java 异常 Java异常(Exception)是在程序运行过程中出现错误或异常情况时,由程序自动抛出,导致程序无法正常运行,用于向上层调用程序传递错误信息或中断程序执行的一种机制。 异常与错误不同,错误是由于程…...
测试报告模板二
项目名称 系统测试报告 平台测试小组 2023年x月xx日 文档信息 文档名称: 作者:...
C语句概述
1 、 C 语句分类: ①控制语句:二个分支语句( if-else 、 switch ),三个循环语句( for 、 while 、 do - while ),四个转移语句( continue 、 break 、 goto 、 return…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
