如何安全地在虚拟主机上拥有多对多用户

How to securely have many to many users on virtual hosts

我目前在我的虚拟主机上设置了一个用户,如下所示:

sudo useradd -d /website/ -m user -s /usr/bin/rssh

sudo chown root:root /website/ -R #Don't get why I need this part but doesn't work without! 
sudo chmod 755 /website/
sudo chown -R user:www-data /website/public_html
sudo chmod 755 /website/public_html

这适用于 user 添加和编辑 /website/public_html 中的文件夹和文件。

我现在希望能够添加能够在 /website/public_html 中添加和编辑文件夹和文件的其他用户。这个问题是,如果我开始使用组并将用户添加到组 www-data 并将 chmod 更改为 775,则用户将能够编辑其他虚拟主机网站,例如 /website2/public_html

所有用户(如上所示)只能通过 sftp (-s /usr/bin/rssh) 访问服务器。借助 sshd_config† 中的设置,用户也被锁定到他们的主目录。至此,我想我可以将所有用户添加到同一组 (www-data) 和 chmod 775 目录,或者这样不安全 ?

例如 here 有人提到给虚拟主机 775 权限可能允许用户插入 php 可以删除所有内容的脚本。但如果没有 775,这也不允许 php 创建文件。

†:

Match user user
        ChrootDirectory /website/
        ForceCommand internal-sftp
        AllowTcpForwarding no
        GatewayPorts no
        X11Forwarding no

您可以为每个虚拟主机创建一个新组,并向其中添加 www-data 和其他授权用户。然后将该组设置为文件的所有者 (chown)。通过指定适当的权限(如 775),您将在那里。