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

max*_*sme 8 php linux permissions nginx sshd

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

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
Run Code Online (Sandbox Code Playgroud)

这适用于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目录中,还是不安全

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

†:

Match user user
        ChrootDirectory /website/
        ForceCommand internal-sftp
        AllowTcpForwarding no
        GatewayPorts no
        X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

Ahm*_*mad 1

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