在Linux系统中,设置SFTP(SSH File Transfer Protocol)权限通常涉及以下几个方面:
用户和组权限:
sftp_users。usermod命令将用户添加到该组:sudo usermod -aG sftp_users username
SSH配置:
/etc/ssh/sshd_config文件,确保以下配置项正确设置:Subsystem sftp internal-sftp
Match Group sftp_users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
ChrootDirectory %h将用户的根目录限制在其主目录中。ForceCommand internal-sftp强制使用SFTP子系统。AllowTcpForwarding no和X11Forwarding no禁用TCP和X11转发,以提高安全性。目录权限:
sudo chown root:root /home/username
sudo chmod 755 /home/username
sudo chown username:sftp_users /home/username/upload
sudo chmod 755 /home/username/upload
sudo chown username:sftp_users /home/username/download
sudo chmod 755 /home/username/download
SELinux(如果启用):
sudo setsebool -P sftp_home_dir on
sudo chcon -Rt svirt_sandbox_file_t /home/username
重启SSH服务:
sudo systemctl restart sshd
通过以上步骤,你可以设置Linux系统的SFTP权限,确保用户只能通过SFTP进行文件传输,并且不能访问其他敏感目录。