温馨提示×

什么是linux sftp用户

小樊
48
2026-09-17 04:40:32
栏目: 智能运维

Linux SFTP 用户指的是在 Linux 系统中,被配置为只能通过 SFTP(SSH File Transfer Protocol)进行文件传输,而不能通过 SSH 登录系统执行命令的专用用户账户。

下面从几个层面来解释:


1. 什么是 SFTP

SFTP 是基于 SSH 协议的安全文件传输协议,常用于:

  • 上传 / 下载文件
  • 远程管理文件目录
  • 替代不安全的 FTP

它和 FTP 不同,不需要单独开 21 端口,而是走 SSH 的 22 端口。


2. 普通用户 vs SFTP 用户

类型 能否 SSH 登录 能否执行命令 能否传文件
普通 Linux 用户 ✅ ✅ ✅
SFTP 专用用户 ❌(通常) ❌ ✅

SFTP 用户的核心目的:

只给文件访问权限,不给系统控制权限


3. 常见的 SFTP 用户配置方式

方式一:使用 internal-sftp(最常用)

在 /etc/ssh/sshd_config 中配置:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    PasswordAuthentication yes

特点:

  • 用户被“锁”在指定目录(Chroot)
  • 无法执行 shell 命令
  • 安全性高

方式二:禁止 shell 登录

创建用户时:

useradd -s /usr/sbin/nologin sftpuser

或:

usermod -s /sbin/nologin sftpuser

这样用户:

  • 不能 SSH 登录
  • 但可能仍可用 SFTP(取决于配置)

4. SFTP 用户的典型使用场景

  • 给客户 / 合作方传文件
  • 服务器日志下载
  • 网站文件维护
  • 自动化备份账号

5. 安全建议

  • 使用 Chroot 限制目录
  • 禁用端口转发
  • 使用独立用户组(如 sftpusers)
  • 尽量使用密钥认证

如果你愿意,我可以:

  • 教你 一步步创建 SFTP 用户
  • 帮你写 完整的 sshd_config 配置
  • 解释 Chroot 权限报错问题

你现在是想“创建”还是“理解原理”?

0 踩