最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Ubuntu SFTP权限设置怎样操作
时间:2026-06-09 09:48:48 编辑:袖梨 来源:一聚教程网
Ubuntu SFTP权限设置实操指南

一 环境准备与基础配置
- 安装 OpenSSH 服务器(如未安装):sudo apt update && sudo apt install openssh-server。
- 创建专用用户与用户组:sudo groupadd sftpusers;sudo adduser sftpuser 或 sudo useradd -m -G sftpusers sftpuser。
- 备份并编辑 SSH 服务配置:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak;sudo nano /etc/ssh/sshd_config。
- 在文件末尾添加或修改如下内容,以启用内置 SFTP 并限制仅 SFTP 访问:Subsystem sftp internal-sftpMatch Group sftpusersChrootDirectory %hForceCommand internal-sftpAllowTcpForwarding noX11Forwarding no说明:ChrootDirectory 指定用户登录后的根目录;internal-sftp 更安全且便于权限控制。完成后重启服务:sudo systemctl restart ssh。以上步骤完成后,SFTP 权限的框架即搭建完成。
二 目录结构与权限模型
- 推荐的目录与权限(示例以用户主目录为 /home/sftpuser):
- 根目录(Chroot 目标):sudo chown root:root /home/sftpuser;sudo chmod 755 /home/sftpuser。
- 可写目录(用于上传):sudo mkdir -p /home/sftpuser/upload;sudo chown sftpuser:sftpusers /home/sftpuser/upload;sudo chmod 755 /home/sftpuser/upload。
- 要点:被 Chroot 的目录及其上级目录必须由 root 拥有,且不可对 SFTP 用户可写;用户的可写目录放在其下并授予所属用户(必要时所属组)写权限。
- 多用户共享目录示例(管理员可读写所有,用户仅能访问自身目录):
- 目录:/opt/ftpsite/{admin,user1,user2};组:sftpadmins、sftpusers。
- 权限:chown -R admin:sftpadmins /opt/ftpsite/admin;chmod 700 /opt/ftpsite/admin;chown -R user1:sftpusers /opt/ftpsite/user1;chmod 750 /opt/ftpsite/user1;chown -R user2:sftpusers /opt/ftpsite/user2;chmod 750 /opt/ftpsite/user2。
- 说明:750 表示属主可读写执行,属组可读执行,其他无权限;700 仅属主可访问。以上权限设置可确保隔离与最小权限原则。
三 常见场景配置示例
- 仅 SFTP 且禁止 Shell 登录:创建用户时使用 -s /usr/sbin/nologin(或 /sbin/nologin),并在 sshd_config 的 Match 段保持 ForceCommand internal-sftp,即可实现仅 SFTP 访问。
- 集中根目录(所有 SFTP 用户共享同一 Chroot 根):
- 创建 /sftp_root;sudo chown root:root /sftp_root;sudo chmod 755 /sftp_root;
- 为每个用户创建子目录:/sftp_root/sftpuser;sudo chown sftpuser:sftp_users /sftp_root/sftpuser;sudo chmod 700 /sftp_root/sftpuser;
- sshd_config 中 Match Group sftp_users 的 ChrootDirectory 改为 /sftp_root。
- 端口与加固:如需修改端口,可在 sshd_config 设置 Port 35021 并重启 ssh;同时建议保持 AllowTcpForwarding no、X11Forwarding no,并仅开放必要端口(默认 22 或自定义端口)。
四 验证与故障排查
- 连接测试:sftp sftpuser@your_server_ip(如修改端口:sftp -oPort=35021 sftpuser@ip)。
- 日志排查:查看 /var/log/auth.log 中的 sshd/sftp 登录与权限拒绝信息,可快速定位配置或权限问题。
- 常见问题速查:
- 登录即断开或报错:检查 ChrootDirectory 是否为 root 所有且权限为 755;用户可写目录必须在该根下且由用户或属组拥有。
- 无法上传:确认目标目录对 SFTP 用户具备写权限(如 755 或 775 且用户属于对应组)。
- 配置不生效:确认 sshd_config 语法正确,执行 sudo systemctl restart ssh 重载服务,并避免重复或冲突的 Match 段。
相关文章
- 碧海苍云录闪避流木奶玩法全攻略 06-09
- 荒原曙光异色宠物如何 06-09
- 2026年通义千问提示词怎么写?3个办公场景示例 06-09
- 第五人格六月皮肤排期前瞻:夏日新装与经典返场 06-09
- 逃离鸭科夫新手初期用什么武器合适 06-09
- 卡拉彼丘竞技场如何玩 06-09