Apache每个用户的权限

好的,我查看了一些Google的资源,这里的问题似乎并不是我所需要的。

我来自Windows IIS背景,所以也许我的思维过程是有缺陷的,Apache做的事情不同。

基本上在IIS上,build议为每个Web用户或网站设置一个专用的应用程序池,并将其文件/文件夹存储在自己的path下,并与该专用应用程序池一起工作。

我正在设置Apache进行testing和学习,并且遇到了分离用户的情况。 是否需要为每个用户分配Apache还是“www-data”足够?

看作是“独立的”webdirs在单独的“家”目录我认为这是安全的? 我的理解是,如果你不能访问path中的任何一个目录,任何背后的东西都无法访问 – 这是正确的吗?

最后,我注意到,这就是为什么我问这个问题,Wordpress制作文件或caching文件时,是以“www-data”和“www-data”组的forms创build它们的。 这是什么促使我问,因为我现在假设'用户'现在不能访问这些文件?

首先,运行apache的用户需要能够读取这些文件,以便将其展示给客户端。 当你使用用户目录的时候,这通常意味着给用户自己的写访问权限,并且专门对组“www-data”(或者运行apache的用户所属的任何组)或者服务器。 为了不在用户的public_html目录层次结构之外显示任何文件,可以使用apacheconfiguration文件来仅允许将public_html及其子目录用于用户网站。

其次,因为你想确保apache用户不能编辑任何东西(如果服务器被破解,或者有人写了一个错误的脚本,并把它作为cgi运行),你想运行它作为一个对用户目录没有权限的用户。 该用户仍然需要能够写入日志和临时数据,并且它应该有它自己的目录。

如果你要为每个用户运行一个apache实例,并拥有该用户拥有的apache,那么你就可以授予Apache权限来写入所有用户的目录。 这通常不被认为是一个好主意。

我的build议是使用apache-itk补丁。 您可以使用用户主目录每个站点和执行不同的用户权限的Apache – 这是非常安全的多站点托pipe。