在Ubuntu系统中,SFTP(SSH File Transfer Protocol)的权限设置主要涉及到以下几个方面:
用户和用户组权限:
确保SFTP用户属于正确的用户组,通常情况下,SFTP用户应该属于sftp-users
或类似的组。你可以使用以下命令将用户添加到相应的组:
sudo usermod -a -G sftp-users username
然后,确保/etc/ssh/sshd_config
文件中的Subsystem sftp
配置如下:
Subsystem sftp /usr/lib/openssh/sftp-server
目录权限: 为了确保SFTP用户只能访问其主目录,你需要设置正确的目录权限。以下是一些建议的权限设置:
/home/username
):755权限,所有者为root。/home/username
):755权限,所有者为SFTP用户。/home/username/uploads
):775权限,所有者为SFTP用户,用户组为sftp-users。使用以下命令设置权限:
sudo chmod 755 /home/username
sudo chown root:root /home/username
sudo chmod 755 /home/username/uploads
sudo chown username:sftp-users /home/username/uploads
chroot环境: 如果你希望限制SFTP用户只能访问其主目录,可以使用chroot环境。要实现这一点,请按照以下步骤操作:
编辑/etc/ssh/sshd_config
文件,找到或添加以下配置:
Match Group sftp-users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
确保chroot目录(例如/home/username
)的权限设置正确:
sudo chmod 755 /home/username
sudo chown root:root /home/username
在chroot目录中创建一个子目录,用于存放用户的文件,例如uploads
,并设置正确的权限:
sudo mkdir /home/username/uploads
sudo chown username:sftp-users /home/username/uploads
重启SSH服务以应用更改:
sudo systemctl restart ssh
按照以上步骤设置权限后,你应该能够成功配置Ubuntu系统上的SFTP权限。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:Ubuntu SFTP如何防止攻击