使用 Apache-MPM-ITK 为 webroot 设置合理权限

使用 Apache-MPM-ITK 为 webroot 设置合理权限

我已经在新的 VPS 上安装了 apache2-mpm-itk,以便按照此处的说明在同一服务器上运行多个具有隔离的站点:http://www.webtatic.com/packages/httpd-itk/。我希望尽可能地锁定它,但也需要能够以每个 vhost 用户的身份管理每个 vhost 上的文件。

他建议像这样设置 webroot 文件夹的所有者和权限:

chown owner-user:vhost-group /path/to/webroot
chmod o-rwx /path/to/webroot

ls -ald /path/to/webroot
# drwxr-x--- 20 owner-user vhost-group 4096 Apr  5 19:38 /path/to/webroot

在我的服务器上,我有 root、一个非 root 用户(sudoer)以及此站点的 vhost 用户(没有 sudo 权限)。

设置具有 755 权限的 webroot,然后将所有者设置为所有者用户(我将其设置为我的非 root sudoer 用户)意味着我无法以 vhost-user 身份修改 webroot 内的文件和目录。(web root 上没有组写入权限)。我能想到的唯一办法是授予 vhost-user sudo 权限,但这似乎不安全。

文章说,owner-user 是 webroot 的所有者,因为:

我没有将目录的用户更改为 vhost-user 的原因是它会赋予 httpd 进程写访问权限,您仍然应该注意这一点,因为如果用户的代码存在漏洞,文件可能会被黑客入侵。

我如何设置权限/用户等以确保安全但仍允许 vhost 用户管理他们自己的主目录?

另外,在 webroot 中,我应该如何设置 PHP 文件和目录的权限以使它们与同一服务器上的其他用户/组隔离?

答案1

首先要说一句。你应该使用

chown -R owner-user:vhost-group /path/to/webroot
chmod -R 640 /path/to/webroot
chmod -R u+X,g+X /path/to/webroot

如果/path/to/webroot不是空的话。

对你的问题,这种愚蠢但不幸的正确答案很简单:对不起,你的问题没有意义。为什么?

您将“安全”定义为(即接受该网站的定义)“用户 X 无写入权限”。现在,您希望既“安全”,又让该用户拥有写入权限。这显然是不可能的。

只有在这种情况下对“安全”给出一个精确且可用的定义,才能回答您的问题。

我的第一个建议是将用户分开。为什么要vhost-user管理文件而不是其他vhost-manage帐户?有这个要求有意义吗?

下一点是:没有目录的写权限只会阻止您删除和创建文件,但不会阻止您修改这些文件。您只需要对这些文件(不一定是所有文件)具有写权限。

通过 sudo 脚本创建和删除文件对我来说似乎不是一个安全风险;特别是如果这不是以 root 身份执行的,而是以一个唯一目的是拥有此目录树的用户身份执行的。

相关内容