Linux vsFTPd服务详解——本地用户登录实战

简介: Linux vsFTPd服务详解——本地用户登录实战

今天继续给大家介绍Linux相关内容,本文主要内容是vsFTPd服务的详解。

一、实战背景
在上文Linux vsFTPd服务详解——vsFTPd基础知识中,给大家简单介绍了vsFTPd服务的基本原理,基本配置和匿名登录的实现。然而,在实际部署时,由于匿名用户登录风险性太大,我们一般都会拒绝匿名用户登录,以提升FTP服务器的安全性。下面,我就给大家介绍一下vsFTPd服务中系统用户的配置方式。

二、实现步骤
FTP进行本地用户登录的配置需要以下5步:
1、建立登录用户
首先,我们需要建立FTP的登录用户,使用useradd命令创建一个用户,并使用passwd命令为该用户创建密码,命令操作如下所示:

useradd ftpuser
passwd ftpuser
1
2
2、修改配置文件
然后,我们需要修改vsFTPd服务的配置文件,禁止匿名用户登录,并且对本地用户登录进行一些必要的设置。
首先,为了禁止匿名用户登录,我们将配置文件中的anonymous_enable设置为NO。接下来,我们需要在配置文件中添加如下内容:

local_root=/var/share
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
1
2
3
4
5
上面部分内容是配置文件中原本就有的,只不过被注释掉了,我们只需要删除前面的#,使得该行内容发挥作用即可。上述第一行表示指定FTP的目标文件夹,可以自行修改为指定的目录,第二行表示允许本地用户登录,第三行表示启动本地用户访问控制列表,并且在第四行指定了该列表文件所在位置。在配置了这两行内容后,就只有在列表上的用户才能够访问FAP服务了,最后一行表示允许本地用户对FTP目录进行写操作。
修改后的配置文件如下所示:

3、添加允许登录用户列表
既然我们已经设置了允许用户登录的列表,接下来我们需要创建该列表文件,并且添加我们刚刚创建的ftpuser用户。创建文件/etc/vsftpd/chroot_list,然后在该文件中写入ftpuser即可,如果我们想要使得多个本地用户可以登录访问,则需要另起一行写入其他的用户。
4、修改本地权限
到这一步,虽然FTP的服务已经配置完毕,但是我们还需要修改指定目录的权限,由于vsFTPd服务的本地用户是ftpuser,因此我们还得保证该目录中FTP用户必须有写的权限,本地权限修改方式举例如下:

chown ftpuser:ftpuser /var/share/
1
当然,也可以通过chmod或者文件访问控制列表setfacl的方式达到同样的效果。
5、重启服务
在完成上述所有配置后,就需要重启vsFTPd服务了,重启命令如下:

systemctl restart vsftpd
1
三、效果验证
在完成上述操作后,我们尝试使用刚刚我们创建的用户登录FTP服务器,发现效果如下所示:

可以看出,我们可以使用本地用户登录FTP服务器。
接下来,我们再尝试使用匿名用户登录FTP服务器,结果如下:

可以看出,虽然表面上我们已经成功登录了FTP服务器,但是其实此时我们不能对FTP服务器进行操作,实际上,如果我们使用windows平台尝试登录FTP服务器,则会直接拒绝,这说明我们没有能够登录FTP服务器。因此,实验成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/121430022

目录
相关文章
|
28天前
|
存储 Linux 网络安全
Linux单节点单硬盘部署MinIO:安装部署MinIO对象存储服务实战指南
MinIO 要求用于存储数据的驱动器必须是独立的、非系统分区,以确保数据的安全性和性能。如果数据目录位于系统根分区,MinIO 会拒绝使用它,并报错。因此我们需要一个新的磁盘来作为MinIO的数据目录挂载点。ext4 是 Linux 系统中广泛使用的一种文件系统,它具备高可靠性、高性能以及支持大文件和大分区等优点。这里使用的是CentOS7版本,使用的是默认下载器yum,如果是CentOS8版本,则使用dnf下载器。挂载/mnt/data到新分区,查看挂载情况。获取新分区/dev/sdb1的UUID。
731 57
|
3月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
541 76
|
2月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
129 25
|
3月前
|
关系型数据库 MySQL 应用服务中间件
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
176 23
|
3月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
87 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
5月前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
293 19
|
5月前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
2567 7
|
7月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
115 5
linux系统服务二!
|
6月前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
下一篇
oss创建bucket