ubuntu

Ubuntu SFTP权限设置详解

小樊
34
2025-05-28 16:40:58
栏目: 智能运维

在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发行版可能有所不同。

0
看了该问题的人还看了