Linux学习之vsftpd虚拟用户

/etc/vsftpd/vsftpd.conf里边有几项跟vsftpd虚拟用户有关的主要配置:

guest_enable=YES,允许匿名用户登录vsftpd
guest_username=virtual,指定虚拟用户账户为virtual,就是把虚拟用户映射成Linux本地用户,这样可以使用Linux文件权限进行读取和写入文件
user_config_dir=/etc/vsftpd/vuserconfig,设置用户权限配置目录
allow_writeable_chroot=YES,允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求
pam_service_name=vsftpd.vu,指定PAM文件

接下来就演示一下如何添加vsuser1vsuser2vsuser3三个vsftpd虚拟用户。
1.先创建一个虚拟用户用来映射。
useradd vsvirtual -d /data/ftp -s /sbin/nologin创建一个本地用户vsvirtual,家目录设置为/data/ftp,shell设置为/sbin/nologin,不能用来登录。
在这里插入图片描述
echo "good" >> /data/ftp/good.txt创建一个文件为good.txt,并向里边写入good
在这里插入图片描述

2.添加虚拟用户,配置密码。
/etc/vsftpd/vuser.temp里边写入下边的内容:

vsuser1
Good#123
vsuser2
Good#1223
vsuser3
Good@1223

我这里直接使用下边的命令进行写入操作:

echo "vsuser1" >> vuser.temp
echo "Good#123" >> vuser.temp
echo "vsuser2" >> vuser.temp
echo "Good#1223" >> vuser.temp
echo "vsuser3" >> vuser.temp
echo "Good@1223" >> vuser.temp

在这里插入图片描述
/etc/vsftpd/vuser.temp里边奇数行是用户名,偶数行是密码。
在这里插入图片描述
在这里插入图片描述

db_load -T -t hash -f /etc/vsftpd/vuser.temp /etc/vsftpd/vuser.db/etc/vsftpd/vuser.temp通过hash的方法生成/etc/vsftpd/vuser.db文件,chmod 600 /etc/vsftpd/vuser.db只能让root拥有读写权限。
在这里插入图片描述

3.建立用于支持虚拟用户的PAM文件
vim /etc/pam.d/vsftpd.vuser把下边的内容添加进去:

auth required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

在这里插入图片描述

4./etc/vsftpd/vsftpd.conf主文件里边进行配置。
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/bak_vsftpd.conf/etc/vsftpd/vsftpd.conf复制成/etc/vsftpd/vsftpd.confrm -rf /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf删除,grep -v '^#' /etc/vsftpd/bak_vsftpd.conf >> /etc/vsftpd/vsftpd.conf把注释的内容删除,然后写入到/etc/vsftpd/vsftpd.conf
最后的内容使用cat /etc/vsftpd/vsftpd.conf可以显示出来,只有以下内容:

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YESpam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

在这里插入图片描述

最后把上边的内容添加修改为如下:

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
# 允许匿名用户登录vsftpd
guest_enable=YES
# 指定虚拟用户账户为 vsvirtual
guest_username=vsvirtual
# 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求
allow_writeable_chroot=YES
# 指定PAM文件,因为vsftpd.vuser里边只配置了虚拟用户,所以本地用户和匿名用户就不能使用vsftpd
pam_service_name=vsftpd.vuser
# 设置用户权限配置目录
user_config_dir=/etc/vsftpd/vuserconfig
userlist_enable=YES
tcp_wrappers=YES

在这里插入图片描述

5.配置用户权限文件
mkdir /etc/vsftpd/vuserconfig创建用户权限配置目录/etc/vsftpd/vuserconfig
在这里插入图片描述
vim /etc/vsftpd/vuserconfig/vsuser1,把下边的内容写进去:

# 登录进来后的目录
local_root=/data/ftp
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
download_enable=YES

在这里插入图片描述
6.重新启动并且验证。
systemctl restart vsftpd.service重新启动。
在这里插入图片描述
重新开启一个主机远程登录,ftp 172.31.0.180进行ftp进行连接,然后输入用户名和密码,密码没有显示出来,等待时间有点久。
在这里插入图片描述

ls可以看到上边Sea1上边创建的good.txt文件信息。

get good.txt从服务器上下载good.txt!cat good.txt看一下本地good.txt里边的内容。

在这里插入图片描述

quit退出。
在这里插入图片描述

此文章为9月Day 2学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。

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

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

相关文章

【C++】C++11新特性(下)

上篇文章(C11的新特性(上))我们讲述了C11中的部分重要特性。本篇接着上篇文章进行讲解。本篇文章主要进行讲解:完美转发、新类的功能、可变参数模板、lambda 表达式、包装器。希望本篇文章会对你有所帮助。 文章目录 一…

用反射实现自定义Java对象转化为json工具类

传入一个object类型的对象获取该对象的class类getFields方法获取该类的所有属性对属性进行遍历,并且拼接成Json格式的字符串,注意:通过属性名来推断方法名获取Method实例通过invoke方法调用 public static String objectToJsonUtil(Object o…

C++指针、指针函数、函数指针、类指针

1、指针变量 #include <iostream>using namespace std;int main () {int var 20; // 实际变量的声明int *ip; // 指针变量的声明ip &var; // 在指针变量中存储 var 的地址cout << "Value of var variable: ";cout << var …

MVC模式分层练习

新建库 新建表 插入点数据 先不用MVC模式写功能,来看下缺点是什么 新建一个空项目 选项项目使用的JDK 自己的IDEA总是要重启下 新建模块 因maven还没教 添加框架支持 添加后项目多了这些 添加些必要依赖 这里注意下,如果导入jar包不对可以重新导入下或者是jar包本身出了问…

stable diffusion实践操作-writing

文章目录 前言一、优点1.1、免费开源1.2、拥有强大的外接模型 二、组成要素2.1 底模2.2 风格2.3 提示词2.4 参数配置 三、生图原理四、下载链接 实践正文一、安装1.1 电脑硬件配置查看1.2 安装本地版本的stable diffusion1.3 SD使用教程 二、模型介绍与下载2.1大模型2.2 Lora模…

C语言每日一练--------Day(8)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字&#xff1a;图片整理 寻找数组下标 &#x1f493;博主csdn个人主页&#xff1a;小小…

安服面试 --- 01

1、常用渗透工具 burp、nmap、sqlmap、蚁剑、御剑、冰蝎、cobalt strike等 2、渗透测试中&#xff0c;拿到目标公司站点&#xff0c;接下来应该怎么做&#xff1f; &#xff08;1&#xff09;信息收集&#xff1a;收集目标公司的相关信息。包括域名、ip地址、子域名、开放端…

浅谈一下企业信息化管理

企业信息化管理 企业信息化是指将企业的生产过程&#xff0c;物料&#xff0c;事务&#xff0c;财务&#xff0c;销售等业务过程数字化&#xff0c;通过各种信息系统网络价格成新的信息资源&#xff0c;提供给各层次的人们东西观察各类动态业务中的一切信息&#xff0c;以便于…

POJ 3045 Cow Acrobats 二分+优先队列

一、题目大意 题目中给出了N头牛&#xff0c;这些牛要互相叠罗汉&#xff0c;牛i承担的风险risk[i]为牛i上面的牛的质量之和sum[i]&#xff08;如果上面没有牛就是0&#xff09;减去牛i的力量strength[i]&#xff0c;即risk[i]sum[i]-strength[i] 我们要优化这个叠罗汉的顺序…

学习大数据应该掌握哪些基础语言

大数据技术的体系庞大且复杂&#xff0c;每年都会涌现出大量新的技术&#xff0c;目前大数据行业所涉及到的核心技术主要就是&#xff1a;数据采集、数据存储、数据清洗、数据查询分析和数据可视化。 学习大数据需要掌握什么语言基础&#xff1f; 1、Java基础 大数据框架90%以…

安防监控/视频存储/视频汇聚平台EasyCVR接入海康Ehome车载设备出现收流超时的原因排查

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚平台既具…

C++ for 循环

for 循环允许您编写一个执行特定次数的循环的重复控制结构。 语法 C 中 for 循环的语法&#xff1a; for ( init; condition; increment ) {statement(s); }下面是 for 循环的控制流&#xff1a; init 会首先被执行&#xff0c;且只会执行一次。这一步允许您声明并初始化任…

1688API技术解析,实现关键词搜索淘宝商品(商品详情接口等)批量获取,可高并发

要使用1688API接口采集商品详情&#xff0c;可以按照以下步骤进行&#xff1a; 获取API接口权限&#xff1a;申请1688的app key和app secret&#xff0c;并获取access_token。 编写API请求代码&#xff1a;使用Python等编程语言&#xff0c;编写API请求代码。以下是一个Python…

​LeetCode解法汇总56. 合并区间

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 以数组 in…

如何使用Java进行机器学习?

在Java中进行机器学习&#xff0c;可以使用各种开源机器学习库和框架来实现。以下是一些常用的Java机器学习库&#xff1a; Weka&#xff1a;Weka 是一个非常流行的机器学习库&#xff0c;提供了大量的算法和工具&#xff0c;以及用于数据预处理、特征选择和可视化的功能。 De…

ARM Cortex-M 的 SP

文章目录 1、栈2、栈操作3、Cortex-M中的栈4、MDK中的SP操作流程5、Micro-Lib的SP差别1. 使用 Micro-Lib2. 未使用 Micro-Lib 在嵌入式开发中&#xff0c;堆栈是一个很基础&#xff0c;同时也是非常重要的名词&#xff0c;堆栈可分为堆 (Heap) 和栈 (Stack) 。 栈(Stack): 一种…

【Maven】如何发现,定位,解决依赖冲突

发现冲突 运行的时候可能报出错误xx类找不到xx方法&#xff0c;xx类找不到&#xff0c;很有可能就是冲突导致的。 定位冲突根因 通过idea maven插件 idea安装插件&#xff0c;maven helper 比如我有两个依赖&#xff0c;guava和findbug。 他们都用到了jsr305&#xff0c;…

可观测性用观测云,观测云护航「杭州亚运会」

2023 年亚洲运动会定于 2023 年 9 月 23 日至 10 月 8 日在中国杭州举办&#xff0c;这是在党的二十大召开后&#xff0c;我国疫情防控措施优化调整后举办的最大规模、最高水平的国际综合性运动会&#xff0c;意义十分重大。杭州亚组委以「举办一届史上最成功的亚运会」为工作目…

任意文件读取和下载

任意文件读取是什么&#xff1f; 一些网站的需求&#xff0c;可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕就可以查看或下载任意文件。这些文件可以是源代码文件配置文件敏感文件等等。过&#xff0c; 任意文件读取会造成(敏感)信息泄露;任意…

14:00面试,14:08就出来了,问的问题有点变态

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%,…