当前位置: 首页 > news >正文

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三种模式的简单配置部署

环境&#xff1a;Debian 6.1.27-1kali1 (2023-05-12) vsftpd 安装 --查看是否当前系统是否已安装 apt list --installed | grep vsftpd 没有安装的话&#xff0c;就正常安装 apt-get update apt-get install vsftpd 一、匿名用户模式 分享一些不重要文件&#xff0c;任…...

6.1.tensorRT高级(1)-概述

目录 前言1. tensorRT高级概述总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-概述 课程大纲可看下面的思维…...

【Python】将M4A\AAC录音文件转换为MP3文件

文章目录 m4aaac 基础环境&#xff1a; sudo apt-get install ffmpegm4a 要将M4A文件转换为MP3文件&#xff0c;你可以使用Python中的第三方库pydub。pydub使得音频处理变得非常简单。在开始之前&#xff0c;请确保你已经安装了pydub库&#xff0c;如果没有&#xff0c;可以通…...

个性新颖纯css手风琴效果选项卡

当涉及到个性新颖的纯CSS手风琴效果选项卡时&#xff0c;有多种方法可以实现。以下是三种可能的方法&#xff1a; 三种方法实现 方法一&#xff1a;使用:target伪类和CSS过渡效果 <style>.accordion {width: 300px;}.accordion-item {overflow: hidden;max-height: 0;…...

js的sendBeacon方法介绍

js的sendBeacon方法介绍 Beacon API是一种轻量级且有效的将网页活动记录到服务器的方法。它是一个 JavaScript API&#xff0c;可帮助开发人员将少量数据&#xff08;例如分析或跟踪信息、调试或诊断数据&#xff09;从浏览器发送到服务器。 在本文中&#xff0c;我们将介绍B…...

【Tomcat---1】IDEA控制台tomcat日志输出乱码解决

一、修改IDEA的文件编码配置为UTF-8 二、修改IDEA的vmoptions文件&#xff0c;添加-Dfile.encodingUTF-8 到Tomcat目录/conf文件夹修改logging.properties 重启idea即可。采用统一的编码...

Redis学习路线(2)—— Redis的数据结构

一、Redis的数据结构 Redis是一个Key-Value的数据库&#xff0c;key一般是String类型&#xff0c;不过Value的类型却有很多&#xff1a; String&#xff1a; Hello WorldHash&#xff1a; {name: "jack", age: 21}List&#xff1a; [A -> B -> C -> C]Set…...

【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)

探究Redis服务启动的过程机制的技术原理和流程分析的指南&#xff08;持久化功能分析&#xff09; Redis提供的持久化机制Redis持久化如何工作Redis持久化的故障分析持久化频率操作分析数据库多久调用一次write&#xff0c;将数据写入内核缓冲区&#xff1f;内核多久将系统缓冲…...

IT管理者年过50后何去何从

最近面试了一位前职为IT技术及管理专家&#xff0c;知名院校硕士毕业&#xff0c;唯一不同的是&#xff0c;他是一名已过50岁的IT技术及管理者。一直知道过了50岁&#xff0c;我们估计会有很大的坎&#xff0c;但是那时候从未曾想过连我们保险公司都会因为年龄而拒绝这样优秀的…...

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如何实现热更新&#xff1f; 要使用 Webpack 实现热更新&#xff0c;可以按照以下步骤进行配置&#xff1a; 1.在项目中安装 Webpack 和相关的开发依赖&#xff1a; npm install webpack webpack-cli webpack-dev-server --save-dev2.创建一个名为 webpack.dev.js 的…...

REST API的基础:HTTP

在本文中&#xff0c;我们将深入探讨万维网数据通信的基础 - HTTP。 什么是超文本&#xff1f; HTTP&#xff08;超文本传输协议&#xff09;的命名源于“超文本”。 那么&#xff0c;什么是超文本&#xff1f; 想象一下由超链接组成的文本、图像和视频的混合物。这些链接充当我…...

基于Docker-compose创建LNMP环境并运行Wordpress网站平台

基于Docker-compose创建LNMP环境并运行Wordpress网站平台 1.Docker-Compose概述2.YAML文件格式及编写注意事项3.Docker-Compose配置常用字段4.Docker Compose常用命令5.使用Docker-compose创建LNMP环境&#xff0c;并运行Wordpress网站平台1. Docker Compose 环境安装下载安装查…...

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境3

4、下载MaixPy IDE&#xff0c;MaixPy 使用Micropython 脚本语法&#xff0c;所以不像 C语言 一样需要编译&#xff0c;要使用MaixPy IDE , 开发板固件必须是V0.3.1 版本以上&#xff08;这里使用V0.5.0&#xff09;, 否则MaixPy IDE上会连接不上&#xff0c; 使用前尽量检查固…...

Java语言跨平台执行的核心JVM

本文重点 在前面的课程中,我们介绍了java中的三层JDK->JRE->JVM,其中JVM称为Java的虚拟机,只是用来执行的,JRE是运行环境,要想在操作系统中运行,除了JVM还需要类库,JDK=JRE+开发的包和工具。本文就将介绍一下JVM究竟为何物? JVM 有的人会认为JVM是java中的东西…...

家政服务小程序制作攻略揭秘

想要打造一个家政服务小程序&#xff0c;但是又不懂编程和设计&#xff1f;不用担心&#xff01;下面将为你详细介绍如何利用第三方平台&#xff0c;从零开始打造一个家政服务小程序。 首先&#xff0c;你需要找到一个适合的第三方平台&#xff0c;例如乔拓云网。在乔拓云网的【…...

2023-07-29力扣每日一题

链接&#xff1a; 141. 环形链表 题意&#xff1a; 求链表是否有环 解&#xff1a; 刚好昨天做完的初级算法链表题&#xff0c;翻转和暴力 实际代码&#xff1a; #include<iostream> using namespace std; struct ListNode {int val;ListNode *next;ListNode() : …...

Dual pyramid GAN for semantic image synthesis

为了解决在图像合成时候小物体容易消失&#xff0c;大物体经常作为块的拼接来生成的。本文提出DP-GAN在所有尺度下共同学习空间自适应归一化模块的条件。这样尺度信息就会被双向使用&#xff0c;他统一了不同尺度的监督。(重点看图和代码) SPADE模块解释 GAN在生成包含许多不同…...

【Linux】更换jdk版本

目录 一、前言二、查看jdk版本号1、项目中的版本号&#xff08;pom.xml&#xff09;2、服务器中的版本号 三、更换jdk版本1、创建java文件夹2、下载并解压JDK安装包①、下载jdk安装包②、移动到创建好的/usr/local/java路径下③、解压jdk安装包 四、删除原来的jdk版本1、删除原…...

web-暴力破解密码

Burte Force&#xff08;暴力破解&#xff09;概述 暴力破解”是一攻击具手段&#xff0c;在web攻击中&#xff0c;一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录&#xff0c;直到得到正确的结果。 为了提高效率&…...

基础实验篇 | CopterSim中回传提示消息实验

基础实验篇|CopterSim中回传提示消息实验 01实验名称及目的 回传提示消息实验&#xff1a;在飞控中&#xff0c;我们时常需要向外发布一些文字消息&#xff0c;来反映系统当前的运行状态&#xff0c;这个功能可以通过发送“mavlink_log”的uORB消息来实现。 02实验效果 在Cop…...

vue基础-动态style

vue基础-动态style 1、目标2、语法 1、目标 给标签动态设置style值 2、语法 :style"{style属性名:值}"示例&#xff1a; <template><div id"app"><div><p :style"{backgroundColor:color}">动态styleclass</p>…...

vue3使用响应式数据 + v-model导致响应式失效el-form表单无法输入的问题

文章目录 vue3使用响应式数据 v-model导致响应式失效el-form表单无法输入的问题 vue3使用响应式数据 v-model导致响应式失效el-form表单无法输入的问题 参考文章 重构vue2项目时发现的问题&#xff0c;原始项目使用的是Element-ui。 其实vue3可以使用适配的Element-plus 问…...

线段树详解 原理解释 + 构建步骤 + 代码(带模板)

目录 介绍&#xff1a; 定义&#xff1a; 以具体一个题目为例&#xff1a;​ 树的表示方法&#xff1a; 实现步骤&#xff1a; 构建结点属性&#xff1a; pushup函数&#xff1a; build函数&#xff1a; pushdown函数&#xff1a; modify函数&#xff1a; query…...

Java中Timer的使用

Timer 简述 在Java中&#xff0c;Timer&#xff08;计时器&#xff09;是一个用于安排定时任务的类。它可以实现在指定的时间间隔或指定的时间点执行某项任务或操作。 简单的来说Timer就是在Java中用来实现定时任务的工具。 Timer的API Timer中有两API可以使用分别是schedule…...

关于EJB,这两文把热闹和门道都说清楚了

关于技术的很多概念&#xff0c;如果你是小白&#xff0c;不建议看官网。原因就在于官网描述太抽象&#xff0c;就像八股文&#xff0c;看完感觉好像说了很多&#xff0c;但回过头又感觉似乎啥都没说。太虚、不接地气&#xff0c;是最大毛病。其实这些官网的打太极式的表述&…...

MixFormerV2: Efficient Fully Transformer Tracking

摘要 基于变压器的跟踪器在标准基准测试上取得了很强的精度。然而&#xff0c;它们的效率仍然是在GPU和CPU平台上实际部署的一个障碍。在本文中&#xff0c;为了克服这一问题&#xff0c;我们提出了一个完全变压器跟踪框架&#xff0c;称为MixFormerV2&#xff0c;没有任何密集…...

K8S中网络如何通信

Kubernetes 提出了一个自己的网络模型“IP-per-pod”&#xff0c;能够很好地适应集群系统的网络需求&#xff0c;它有下面的这 4 点基本假设&#xff1a; 集群里的每个 Pod 都会有唯一的一个 IP 地址。Pod 里的所有容器共享这个 IP 地址。集群里的所有 Pod 都属于同一个网段。…...

LangChain Agents深入剖析及源码解密上(三)

AutoGPT案例V1版本 AutoGPT是一个实验性的开源应用程序,展示了GPT-4语言模型的功能,AutoGPT程序由GPT-4驱动,将大语言模型的思考链接在一起,以自主实现设定的任何目标。作为GPT-4完全自主运行的首批例子之一,AutoGPT突破了人工智能的可能性。LangChain框架复现了https://g…...

分布式限流方案及实现

优质博文&#xff1a;IT-BLOG-CN 一、限流的作用和意义 限流是对高并发访问进行限制&#xff0c;限速的过程。通过限流来限制资源&#xff0c;可以提高系统的稳定性和可靠性&#xff0c;控制系统的负载&#xff0c;削峰填谷&#xff0c;保证服务质量。 服务限流后的常见处理…...

私自使用他人图片做网站宣传/推广软文

为什么80%的码农都做不了架构师&#xff1f;>>> 用来保存计算最终结果的 数据库是整个信息系统的重要组成部分&#xff0c; 技术也相对成熟。然而&#xff0c;对于所有数据库而言&#xff0c;除了记录正确的 处理结果之外&#xff0c;也面临着一些挑战&#xff1a;…...

网站前置审批专项/seo搜索优化是什么

字符串的转置&#xff0c;反转&#xff0c;逆序 String s1"1a2b3c"; String s2s1.reverse();//即s2"c3b2a1"如上&#xff0c;可以说s2是s1的转置&#xff0c;反转&#xff0c;逆序。 不严谨的可以认为三个词是同一个意思&#xff0c;在各大算法书中&#…...

营销网站做推广/网站推广策划书范文

Excel2007是我们日常工作和学习的时候常常会用到的软件&#xff0c;而精彩会需要使用到散点图&#xff0c;并为散点图设置标签&#xff0c;可是许多win7系统用户并不知道excel2007散点图如何添加文字标签吧&#xff0c;下面就给大家分享一下具体的操作步骤供大家分享。推荐&…...

页面模板在公号什么地方显示/优就业seo课程学多久

Win7系统提示该磁盘处于脱机状态怎么办&#xff1f;近日有用户在磁盘管理中发现&#xff0c;磁盘提示与另一个联机磁盘发生签名冲突&#xff0c;如何解决这个问题&#xff1f;请看下文具体介绍。解决方法&#xff1a;1、右键点击桌面上的计算机图标→管理&#xff1b;2、计算机…...

企业网站开发实训报告/百度网站的网址是什么

在本文中&#xff0c;我将介绍MySQL执行GROUP BY的四种方法。In this blog post, I’ll look into four ways MySQL executes GROUP BY.在我的上一篇文章中&#xff0c;我们知道了通过索引或者其他的方式获取数据可能不是语句执行最耗时的操作。比如&#xff0c;MySQL 的GROUP …...

效果好企业营销型网站建设开发/seo怎么去优化

1.CallableCallable与Runnable类似&#xff0c;理解Callable可以从比较其与Runnable的区别开始&#xff1a;1.从使用上&#xff1a;实现的Callable的类需要实现call()方法&#xff0c;此方法有返回对象V&#xff1b;而Runnable的子类需要实现run()方法&#xff0c;但没有返回值…...