如何创建 sftp 用户以仅访问特定目录?

如何创建 sftp 用户以仅访问特定目录?

我想为 sftp 创建具有特定文件夹有限访问权限的用户

我的文件夹结构如下:

/var/www/site1/files/

/var/www/site2/files/

/var/www/site3/files/

我想创建 sftp 用户 1,/var/www/site1/files/仅允许使用 filezila 上传网站文件,并且无法查看任何其他文件夹

对于权限受限的用户 2 也是如此/var/www/site2/files/

对于访问权限受限的用户 3/var/www/site3/files/

答案1

您基本上已经理解了。
最好的方法是这样做:

  1. /home通过在 中添加以下行将 3 个目录中的每一个挂载到目录中/etc/fstab

    /var/www/site1/files/ /home/site1/htdocs/ bind 0 0
    /var/www/site2/files/ /home/site2/htdocs/ bind 0 0
    /var/www/site3/files/ /home/site3/htdocs/ bind 0 0
    
  2. 用于mount -a立即启动坐骑。

  3. 确保您已将用户 site1、site2、site3 添加到同一组(例如 sftpusers 或 sftponly)。您可以使用以下命令将用户添加到组:

    usermod -aG sftponly site1
    usermod -aG sftponly site2
    usermod -aG sftponly site3
    
  4. /home/{site1,site2,site3}使用以下命令为相应用户创建主目录:

    usermod -d /home/site1 site1
    usermod -d /home/site2 site2
    usermod -d /home/site3 site3
    
  5. 在您的附加以下内容/etc/ssh/sshd_config

    Match group sftponly
          ChrootDirectory %h
          X11Forwarding no
          AllowTcpForwarding no
    
  6. 最后使用以下命令重新启动 ssh 服务:

    service ssh restart
    

这篇关于 Digital Ocean 的文章了解详情。

答案2

关注后krishna chalise 的回答您可能需要调整所有权和权限。

例如,对于用户 site1:

chown root:root /home/site1
chmod 755 /home/site1
cd /home/site1
chown site1:sftponly

相关内容