保护 Apache 站点权限

问题描述

我在一篇关于网站安全的文章中看到一条建议,即在 Web 服务器上运行的单独网站应该在单独的用户下运行以进行遏制,并限制一个站点上的漏洞导致其他站点受到感染。

我正在运行带有公共互联网公开个人网站的 Ubuntu 20.04 LAMP 服务器。它们在 Apache 中的 /var/www/ 下设置为虚拟主机,但都使用标准的 www-data:www-data 用户和组运行。在不同的用户帐户下运行它们会如何工作?

我是否简单地创建一个新用户和组,然后将 /var/www/ 目录归为该用户所有?如果允许 Apache 权限写入子目录然后进行补丁、上传等,这将如何工作?

解决方法

Apache 有它自己的用户和组(www-data 或其他,根据它运行的发行版)。为了实现你想要的,你需要为每个虚拟主机创建一个用户,并确保 apache 可以读/写这个新用户拥有的文件/文件夹,例如将 apache 组放入新用户的组中(或者相反,根据您希望如何处理权限)。

“背后”的逻辑与您用于处理 linux 用户和组权限的逻辑完全相同。