如何在 CentOS/RHEL 7 上创建没有 Shell 访问权限的 SFTP 用户

2023-10-31

本教程将帮助您在 CentOS 和 RedHat 系统上创建仅 SFTP 用户(无 ssh 访问权限)。用户只能通过SFTP访问连接服务器,并允许访问指定目录。用户无法通过 SSH 访问服务器。按照以下教程创建仅限 sftp 的帐户。

第 1 步 – 创建帐户

首先,创建一个用于 sftp 访问的用户帐户。下面的命令将创建名为sftpuser没有 shell 访问权限。


sudo adduser --shell /bin/false sftpuser
sudo passwd sftpuser
  

第 2 步 – 创建目录

现在,创建 sftp 用户可以访问的目录结构。


sudo mkdir -p /var/sftp/files
  

将文件目录的所有权更改为 sftp 用户。这样sftpuser就可以对该目录进行读写。


sudo chown sftpuser:sftpuser /var/sftp/files
  

并将/var/sftp的所有者和组所有者设置为root。 root 用户对此访问具有读/写访问权限。组成员和其他帐户只有读取和执行权限。


sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
  

步骤 3 – 为 SFTP 配置 SSH

现在在文本编辑器中编辑 SSH 配置文件


sudo vim /etc/ssh/sshd_config
  

并在文件末尾添加以下设置。


Match User sftpuser
	ForceCommand internal-sftp
	PasswordAuthentication yes
	ChrootDirectory /var/sftp
	PermitTunnel no
	AllowAgentForwarding no
	AllowTcpForwarding no
	X11Forwarding no
  

保存配置并重新启动 SSH 服务以应用更改。


sudo systemctl restart sshd.service
  

第 4 步 – 测试 SFTP 连接

我使用 FileZilla 从 Windows 系统连接到 SFTP 实例。 Linux 桌面用户还可以使用 Filezilla 进行连接。

对于 Linux 服务器,用户可以使用 sftp 命令行实用程序连接到远程 sftp 实例。


sftp sftpuser@sftp.tecadmin.net

Connecting to sftp.tecadmin.net...
sftpuser@sftp.tecadmin.net's password:
sftp>
  

连接 FileZilla:

由于此帐户配置为仅 SFTP 连接。因此,如果任何用户尝试通过 SSH 连接,身份验证成功后将立即断开连接。用户将收到以下消息:


ssh sftpuser@sftp.tecadmin.net

sftpuser@sftp.tecadmin.net's password:
This service allows sftp connections only.
Connection to sftp.tecadmin.net closed.
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS/RHEL 7 上创建没有 Shell 访问权限的 SFTP 用户 的相关文章

随机推荐

  • 09.语义分割和数据集

    语义分割 PDF part 2 13 pdf d2l ai 视频 46 语义分割和数据集 动手学深度学习v2 哔哩哔哩 bilibili 语义分割 semantic segmentation 问题重点关注于如何将图像分割成属于不同语义类别的
  • 第13章Stata Logistic回归分析

    目录 13 1二元Logistic回归分析 案例延伸 延伸1 设定模型预测概率得具体值 延伸2 使用Probit模型对二分类因变量进行拟合 13 2多元Logistic回归分析 案例延伸 延伸 根据模型预测每个样本视力低下程度的可能性 13
  • Java输入流之BufferReader和Scanner的用法!

    在Java中 我们都知道Java的标准输入串是System in 但是我们却很少在Java中看到谁使用它 这是因为我们平时输入的都是一个字符串或者是一个数字等等 而System in提供的read方法是通过字节来读取数据的 所以对我们来说太
  • react hooks的用法

    一 页面初始化的结构 export const SearchPanel gt 二 声明字段的类型 请求字段类型 const param setParam useState name personId 四 写请求接口的代码 useEffect
  • java随机选人,实现对文本文件操作

    理解 全程无报错 IDEA全绿通过 每步都有注解 因为防止 main主代码 太长 将很多方法都封装了 编程小白 有不足的地方希望能指正出来吧 好的处理点 我觉得自己比较好的地方是 将页面方法返回值 设置为集合 这样打印页面的时候 能返回路径
  • CTF-Crypto题目分析__1

    CTF Crypto题目分析 1 以下所有题目提交flag的格式为SeBaFi 第一题 考察base36编码 下载附件后可得 597142166468670232704404065453992639482284357949191392729
  • Java 敏感词过滤工具类及文本

    最主要最主要的文本在此 链接 https pan baidu com s 163mWeLecBdV1tA1WstXnuw pwd yyds 提取码 yyds 复制这段内容后打开百度网盘手机App 操作更方便哦 工具类代码 就是解析文本进行过
  • 基于PyQT5的学生成绩管理系统(运行简单,简单有文档,带注释,含源码)

    自己做的项目 全CSDN唯一 禁止转载 基于pyqt5的学生成绩管理 带登录注册 基本的学生信息的增加 修改 删除 查询和选课 课程信息的增加 修改 删除 查询 成绩的添加 修改 查询等功能 用pycharm导入 安装依赖包 配置好数据库就
  • Java运算符、流程控制

    Java运算符 流程控制 运算符 算术运算符 public class Demo1 public static void main String args 算术运算符 int x 2046 x x 100 100 System out pr
  • 如何检查 MacOS 版本(GUI+CLI)

    macOS 12 是 Apple 团队的最新版本 它的代号是蒙特雷 源自蒙特雷南部海岸的一片未绘制地图的荒野地区 这是最先进的桌面操作系统 功能和美观达到了新的水平 本教程将介绍如何从桌面和命令行界面检查 macOS 版本 检查 MacOS
  • 如何在 Linux 中编译和安装最新的 Redis

    Redis 是一种开源内存数据结构存储 可用作数据库 缓存和消息代理 它以其高性能 可扩展性和易用性而闻名 在本文中 我们将指导您完成在 Linux 上编译和安装最新 Redis 版本的过程 在开始之前 请确保您拥有 Linux 服务器的管
  • 如何计算 Linux 中文件的行数

    有时您可能需要计算 Unix Linux 系统中文件的总行数 本教程帮助您通过命令行使用多种方法来统计 Linux 系统中文件的行数 计算行数wc Command The wc命令是 Unix Linux 系统的 字计数器 这是 Linux
  • 检查脚本是否在 Linux 中以 root 用户身份运行

    有时 shell 脚本需要以 root 用户身份运行才能以管理员权限执行某些任务 通常 可以使用 Sudo 命令来完成该任务 如果在某些情况下您仍然需要强制用户以 root 用户身份运行脚本 您可以向脚本添加代码来检查脚本是否以 root
  • 如何在 CentOS/RHEL 7.5 和 6.9 上安装 PHP 7.2、Apache 2.4、MySQL 5.6

    PHP团队已经发布了升级版本7 2 与 5 X 版本相比 它有许多变化和改进 本文将帮助您在 CentOS RHEL 7 6 操作系统上安装 PHP 7 Apache 2 4 和 MySQL 5 6 本教程已在CentOS 7 4上进行测试
  • 如何清除 Windows 中的 ASP.NET 临时文件

    开发 ASP NET 应用程序时 框架会编译并存储临时文件以提高性能 随着时间的推移 这些文件可能会累积并占用大量存储空间 定期清除 ASP NET 临时文件可以帮助维护您的开发环境并释放宝贵的磁盘空间 本文提供了有关如何在 Windows
  • 允许 ssm:GetParameter 的 AWS IAM 策略

    AWS Systems Manager SSM Parameter Store 提供集中式安全存储解决方案 用于管理您的配置数据 机密和应用程序设置 使用 SSM Parameter Store 时可能执行的关键操作之一是检索参数的值 在本
  • PHP 技巧:使用分隔符将字符串拆分为数组

    在 PHP 中 将字符串拆分为数组是一项常见任务 可以使用各种函数和技术来完成 这 explode 函数是一个方便高效的选项 它允许您根据分隔符将字符串拆分为数组 在本文中 我们将探讨如何在 PHP 中使用explode 函数将字符串拆分为
  • Visual Studio Code 中 Git 集成的快捷方式

    Git 是一种流行的版本控制系统 开发人员使用它来跟踪代码更改并与其他人在项目上进行协作 Visual Studio Code VS Code 具有内置的 Git 集成 可以轻松地直接从编辑器管理和提交更改 在本文中 我们将讨论 Visua
  • 如何通过 SSH 下载和上传文件

    SSH 是访问远程服务器最安全的协议 它通过通信通道提供最高级别的端到端数据安全性 这SCP 安全复制 命令使用 SSH 协议在远程和本地服务器之间复制文件 远程服务器必须有正在运行的 SSH 服务器 本教程将帮助您了解通过 SSH 协议下
  • 如何在 CentOS/RHEL 7 上创建没有 Shell 访问权限的 SFTP 用户

    本教程将帮助您在 CentOS 和 RedHat 系统上创建仅 SFTP 用户 无 ssh 访问权限 用户只能通过SFTP访问连接服务器 并允许访问指定目录 用户无法通过 SSH 访问服务器 按照以下教程创建仅限 sftp 的帐户 第 1