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.hqwc.cn/news/94962.html

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

相关文章

IP地址、网关、网络/主机号、子网掩码关系

一、IP地址 IP地址组成 IP地址分为两个部分:网络号和主机号 (1)网络号:标识网段,保证相互连接的两个网段具有不同的标识。 (2)主机号:标识主机,同一网段内,主机之间具有相同的网…

自然语言处理(六):词的相似性和类比任务

词的相似性和类比任务 在前面的章节中,我们在一个小的数据集上训练了一个word2vec模型,并使用它为一个输入词寻找语义相似的词。实际上,在大型语料库上预先训练的词向量可以应用于下游的自然语言处理任务,为了直观地演示大型语料…

详解 SpringMVC 的 @RequestMapping 注解

文章目录 1、RequestMapping注解的功能2、RequestMapping注解的位置3、RequestMapping注解的value属性4、RequestMapping注解的method属性5、RequestMapping注解的params属性(了解)6、RequestMapping注解的headers属性(了解)7、Sp…

面试官:说一下 MyBatis 的一级缓存和二级缓存 ?

目录 1. MyBatis 的缓存机制 2. 为什么不默认开启 MyBatis 的二级缓存 3. MyBatis 如何开启二级缓存 4. MyBatis 有哪些缓存清除策略 1. MyBatis 的缓存机制 MyBayis 中包含两级缓存:一级缓存和二级缓存 1. 一级缓存是 SqlSession 级别的,是 MyBati…

swagger 接口测试,用 python 写自动化时该如何处理?

在使用Python进行Swagger接口测试时,可以使用requests库来发送HTTP请求,并使用json库和yaml库来处理响应数据。以下是一个简单的示例代码: import requests import json import yaml# Swagger API文档地址和需要测试的接口路径 swagger_url …

Nginx从入门到精通(超级详细)

文章目录 一、什么是Nginx1、正向代理2、反向代理3、负载均衡4、动静分离 二、centos7环境安装Nginx1、安装依赖2、下载安装包3、安装4、启动5、停止 三、Nginx核心基础知识1、nginx核心目录2、常用命令3、默认配置文件讲解4、Nginx虚拟主机-搭建前端静态服务器5、使用nignx搭建…

Docker技术--Docker简介和架构

1.Docker简介 (1).引入 我们之前学习了EXSI,对于虚拟化技术有所了解,但是我们发现类似于EXSI这样比较传统的虚拟化技术是存在着一定的缺陷:所占用的资源比较多,简单的说,就是你需要给每一个用户提供一个操作平台,这一个…

npm报错sass

1.删除node模块 2.删除node-sass: npm uninstall node-sass 3.重新下载对应版本node-sass: npm i node-sass7.0.3(指定版本 控制台报错什么版本就写什么版本) 4.再运行项目 或者

Java运行时jar时终端输出的中文日志是乱码

运行Jar时在控制台输出的中文日志全是乱码,这是因为cmd/bash默认的编码是GBK,只要把cmd的编码改成UTF-8即可 两种方式修改:临时修改和注册表永久修改 临时修改 只对当前的cmd页面有效,关闭后重新打开都会恢复成GBK, 打开cmd&am…

实战黑马苍穹外卖项目8.1-10.1

文章目录 软件开发的基本流程用户层网关层应用层数据层工具 数据库设计导入准备好的前端和后端工程基础工程代码分析完成员工功能完成菜品功能入门Redis实现店铺营业HttpClient微信小程序开发缓存Spring Cache实现地址功能用户下单实现订单推送状态apache对应的工具使用项目用到…

【LeetCode】85.最大矩形

题目 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 1: 输入:matrix [["1","0","1","0","0"],["1&quo…

Ubuntu学习---跟着绍发学linux课程记录(第二部分)

文章目录 7 文件权限7.1 文件的权限7.2 修改文件权限7.3 修改文件的属主 8、可执行脚本8.2Shell脚本8.3python脚本的创建 9Shell9.1Shell中的变量9.2 环境变量9.3用户环境变量 学习链接: Ubuntu 21.04乌班图 Linux使用教程_60集Linux课程 所有资料在 http://afanihao.cn/java …