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

FTP文件服务器

基础环境

mv /etc/yum.repos.d/CentOS-* /tmp/
curl -o /etc/yum.repos.d/centos.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y vim net-tools wget
安装服务
[root@master ~]# yum install -y vsftpd
设置开机自动
[root@master ~]# systemctl enable vsftpd --now
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
永久地在防火墙中添加FTP服务
[root@master ~]# firewall-cmd --permanent --add-service=ftp
success
重新加载防火墙配置
[root@master ~]# firewall-cmd --reload
success
开启ftpd_full_access策略,允许FTP服务具有完全访问权限
[root@master ~]# setsebool -P ftpd_full_access=on

配置匿名用户登录

创建测试目录/opt/ftp,并创建测试文件test.txt
[root@master ~]# mkdir /opt/ftp
[root@master ~]# touch /opt/ftp/test.txt
[root@master ~]# ll /opt/ftp/
total 0
-rw-r--r--. 1 root root 0 Dec 28 04:44 test.txt
编辑修改配置文件/etc/vsftpd/vsftpd.conf
[root@master ~]# vim /etc/vsftpd/vsftpd.conf           
anonymous_enable=YES          #允许匿名用户登录            
anon_root=/opt/ftp            #将匿名用户的根目录设为/opt/ftp ### 这行文件中没有需要手动添加
anon_upload_enable=YES        #允许匿名用户上传文件        
anon_mkdir_write_enable=YES   #允许匿名用户创建文件夹 ### 重启服务使配置生效
[root@master ~]# systemctl restart vsftpd

小提示:允许匿名用户登录等命令是默认开启的,一般为了更方便只需要配置匿名用户的根目录即可。

[root@master ~]# setenforce 0
[root@master ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: dhcpv6-client ftp sshports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 

image-20231227205150101

image-20231227204917052

共享目录中创建文件夹test,结果报错了,报错界面如图7所示

image-20231227205419057

  • 出错原因是系统的本地权限没有设置。设置本地系统权限,可以将属主设置为ftp,或者对/opt/ftp目录赋予其他用户写的权限。
[root@master ~]# ll -d /opt/ftp/
drwxr-xr-x. 2 root root 22 Dec 28 04:44 /opt/ftp/### 第一张方法:
# 将属主更改为匿名用户ftp
[root@master ~]# chown ftp /opt/ftp/
[root@master ~]# ll -d /opt/ftp/    
drwxr-xr-x. 2 ftp root 22 Dec 28 04:44 /opt/ftp/### 第二中方法:
# 赋予其他用户写的权限
[root@master ~]# chmod o+w /opt/ftp/
[root@master ~]# ll -d /opt/ftp/         
drwxr-xrwx. 2 root root 22 Dec 28 04:56 /opt/ftp/

配置本地用户登录

配置本地账户user_test1登录FTP服务器,同时要求禁止匿名用户登录FTP服务器
### 第一种方法:
[root@master ~]# useradd user_test1
[root@master ~]# passwd user_test1
Changing password for user user_test1.
New password:       ### 此处的直接即可,因为是暗文看不到输入
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.### 第二张方法:
[root@master ~]# useradd user_test1
[root@master ~]# echo 000000 | passwd --stdin user_test1
Changing password for user user_test1.
passwd: all authentication tokens updated successfully.
创建FTP账号user_test1并禁止本地登录,然后为其设置登录密码
[root@master ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO             #禁止匿名用户登录            
local_enable=YES                #允许本地用户登录            
local_root=/opt/ftp             #将本地用户的根目录设为/opt/ftp  ### 此行需要自己手动添加       
chroot_local_user=NO            #是否限制本地用户,这也是默认值,可以省略
chroot_list_enable=YES          #激活chroot功能              
chroot_list_file=/etc/vsftpd/chroot_list  #设置锁定用户在根目录中的列表文件        
allow_writeable_chroot=YES      #只要启用chroot就一定加入这条:允许chroot限制,否则出现连接错误
创建/etc/vsftpd/chroot_list文件,添加测试账号
[root@master ~]# cat /etc/vsftpd/chroot_list 
user_test1
重启服务
[root@master ~]# systemctl restart vsftpd

image-20231227210557072

image-20231228101233706

配置虚拟用户登录

创建宿主用户 vuser,虚拟用户的主目录为/var/vuser_dir
[root@master ~]# useradd -m -d /var/vuser_dir -s /sbin/nologin vuser
配置 pam 认证
  • vsftpd 虚拟用户采用 pam 认证,认证数据库可通过 db_load 命令来生成,认证的配置文件由 vsftpd.conf 文件中的 pam_service_name=vsftpd 来指定,存放在 /etc/pam.d/vsftpd
1. 创建虚拟用户的账号和密码
  • /etc/vsftpd/中创建文本文件 vuserlog.txt,其中奇数行为账号,偶数行为密码,存入两个虚拟用户:
    • vuser1,密码为 123456
    • vuser2,密码同样为 123456
[root@master ~]# vim /etc/vsftpd/vuserlog.txt
vuser1
123456
vuser2
123456
2. 生成 pam 认证数据库
[root@master ~]# cd /etc/vsftpd/
[root@master vsftpd]# db_load -T -t hash -f vuserlog.txt vuserlog.db
  • /etc/vsftpd/中利用 vuserlog.txt 文件生成认证数据库 vuserlog.db。如果管理员要修改虚拟用户账号,则只需要修改 vuserlog.txt 文件,然后重新生成数据库即可
3. 修改 pam 认证配置
[root@master ~]# vim /etc/pam.d/vsftpd
#%PAM-1.0
auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vuserlog
account    required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vuserlog
4. 修改 vsftpd.conf 文件
guest_enable=YES
#开启虚拟用户
guest_username=vuser
#指定虚拟用户的宿主
user_config_dir=/etc/vsftpd/vuser_conf
#指定虚拟用户配置文件的存放位置
allow_writeable_chroot=YES  ### 此行在本地用户已配置
#当 chroot 开启时,允许写入权限
5. 配置虚拟用户

创建虚拟用户配置文件的存放目录

[root@master ~]# mkdir /etc/vsftpd/vuser_conf/

创建虚拟用户配置文件

  • 在虚拟用户配置目录中创建虚拟用户配置文件并编写用户配置,同时配置文件必须以虚拟用户名作为文件名,一个虚拟用户具有一份配置文件
[root@master ~]# vim /etc/vsftpd/vuser_conf/vuser1
local_root=/var/vuser_dir
#指定 vuser1 的主目录
write_enable=YES
#开启写入权限
anon_world_readable_only=NO
#开启下载权限
anon_upload_enable=YES
#开启上传权限
anon_mkdir_write_enable=YES
#开启上传权限
anon_other_write_enable=YES
#开启删除、重命名权限
6. 重启服务
[root@master ~]# systemctl restart vsftpd
7.测试

image-20231228112731110

文件夹为空

image-20231228112653911

创建两个文件测试

image-20231228112847900

image-20231228112923806

虚拟机测试

[root@master ~]# cd /var/vuser_dir/
[root@master vuser_dir]# touch vuser.txt

刷新浏览

image-20231228113029304

http://www.jsqmd.com/news/701206/

相关文章:

  • CUDA 13算子优化黄金窗口期仅剩47天(Hopper全系驱动强制升级倒计时):基于217个真实LLM推理kernel的profiling数据集实证优化路径
  • 神经网络联合建模:分类与回归任务的高效解决方案
  • 从零到一:手把手教你搭建Pandabuy风格淘宝代购系统全攻略
  • 假如LLM无限上下文了,RAG还有意义吗?
  • csp信奥赛C++高频考点专项训练之贪心算法 --【删数问题】:删数问题
  • 基于openEuler系统部署MySQL数据库主从
  • 【VSCode 2026工业协议解析插件终极指南】:覆盖Modbus/TCP、OPC UA、CANopen等12类协议,实测解析速度提升370%
  • 微软FinnTS:基于AutoML与LLM Agent的自动化时间序列预测框架
  • Java应用运行时安全防护:基于RASP技术的无侵入探针实战
  • VSCode AI配置速度慢?实测数据:正确配置后首响应≤832ms,错误配置平均延迟4.7s——附性能压测报告
  • 反射驱动的元编程范式跃迁,深度对比C++20/23/26三版本实现差异与面试必答逻辑链
  • 机器学习数据准备框架:从原理到工程实践
  • SuperDesign:在IDE中用AI自然语言生成UI设计与代码
  • 多智能体LLM推理实战:从思维链到自适应思维图
  • Empire渗透测试框架:无文件攻击与C2通信的经典实现与防御启示
  • 分布式任务编排系统OpenClaw:从核心架构到生产实践的深度解析
  • 3步搞定B站字幕下载转换:从零开始获取离线字幕资源
  • 2026年评价高的塑粉稳定供货厂家推荐 - 行业平台推荐
  • Unity UI框架实战:巧用快捷键与层级管理,解决弹窗叠加和界面切换的坑
  • Marksman:深度集成开发工作流的智能文档生成与管理工具实践
  • 如何快速上手KKManager:Illusion游戏模组管理的终极解决方案
  • 【AI Agent实战】8000字源码分析,AI帮我2小时吃透——学技术文章的新姿势
  • 机器学习项目协作平台选型与实战指南
  • ARM CP15协处理器架构与缓存控制技术详解
  • ELK+Kafka+Zookeeper日志收集系统
  • 2026气动设备回收标杆名录:风冷系统回收、食品车间回收、食品车间拆除、CNC铣床回收、PLC伺服设备回收、SMC气动设备回收选择指南 - 优质品牌商家
  • 基于DeepChat框架构建AI对话应用:从原理到实践
  • 一种通用的前端复刻思路:提取 UI 结构数据,交给 AI 生成代码
  • 深度学习目标识别:从分类到检测的完整指南
  • csp信奥赛C++高频考点专项训练之贪心算法 --【删数问题】:删数问题2