Linuxftp服务003虚拟用户登入

2024-05-31 18:52

本文主要是介绍Linuxftp服务003虚拟用户登入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      如果基于Vsftpd系统用户访问FTP服务器,系统用户越多越不利于管理,而且不利于系统安全管理,鉴于此,为了能更加的安全使用Vsftpd,需使用Vsftpd虚拟用户方式。

虚拟用户原理:

虚拟用户就是没有实际的真实系统用户,而是通过映射到其中一个真实用户以及设置相应的权限来实现访问验证,虚拟用户不能登录Linux系统,从而让系统更加的安全可靠。

操作系统:

CentOS Stream 9

操作步骤:

下载软件包

[root@localhost ~]# yum -y install vsftpd pam-devel libdb-utils
上次元数据过期检查:0:48:48 前,执行于 2024年05月31日 星期五 15时40分11秒。
软件包 vsftpd-3.0.5-5.el9.x86_64 已安装。
依赖关系解决。
===============================================================================================================软件包                     架构                  版本                          仓库                      大小
===============================================================================================================
安装:libdb-utils                x86_64                5.3.28-53.el9                 appstream                141 kpam-devel                  x86_64                1.5.1-19.el9                  appstream                161 k

查找文件位置

[root@localhost ~]# rpm -ql libdb-utils | grep bin
/usr/bin/db_archive
/usr/bin/db_checkpoint
/usr/bin/db_deadlock
/usr/bin/db_dump
/usr/bin/db_dump185
/usr/bin/db_hotbackup
/usr/bin/db_load
/usr/bin/db_log_verify
/usr/bin/db_printlog
/usr/bin/db_recover
/usr/bin/db_replicate
/usr/bin/db_stat
/usr/bin/db_tuner
/usr/bin/db_upgrade
/usr/bin/db_verify
[root@localhost ~]# rpm -ql libdb-utils | grep bin |grep db_load
/usr/bin/db_load
[root@localhost ~]# 

创建虚拟用户

[root@localhost ~]# useradd -d /data/web/ -c"vsftpd虚拟用户" -s /sbin/nologin vuser_ftp
[root@localhost ~]# 

查看用户信息

[root@localhost ~]# grep vuser /etc/passwd
vuser_ftp:x:1001:1001:vsftpd虚拟用户:/data/web/:/sbin/nologin
[root@localhost ~]# 

新建虚拟用户配置文件

创建一个记录ftp虚拟用户的用户名和密码文件(文件名随便指定这里用login.txt)

如创建/etc/vsftpd/login.txt文件,并设定用户名和密码

[root@localhost ~]# cat >/etc/vsftpd/login.txt<<EOF
zz
1
pp
1
EOF
[root@localhost ~]# 

生成虚拟用户认证文件

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
[root@localhost ~]# 

查看/etc/vsftpd/vsftpd_login.db密码认证文件权限

[root@localhost ~]# ls -l /etc/vsftpd/vsftpd_login.db
-rw-r--r-- 1 root root 12288  5月 31 17:06 /etc/vsftpd/vsftpd_login.db
[root@localhost ~]# 

把/etc/vsftpd/vsftpd_login.db文件修改为600权限,并查看。

[root@localhost ~]# chmod 600 /etc/vsftpd/vsftpd_login.db
[root@localhost ~]# ls -l /etc/vsftpd/vsftpd_login.db
-rw------- 1 root root 12288  5月 31 17:06 /etc/vsftpd/vsftpd_login.db
[root@localhost ~]# 

查看文件类型

[root@localhost ~]# file /etc/vsftpd/vsftpd_login.db
/etc/vsftpd/vsftpd_login.db: Berkeley DB (Hash, version 9, native byte-order)
[root@localhost ~]# 

查看/etc/vsftpd/vsftpd_login.db 文件,不可直接阅读的二进制数据或加密后的文本

[root@localhost ~]# cat /etc/vsftpd/vsftpd_login.db                                                         эh^[root@localhost ~]# XshellXshell^C
[root@localhost ~]# 

修改ftp服务配置文件/etc/vsftpd/vsftpd.conf,可以把/etc/vsftpd/vsftpd.conf 备份一下然后修改vsftpd.conf 或者备份之后,重写一个vsftpd.conf文件

[root@localhost vsftpd]# cat >/etc/vsftpd/vsftpd.conf<<EOF
> ###### $(date +%F-%T)--- lgb -begin ######
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
listen=YES
userlist_enable=YES
#tcp_wrappers=YES
max_per_ip=5
max_clients=100
###### 下面是关于虚拟用户的配置-begin ######
EOF### $(date +%F-%T)--- lgb -endnd ######.行的两端都不能有空格######
[root@localhost vsftpd]# 

创建vsftpd服务验证文件

(1)使用rpm -ql vsftpd 命令查找验证模块的例文

(2)拷贝到vsftpd.conf文件中配置的路径中并改变文件名

[root@localhost vsftpd]# cp -av `rpm -ql vsftpd  |grep vsftpd.pam` /etc/pam.d/ftp.vu
'/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam' -> '/etc/pam.d/ftp.vu'
[root@localhost vsftpd]# 

修改配置文件

[root@localhost vsftpd]# cat >/etc/pam.d/ftp.vu<<EOF
> auth required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /usr/lib64/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_login
EOF
[root@localhost vsftpd]# 

确认当前操作系统

[root@localhost vsftpd]# uname -r
5.14.0-427.el9.x86_64
[root@localhost vsftpd]# 
[root@localhost vsftpd]# file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=0a2f3573580b1143e3efe56186d85849ca713ce7, for GNU/Linux 3.2.0, stripped
[root@localhost vsftpd]# 

创建每个用户的权限配置文件,存放在/etc/vsftpd/vsftpd_user_conf目录下

[root@localhost vsftpd]# mkdir -pv /etc/vsftpd/vsftpd_user_conf
[root@localhost vsftpd]# 

创建虚拟用户配置文件

[root@localhost vsftpd]# cat >/etc/vsftpd/vsftpd_user_conf/zz<<EOF
> anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
local_root=/data/web/html
allow_writeable_chroot=YES
EOF
[root@localhost vsftpd]# cat >/etc/vsftpd/vsftpd_user_conf/pp<<EOF
> anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
local_root=/data/web/html
allow_writeable_chroot=YES
EOF
[root@localhost vsftpd]# 

创建虚拟用户家目录并修改权限。

[root@localhost vsftpd]# mkdir -pv /data/web/{html,vsftp_data}
mkdir: 已创建目录 '/data/web/html'
mkdir: 已创建目录 '/data/web/vsftp_data'
[root@localhost vsftpd]# chown -R vuser_ftp. /data/web
[root@localhost vsftpd]# 

重启服务

[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# 

操作结果:

[root@localhost vsftpd]# ls -lhrt /data/web/vsftp_data
总用量 0
drwx------ 2 vuser_ftp vuser_ftp 6  5月 31 17:42 云计算
[root@localhost vsftpd]# ls -lhrt /data/web/html
总用量 0
drwx------ 2 vuser_ftp vuser_ftp 6  5月 31 17:43 网络
[root@localhost vsftpd]# 

这篇关于Linuxftp服务003虚拟用户登入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1018764

相关文章

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

Golang服务平滑重启

与重载配置相同的是我们也需要通过信号来通知server重启,但关键在于平滑重启,如果只是简单的重启,只需要kill掉,然后再拉起即可。平滑重启意味着server升级的时候可以不用停止业务。 我们先来看下Github上有没有相应的库解决这个问题,然后找到了如下三个库: facebookgo/grace - Graceful restart & zero downtime deploy for G

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

Java后端微服务架构下的API限流策略:Guava RateLimiter

Java后端微服务架构下的API限流策略:Guava RateLimiter 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在微服务架构中,API限流是保护服务不受过度使用和拒绝服务攻击的重要手段。Guava RateLimiter是Google开源的Java库中的一个组件,提供了简单易用的限流功能。 API限流概述 API限流通过控制请求的速率来防止

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建