SFTP权限设置主要涉及用户、目录及SSH配置,核心步骤如下:
创建专用用户和组
sudo groupadd sftpusers # 创建SFTP用户组
sudo adduser sftpuser -M -s /sbin/nologin # 创建用户,禁止SSH登录
sudo usermod -aG sftpusers sftpuser # 将用户加入组
配置SSH限制权限
编辑 /etc/ssh/sshd_config,添加以下内容:
Subsystem sftp internal-sftp # 启用SFTP子系统
Match Group sftpusers # 针对SFTP用户组配置
ChrootDirectory %h # 限制用户根目录为用户主目录
ForceCommand internal-sftp # 强制仅能使用SFTP
AllowTcpForwarding no
X11Forwarding no
ChrootDirectory 需确保主目录权限为 root:root 且权限为 755,避免用户越权。设置目录和文件权限
root,权限 755(用户不可修改主目录本身)。sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
755(或 770 允许组内写)。sudo mkdir /home/sftpuser/uploads
sudo chown sftpuser:sftpusers /home/sftpuser/uploads
sudo chmod 755 /home/sftpuser/uploads # 或 770
重启SSH服务生效
sudo systemctl restart sshd
可选:启用更细粒度权限控制
sudo setfacl -R -m u:sftpuser:rwx /home/sftpuser/specific_dir
Match User 针对单个用户单独配置权限。安全注意事项:
/var/log/auth.log 监控异常登录。完成配置后,可通过 sftp sftpuser@服务器IP 测试连接及权限是否生效。