在Ubuntu上设置SFTP目录权限需结合用户权限、目录结构及SSH配置,以下是关键步骤:
创建专用用户和组
sudo groupadd sftpusers # 创建用户组
sudo useradd -m sftpuser -g sftpusers # 创建用户并加入组
sudo passwd sftpuser # 设置密码
配置SFTP根目录权限
/home/sftpuser):所有者为root,权限755,限制用户只能访问自身目录。sudo mkdir -p /home/sftpuser
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
/home/sftpuser/uploads):所有者为sftpuser,组为sftpusers,权限775(允许组内用户读写)。sudo mkdir /home/sftpuser/uploads
sudo chown sftpuser:sftpusers /home/sftpuser/uploads
sudo chmod 775 /home/sftpuser/uploads
启用Chroot限制(可选)
编辑/etc/ssh/sshd_config,添加以下内容限制用户仅能访问其家目录:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
重启SSH生效:
sudo systemctl restart ssh
验证权限
使用SFTP客户端连接,确认只能访问指定目录且无法越权操作:
sftp sftpuser@your_server_ip
注意:若需更严格的安全控制,可启用SELinux或AppArmor限制SFTP访问范围。