这是一个关于 Linux Web 服务器上文件权限的规范问题。
我有一个运行 Apache2 的 Linux Web 服务器,该服务器托管多个网站。每个网站在 /var/www/ 中都有自己的文件夹。
/var/www/contoso.com/
/var/www/contoso.net/
/var/www/fabrikam.com/
Run Code Online (Sandbox Code Playgroud)
基本目录 /var/www/ 归 root:root 所有。Apache 以 www-data:www-data 运行。Fabrikam 网站由两位开发人员 Alice 和 Bob 维护。两个 Contoso 网站均由一位开发人员 Eve 维护。所有网站都允许用户上传图片。如果网站遭到入侵,其影响应尽可能地有限。
我想知道设置权限的最佳方法,以便 Apache 可以提供内容,网站不受攻击,并且开发人员仍然可以进行更改。其中一个网站的结构如下:
/var/www/fabrikam.com
/cache
/modules
/styles
/uploads
/index.php
Run Code Online (Sandbox Code Playgroud)
应该如何对这些目录和文件设置权限?我在某处读到你永远不应该在网站上使用 777 权限,但我不明白这会导致什么问题。在繁忙时期,网站会自动缓存一些页面并将结果存储在缓存文件夹中。网站访问者提交的所有内容都保存在上传文件夹中。
有没有人有一个很好的解决方案来处理文件/var/www
?我们正在运行基于名称的虚拟主机,Apache 2 用户是www-data。
我们有两个普通用户和 root。因此,当弄乱 中的文件时/var/www
,而不必...
chown -R www-data:www-data
Run Code Online (Sandbox Code Playgroud)
...一直以来,有什么好的处理方法?
补充问题:那么您对权限的态度如何?
这一直是协作开发环境中的一个问题。
我正在设置一个 Ubuntu 服务器,它将有 3 或 4 个 VirtualHosts,我希望用户能够在其中工作(添加新文件、编辑旧文件等)。我目前计划将网站存储在其中,/var/www
但不反对移动它。
我知道如何添加新用户,我知道如何添加新组。我不确定处理只能编辑某些网站的用户的最佳方式。我阅读了这个问题中的答案,所以我想我可以设置一个组并将用户添加到该组中,但是他们都具有本质上相同的权限。我是否只需要为每个用户分配特定的权限?或者有更好的处理方法吗?
补充:我还应该注意,我将让每个用户通过 SSH/sFTP 登录。用户永远不需要在服务器上做任何其他事情。
apache-2.2 ×2
linux ×2
permissions ×2
debian ×1
security ×1
ubuntu ×1
web-server ×1
www-data ×1