Linux vsftp三种模式的简单配置部署
环境:Debian 6.1.27-1kali1 (2023-05-12)
vsftpd 安装
--查看是否当前系统是否已安装
apt list --installed | grep vsftpd
没有安装的话,就正常安装
apt-get update
apt-get install vsftpd
一、匿名用户模式
分享一些不重要文件,任何都可等到ftp服务器获取文件信息,配合防火墙将访问范围限制在内网
允许匿名用户登陆获取文件
--修改配置文件,允许匿名用户登陆
(修改配置之前,建议将原始默认配置文件备份,便于以后配置其他ftp服务器使用
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
误删配置文件,可以通过以下命令恢复
sudo apt-get clean
sudo apt-get update
sudo apt-get install --reinstall vsftpd
sudo apt-get purge vsftpd
sudo apt-get install vsftpd )
vi /etc/vsftpd.conf
anonymous_enable=YES --修改为YES允许匿名用户登陆
anon_root=/var/ftp --配置需要分享的ftp根目录
--配置修改完后开启vsftpd服务
systemctl start vsftpd
--检查
netstat -nltp | grep vsftpd
--同一局域网下,这里就可以用window10系统去下载文件了,打开浏览器,输入ftp://开启ftp服务器的ip地址

--若允许匿名用户在ftp服务器目录上写入或者上传文件,可以更改如下配置
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
二、本地用户模式
通过Linux本地账户密码信息进行登陆认证,比匿名用户模式更加安全,有一定的风险:攻击者通过ftp服务器漏洞获取到用户账户信息,即可登陆服务器进行控制。
--修改配置文件
vi /etc/vsftpd.conf
anonymous_enable=NO --关闭匿名用户登陆
local_enable=YES --允许系统用户登陆
write_enable=YES --允许执行修改文件系统的命令
local_mask=022 --采用022作为本地用户新增文件的默认文件权限
(文件默认开放所有全部权限666,需要减少的权限022,则默认文件权限为-rw-r--r--)
--创建一个新系统用户用于实践
adduser admin
(注意这里不要使用useradd无参数创建一个三无用户,无法登陆,使用参数adduser命令按提示创建新用户简单粗暴)
--使用admin用户连接ftp服务器创建一个test文件夹

--使用root用户登陆ftp服务器,发现无法登陆

博主在Debian 6.1.27-1kali1 (2023-05-12) 安装的vsftpd/kali-rolling 3.0.3-13+b2 amd64在/etc目录下没有vsftpd目录,自然也没有vsftpd.user_list,而vsftp.conf文件直接在/etc下,同样在/etc目录下找到ftpusers文件,该文件的所有用户不允许登陆ftp。
--将ftpusers文件里的root用户注释掉,重新登陆成功

tips:root用户从限制文件里移除会增加系统被入侵的风险,这里测试完直接恢复。
三、虚拟用户模式
ftp服务单独提供用户数据库文件,所有非匿名用户均被视为访客,并被映射成一个特定的用户。通过虚拟用户名以及口令进行登陆,即使用户名被破解也无法登陆到主机,相较前两种模式更为安全,同样配置起来也较为复杂。
1>新建虚拟用户名数据库文件
cd /etc
cat >>login_user <<EOF
heredoc> xiongda
heredoc> qwerty
heredoc> xionger
heredoc> 123456
heredoc> EOF
--通过db工具将特定格式文件文件转换成数据库文件
db_load -T -t hash -f /etc/login_user /etc/login_user.db
--降权
chmod 600 login_user.db
ls -l /etc/login_user.db
--删除源文本文件
rm /etc/login_user
2>配置PAM验证(动态加载模块,可按需求动态对验证内容进行变更,配置文件在/etc/pam.d/vsftpd)
vi /etc/pam.d/vsftpd
前面注释掉,末尾添加两行
auth required pam_userdb.so db=/etc/login_user
account required pam_userdb.so db=/etc/login_user
3>将虚拟用户与本地用户映射
useradd ftp_guest --新增一个本地用户
chmod -Rdf 755 /home/ftp_guest --修改该用户主目录权限
vi /etc/vsftpd/conf
guest_enable=YES
guest_username=ftp_guest --所有虚拟用户映射到该访客账户
同时修改其他配置:
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES --将各自虚拟用户限制各自根目录下
allow_writeable_chroot=YES
pam_service_name=vsftpd
user_config_dir=/etc/vsftp_user_conf --自定义用户配置文件夹
4>给不同用户设置不同的目录和权限
(这里给xiongda只读权限,给xionger上传文件和建立目录权限)
cd /home/ftp_quest
mkdir xiongda xionger
chown ftp_guest:ftp_guest xiongda xionger
cd /etc
mkdir vsftp_user_conf --上面配置的自定义配置文件
cd vsftp_user_conf
cat >>xiongda<<EOF
local_root=/home/ftp_guest/xiongda
EOF
----------------------
cat >>xionger<<EOF
write_enable=YES
anon_upload_enable=YES --文件上传权限
anon_mkdir_write_enable=YES --目录创建权限
local_root=/home/ftp_guest/xionger
EOF
重启ftp服务器
systemctl restart vsftpd
xiongda用户无法创建目录

xionger用户可以创建目录

相关文章:
Linux vsftp三种模式的简单配置部署
环境:Debian 6.1.27-1kali1 (2023-05-12) vsftpd 安装 --查看是否当前系统是否已安装 apt list --installed | grep vsftpd 没有安装的话,就正常安装 apt-get update apt-get install vsftpd 一、匿名用户模式 分享一些不重要文件,任…...
6.1.tensorRT高级(1)-概述
目录 前言1. tensorRT高级概述总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-概述 课程大纲可看下面的思维…...
【Python】将M4A\AAC录音文件转换为MP3文件
文章目录 m4aaac 基础环境: sudo apt-get install ffmpegm4a 要将M4A文件转换为MP3文件,你可以使用Python中的第三方库pydub。pydub使得音频处理变得非常简单。在开始之前,请确保你已经安装了pydub库,如果没有,可以通…...
个性新颖纯css手风琴效果选项卡
当涉及到个性新颖的纯CSS手风琴效果选项卡时,有多种方法可以实现。以下是三种可能的方法: 三种方法实现 方法一:使用:target伪类和CSS过渡效果 <style>.accordion {width: 300px;}.accordion-item {overflow: hidden;max-height: 0;…...
js的sendBeacon方法介绍
js的sendBeacon方法介绍 Beacon API是一种轻量级且有效的将网页活动记录到服务器的方法。它是一个 JavaScript API,可帮助开发人员将少量数据(例如分析或跟踪信息、调试或诊断数据)从浏览器发送到服务器。 在本文中,我们将介绍B…...
【Tomcat---1】IDEA控制台tomcat日志输出乱码解决
一、修改IDEA的文件编码配置为UTF-8 二、修改IDEA的vmoptions文件,添加-Dfile.encodingUTF-8 到Tomcat目录/conf文件夹修改logging.properties 重启idea即可。采用统一的编码...
Redis学习路线(2)—— Redis的数据结构
一、Redis的数据结构 Redis是一个Key-Value的数据库,key一般是String类型,不过Value的类型却有很多: String: Hello WorldHash: {name: "jack", age: 21}List: [A -> B -> C -> C]Set…...
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)
探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析) Redis提供的持久化机制Redis持久化如何工作Redis持久化的故障分析持久化频率操作分析数据库多久调用一次write,将数据写入内核缓冲区?内核多久将系统缓冲…...
IT管理者年过50后何去何从
最近面试了一位前职为IT技术及管理专家,知名院校硕士毕业,唯一不同的是,他是一名已过50岁的IT技术及管理者。一直知道过了50岁,我们估计会有很大的坎,但是那时候从未曾想过连我们保险公司都会因为年龄而拒绝这样优秀的…...
C++字符串题基础(进阶请看下一个文章)
打印小写字母表 #include<iostream> #include<string.h> #include<iomanip> #include<stdio.h> #include<cmath> using namespace std; int main() {char na;for(int i1;i<13;i){cout<<n;n;}cout<<endl;for(int i1;i<13;i){c…...
webpack如何实现热更新?
webpack如何实现热更新? 要使用 Webpack 实现热更新,可以按照以下步骤进行配置: 1.在项目中安装 Webpack 和相关的开发依赖: npm install webpack webpack-cli webpack-dev-server --save-dev2.创建一个名为 webpack.dev.js 的…...
REST API的基础:HTTP
在本文中,我们将深入探讨万维网数据通信的基础 - HTTP。 什么是超文本? HTTP(超文本传输协议)的命名源于“超文本”。 那么,什么是超文本? 想象一下由超链接组成的文本、图像和视频的混合物。这些链接充当我…...
基于Docker-compose创建LNMP环境并运行Wordpress网站平台
基于Docker-compose创建LNMP环境并运行Wordpress网站平台 1.Docker-Compose概述2.YAML文件格式及编写注意事项3.Docker-Compose配置常用字段4.Docker Compose常用命令5.使用Docker-compose创建LNMP环境,并运行Wordpress网站平台1. Docker Compose 环境安装下载安装查…...
【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境3
4、下载MaixPy IDE,MaixPy 使用Micropython 脚本语法,所以不像 C语言 一样需要编译,要使用MaixPy IDE , 开发板固件必须是V0.3.1 版本以上(这里使用V0.5.0), 否则MaixPy IDE上会连接不上, 使用前尽量检查固…...
Java语言跨平台执行的核心JVM
本文重点 在前面的课程中,我们介绍了java中的三层JDK->JRE->JVM,其中JVM称为Java的虚拟机,只是用来执行的,JRE是运行环境,要想在操作系统中运行,除了JVM还需要类库,JDK=JRE+开发的包和工具。本文就将介绍一下JVM究竟为何物? JVM 有的人会认为JVM是java中的东西…...
家政服务小程序制作攻略揭秘
想要打造一个家政服务小程序,但是又不懂编程和设计?不用担心!下面将为你详细介绍如何利用第三方平台,从零开始打造一个家政服务小程序。 首先,你需要找到一个适合的第三方平台,例如乔拓云网。在乔拓云网的【…...
2023-07-29力扣每日一题
链接: 141. 环形链表 题意: 求链表是否有环 解: 刚好昨天做完的初级算法链表题,翻转和暴力 实际代码: #include<iostream> using namespace std; struct ListNode {int val;ListNode *next;ListNode() : …...
Dual pyramid GAN for semantic image synthesis
为了解决在图像合成时候小物体容易消失,大物体经常作为块的拼接来生成的。本文提出DP-GAN在所有尺度下共同学习空间自适应归一化模块的条件。这样尺度信息就会被双向使用,他统一了不同尺度的监督。(重点看图和代码) SPADE模块解释 GAN在生成包含许多不同…...
【Linux】更换jdk版本
目录 一、前言二、查看jdk版本号1、项目中的版本号(pom.xml)2、服务器中的版本号 三、更换jdk版本1、创建java文件夹2、下载并解压JDK安装包①、下载jdk安装包②、移动到创建好的/usr/local/java路径下③、解压jdk安装包 四、删除原来的jdk版本1、删除原…...
web-暴力破解密码
Burte Force(暴力破解)概述 暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率&…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
