温馨提示×

linux sftp权限怎么设

小樊
38
2026-09-08 01:10:14
栏目: 智能运维

在 Linux 中,SFTP 权限通常包含三层概念:
1️⃣ 系统用户/组权限
2️⃣ 目录权限(rwx)
3️⃣ SFTP 服务限制(如 chroot、只读等)

下面按常见场景说明。


一、基础:Linux 目录权限(最重要)

SFTP 本质还是走文件系统权限。

ls -l /data/sftp

权限示例:

drwxr-x--- 2 user group 4096 date dir

常见权限设置:

# 只允许 owner 读写
chmod 700 /data/sftp

# 同组可读
chmod 750 /data/sftp

# 所有人只读
chmod 755 /data/sftp

修改属主:

chown user:group /data/sftp

二、限制用户只能 SFTP(不能 SSH)

编辑:

vi /etc/ssh/sshd_config

添加或修改:

Match User sftpuser
    ChrootDirectory /data/sftp
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

重启 SSH:

systemctl restart sshd

⚠️ Chroot 目录权限要求

  • 属主必须是 root
  • 权限不能超过 755
chown root:root /data/sftp
chmod 755 /data/sftp

用户实际可写目录:

mkdir /data/sftp/upload
chown sftpuser:sftpuser /data/sftp/upload

三、设置「只读 / 只写」

只读

chmod 555 /data/sftp

只写(不能列目录)

chmod 733 /data/sftp

四、多用户不同权限(推荐方式)

/data/sftp/
├── user1/   # 可读写
├── user2/   # 只读
chown user1:user1 /data/sftp/user1
chmod 700 /data/sftp/user1

chown root:root /data/sftp/user2
chmod 555 /data/sftp/user2

五、使用 ACL 精细控制(高级)

setfacl -m u:sftpuser:rwx /data/sftp/share

查看:

getfacl /data/sftp/share

六、常见问题

登陆失败 / broken pipe

  • Chroot 目录不是 root 拥有
  • 权限 > 755

能登录但不能上传

  • 目录不是该用户拥有
  • 没有 w 权限

如果你愿意,可以告诉我:

  • 单用户还是多用户
  • 只读 / 只写 / 互不可见
  • 用的 CentOS / Ubuntu / 容器

我可以直接给你一套完整配置。

0