我需要自由职业者能够下载和上传文件到我的Ubuntu服务器上的一些网站,但不是全部。
我如何设置它,以便每个自由职业者是只能访问他们应该能够访问的网站的用户,而不是其他人?
我已经按照我发现的设置ftp用户通过绑定访问特定文件夹的说明 。 我已经将我的ftp用户添加到已经读取和写入这些文件夹的访问权限的组中,所以从这个angular度看,所有这些看起来都不错 – 我的用户可以做他们需要做的事情。 但我的ftp用户能够导航到我的服务器上的所有文件夹,这是不好的。 我如何确保它们仅限于/ home / thisuser文件夹,而不是其他任何东西。
我不能评论你的问题,因为我还没有足够的声望,但是你有使用FTP而不是SFTP的原因吗? FTP将在明确发送密码这是一件非常糟糕的事情。 SFTP将encryption您的客户端和服务器之间的交stream。
设置一个SFTP chroot是几个步骤的过程。 这些方向假设你已经安装了一个ssh服务器。
在/ 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将强制用户的主目录为根目录。
创build一个sftponly组:
sudo groupadd sftponly
将所有自由职业者添加到sftponly组并更改用户的主目录:
sudo usermod -g sftponly -d / johnnyfreelancer
'sftponly'必须是用户的主要组(这是-g标志所做的),否则此方法将不起作用。 -d标志也是必需的,因为一旦用户login/ home /%u将实际上是login用户的最高目录。
我会使用chroot 。 这是你最好的select,因为你100%肯定没有人能看到他的“家”目录以外的任何东西。
我会使用SUPHp并为自由职业者组织团队。 然后,您可以在他们所需的文件夹上添加写入/读取权限。