如何让用户只能访问我的Ubuntu服务器上特定的文件夹子集?

我需要自由职业者能够下载和上传文件到我的Ubuntu服务器上的一些网站,但不是全部。

我如何设置它,以便每个自由职业者是只能访问他们应该能够访问的网站的用户,而不是其他人?

我已经按照我发现的设置ftp用户通过绑定访问特定文件夹的说明 。 我已经将我的ftp用户添加到已经读取和写入这些文件夹的访问权限的组中,所以从这个angular度看,所有这些看起来都不错 – 我的用户可以做他们需要做的事情。 但我的ftp用户能够导航到我的服务器上的所有文件夹,这是不好的。 我如何确保它们仅限于/ home / thisuser文件夹,而不是其他任何东西。

我不能评论你的问题,因为我还没有足够的声望,但是你有使用FTP而不是SFTP的原因吗? FTP将在明确发送密码这是一件非常糟糕的事情。 SFTP将encryption您的客户端和服务器之间的交stream。

设置一个SFTP chroot是几个步骤的过程。 这些方向假设你已经安装了一个ssh服务器。

  1. 在/ etc / ssh / sshd_config中replace该行

    Subsystem sftp /usr/lib/openssh/sftp-server与此:

    Subsystem sftp internal-sftp

    在这一行之后,添加以下部分:

    匹配组合

    ChrootDirectory / home /%u
    X11转发号码
    AllowTcpForwarding号码
    ForceCommand internal-sftp

    ChrootDirectory / home /%u将强制用户的主目录为根目录。

  2. 创build一个sftponly组:

    sudo groupadd sftponly

  3. 将所有自由职业者添加到sftponly组并更改用户的主目录:

    sudo usermod -g sftponly -d / johnnyfreelancer

    'sftponly'必须是用户的主要组(这是-g标志所做的),否则此方法将不起作用。 -d标志也是必需的,因为一旦用户login/ home /%u将实际上是login用户的最高目录。

我会使用chroot 。 这是你最好的select,因为你100%肯定没有人能看到他的“家”目录以外的任何东西。

我会使用SUPHp并为自由职业者组织团队。 然后,您可以在他们所需的文件夹上添加写入/读取权限。