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

时间:2015-08-09 20:33:46

标签: php linux nginx permissions 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

这适用于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

1 个答案:

答案 0 :(得分:1)

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