![如何设置安全权限:多个用户和网站 / Apache / www-data](https://linux22.com/image/718561/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E5%AE%89%E5%85%A8%E6%9D%83%E9%99%90%EF%BC%9A%E5%A4%9A%E4%B8%AA%E7%94%A8%E6%88%B7%E5%92%8C%E7%BD%91%E7%AB%99%20%2F%20Apache%20%2F%20www-data.png)
我有自己的私人 VPS,由托管服务管理,现在我要切换到云服务器,我必须自己管理一切。我试图模仿他们的安全设置。在我的旧服务器和新服务器上,我的用户/网站设置如下所列。我的 Apache 虚拟主机将这些作为 DocumentRoot,因此它们现在正在运行:
/home/user1/site1.com
/home/user1/site2.com
/home/user2/site3.com
/home/user3/site4.com
.....
基本上在我的旧 VPS 上,Apache Web 服务器可以运行所有这些网站,同时,每个用户都无法访问其他用户的文件(如果一个网站被黑客入侵,黑客将无法访问其他网站)。我注意到目录的权限为 755,文件为 644。
按照我现在的设置,这些用户目录中的所有内容都位于 www-data 组中,目录具有 775 权限,文件具有 664 权限。一个用户网站上的文件可以从另一个用户的网站访问(不好)。
我该如何设置权限来模仿上面描述的旧 VPS?
编辑: 经过进一步研究,我应该注意到我将服务器设置为运行 http/2。我发现 Apache MPM-ITK 实际上是根据用户/组分离虚拟主机所必需的。但是,Apache MPM-ITK 与 http/2 不兼容。我不确定除了放弃 http/2 以获得 mpm-itk mod 之外还能做什么?
答案1
这可能有点牵强,但您可以通过一些简单的 Linux 权限来实现这一点。
如果用户的目录归用户/用户组所有(即,user23:user23),您可能能够通过将 apache 用户添加到用户组来实现。
usermod -a -G user23 apache
该usermod
命令将把以下组(-a)附加到用户(在上面的例子中为 Apache)。
还没有尝试过。通常我会将其添加为评论而不是答案,但我必须有 50 个代表才能发表评论 -_-