在Ubuntu系统中设置SFTP权限主要涉及创建用户、配置SSH服务器以及设置文件系统权限。以下是详细的步骤:
1. 创建用户
首先,创建一个新用户(如果尚未创建):
sudo adduser username
为新用户分配密码:
sudo passwd username
按照提示输入并确认密码。
2. 更改用户的默认shell为SFTP
将用户的默认shell更改为SFTP:
sudo usermod -s /usr/sbin/nologin username
3. 创建用于存储用户文件的目录
创建一个新目录,用于存储用户的文件:
sudo mkdir /home/username/uploads
更改新创建的目录的所有者和权限,以便只有该用户可以访问:
sudo chown username:username /home/username/uploads sudo chmod 700 /home/username/uploads
4. 配置SSH服务器以允许SFTP连接
打开SSH配置文件:
sudo nano /etc/ssh/sshd_config
在文件末尾添加以下内容(将 username
替换为你创建的用户名):
Match User username ChrootDirectory /home/username ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
这些设置将限制用户只能访问其主目录中的 uploads
文件夹。
5. 重启SSH服务以应用更改
重启SSH服务以应用更改:
sudo systemctl restart ssh
6. 限制用户权限的额外方法
使用用户组
创建一个新的用户组,例如 sftponly
:
sudo groupadd sftponly
将需要限制权限的用户添加到这个新创建的组中:
sudo usermod -G sftponly user1
编辑 /etc/ssh/sshd_config
文件,以便为SFTP用户应用自定义设置:
sudo nano /etc/ssh/sshd_config
在文件末尾添加以下内容:
Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
保存并关闭文件。
重启SSH服务以应用更改:
sudo systemctl restart ssh
7. 验证设置
现在,用户应该能够通过SFTP连接到系统,并且只能访问其主目录中的指定文件夹。
请注意,以上步骤仅适用于Ubuntu系统。其他Linux发行版可能有所不同。