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

【Linux服务器】-安装ftp与sftp服务

【Linux服务器】-安装ftp与sftp服务

  • FTP安装:
    • 1. 安装vsftpd
      • 下载安装vsftpd
      • 启动vsftpd
    • 2. 配置vsftpd
      • 创建用户并修改密码
      • 配置用户权限和访问位置
      • 创建chroot_list名单
      • 创建/data/ftp/python目录并赋权
      • 重启vsftpd
    • 3.验证ftp
  • SFTP安装:
    • 1. 修改配置项
      • 创建用户并修改密码
      • 配置文件目录
    • 2. 重启ssh服务
    • 3. 验证访问

FTP安装:

1. 安装vsftpd

下载安装vsftpd

yum install vsftpd

在这里插入图片描述

启动vsftpd

systemctl start vsftpd
systemctl enable vsftpd

在这里插入图片描述

2. 配置vsftpd

创建用户并修改密码

useradd ftpuser
id ftpuser
echo "123$%^789" | passwd ftpuser --stdin

在这里插入图片描述

配置用户权限和访问位置

vim /etc/vsftpd/vsftpd.conf

chroot_local_user=YES
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
local_root=/data/ftp/python

在这里插入图片描述

创建chroot_list名单

vim /etc/vsftpd/chroot_list

创建/data/ftp/python目录并赋权

mkdir -p /data/ftp/python
chmod 777 /data/ftp/python

重启vsftpd

systemctl restart vsftpd
systemctl status vsftpd

3.验证ftp

在这里插入图片描述
在这里插入图片描述

SFTP安装:

1. 修改配置项

vim /etc/ssh/sshd_config
确保以下配置在且未被注释掉

Subsystem sftp /usr/lib/openssh/sftp-server

在这里插入图片描述

Match Group sftpusersChrootDirectory /home/%uForceCommand internal-sftpAllowTcpForwarding noX11Forwarding no

在这里插入图片描述
ChrootDirectory /home/%u
将用户的根目录(chroot)限制在其自身的家目录(/home/用户名)中。
%u 是一个占位符,会自动替换为当前登录的用户名,确保每个用户只能访问自己的家目录,无法切换到系统其他目录(如 /etc、/usr 等),增强安全性。
ForceCommand internal-sftp
强制该用户组的用户只能使用 SSH 内置的 internal-sftp 服务,禁止执行普通的 SSH shell 登录(如通过 ssh 命令进入终端)。
确保用户仅能进行文件传输操作,无法执行系统命令。
AllowTcpForwarding no
禁用 TCP 端口转发功能,防止用户通过 SFTP 隧道绕过限制访问其他服务,进一步限制网络操作权限。
X11Forwarding no
禁用 X11 图形转发功能,由于该用户组仅允许 SFTP,无需图形界面相关功能,关闭后减少潜在安全风险。

创建用户并修改密码

groupadd sftpusers
useradd -m -s /bin/false -g sftpusers sftpuser
echo "123$%^789" | passwd sftpuser --stdin

在这里插入图片描述
useradd
Linux 系统中用于创建新用户的命令(部分系统可能使用 adduser,功能类似)。
-m
自动创建用户的家目录(通常为 /home/sftpuser),并复制 /etc/skel 目录下的默认配置文件(如 .bashrc、.profile 等)。
-s /bin/false
设置用户的登录 shell 为 /bin/false(或 /sbin/nologin),这是一个特殊的 shell,当用户尝试直接登录时会立即退出,从而禁止 SSH 交互式登录。
但该用户仍可通过 SFTP 访问,因为 SFTP 不需要交互式 shell。
-g sftpusers
将用户添加到 sftpusers 用户组,该组应已在 SSH 配置中被限制为仅能使用 SFTP(参考你之前提供的 Match Group sftpusers 配置)。
sftpuser
指定用户名,可根据需要替换为实际名称(如 upload_user、client1 等)。

配置文件目录

mkdir -p /home/sftpuser
chown root:root /home/sftpuser
chmod 755 /home/sftpuser

在这里插入图片描述

mkdir -p /home/sftpuser/upload
chown sftpuser:sftpusers /home/sftpuser/upload

在这里插入图片描述

2. 重启ssh服务

systemctl restart sshd

3. 验证访问

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/582692.html

相关文章:

  • 二刷(李宏毅深度学习,醍醐灌顶,长刷长爽)
  • .NET nupkg包的深度解析与安全防护指南
  • Linux 信号机制:操作系统的“紧急电话”系统
  • 【时时三省】(C语言基础)指针变量作为函数参数
  • 实战:Android 15 (API 35) 适配 构建踩坑全记录
  • Java零基础笔记07(Java编程核心:面向对象编程 {类,static关键字})
  • EXCEL(带图)转html
  • linux wsl2 docker 镜像复用快速方法
  • 解决阿里云ubuntu内存溢出导致vps死机无法访问 - 永久性增加ubuntu的swap空间 - 阿里云Linux实例内存溢出(OOM)问题修复方案
  • 代码详细注释:C语言实现控制台用户注册登录系统
  • Spring Boot + Easy Excel 自定义复杂样式导入导出
  • MySQL 8.0 OCP 1Z0-908 题目解析(22)
  • AI编程的未来是智能体原生开发?
  • MyBatis-Plus:深入探索与最佳实践
  • Vue的初步学习
  • 阿里云mysql数据丢失,如何通过服务器备份在其他服务器上恢复数据,并获取mysql丢失数据,完成mysql数据恢复
  • 如何在 Android Framework层面控制高通(Qualcomm)芯片的 CPU 和 GPU。
  • AWS OpenSearch Dev Tools使用
  • 跨平台软件构建方法及工具介绍
  • HCIA-Cloud 是什么?有啥用?
  • Vue 2现代模式打包:双包架构下的性能突围战
  • 在keil中使用stlink下载程序报错Invalid ROM Table
  • 最新团购源码商城 虚拟商城系统源码 全开源
  • 【笔记】开源 AI Agent 项目 V1 版本 [新版] 部署 日志
  • 【Java安全】RMI基础
  • navicat导出数据库的表结构
  • 【1-快速上手】
  • .NET9 实现对象深拷贝和浅拷贝的性能测试
  • ROS平台上使用C++实现A*算法
  • TensorFlow深度学习实战——基于自编码器构建句子向量