在 Linux 中,SFTP 权限通常包含三层概念:
1️⃣ 系统用户/组权限
2️⃣ 目录权限(rwx)
3️⃣ SFTP 服务限制(如 chroot、只读等)
下面按常见场景说明。
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
编辑:
vi /etc/ssh/sshd_config
添加或修改:
Match User sftpuser
ChrootDirectory /data/sftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
重启 SSH:
systemctl restart sshd
⚠️ Chroot 目录权限要求:
root755chown 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
setfacl -m u:sftpuser:rwx /data/sftp/share
查看:
getfacl /data/sftp/share
❌ 登陆失败 / broken pipe
❌ 能登录但不能上传
如果你愿意,可以告诉我:
我可以直接给你一套完整配置。