我有一台装有 SuPHP 和 DirectAdmin 的服务器。我的许多(但不是全部)用户都在运行 Joomla 和 Wordpress。如果我将 public_html 和子文件夹 chmod 为 700,这会产生问题吗?他们会需要更多权限?
那么文件呢?至少,最安全和足够的他们的默认权限是多少?是 400 吗?或者可能是 600?
换句话说我的问题集中在团体和世界用户权限。如果仅用户需要权限吗?我认为通过使用 SuPHP,一切都由所有者完成,并且不会出现限制组和世界用户组的问题。
我倾向于赋予每个对象(文件、文件夹)最少的权限,但足以使其正常工作。
答案1
这是我的经验,这取决于配置。
PHP 文件可以设置为 600,以便用户可以读取和写入它们,并且 suPHP 应该负责将用户设置为网站所有者。您可能希望确保所有者已设置为用户,因为旧安装可能具有像 www-data 这样的所有者。您也可以将它们设置为 400,但可能会出现没有写入权限的用户支持问题,并且这不会大大提高安全性。
其他文件通常需要 644 之类的权限,因为 Apache 将以用户 www-data 的身份读取它们,而该用户不是这些文件的所有者或组。这也适用于 .htaccess 和 phi.ini。因此,作为所有文件的默认权限,您可能需要 644。
目录权限,如果您的主目录包含 public_hml,则理想的做法是将其设置为 700,但某些配置似乎需要 711 才能使 apache(可能还有其他一些工具)工作。假设 700 应该比 711 能更好地保护您 - 使用 711,如果有人能猜出文件位置,那么设置为 644(Joomla 推荐的默认值,通常由 Web 服务器应用于新文件)的配置文件就可以被全世界读取 - 这并不难(您可能已经作为许多 joomla 和 wp 网站的管理员了解到了这一点)。对于 public_html 和其他目录,它们可能需要高达 755 的权限。但您应该尝试自己的配置,找到网站加载的最低权限,然后返回并确保您支持或提供给客户端的任何工具(如 CPanel 文件管理器)也能正常工作。如果您可以将主目录或 public_html 设置为 700,则可以测试在 configuration.php 上跨帐户读取 - 我发现我的 CPanel 帐户有 711 个主目录,而 644 个 configuration.php 可以跨用户帐户读取。我看到了有关符号链接问题的 CPanel 讨论,这些问题很容易跨帐户进行黑客攻击,因此权限变得非常重要 - 一个站点被黑客攻击,整个服务器面临的风险比应有的要大。有人建议将主目录设置为 700 将阻止读取该目录下的任何内容,但这样做的能力似乎取决于配置。但如果它有效(这似乎取决于配置),主目录中的 700 可能是您所能提供的最接近圣杯的水平。
我并不是真正的专家,当然也不知道您可能会发现哪些配置范围 - 但我回答是因为我发现这是一个 6 周前的问题,需要一套好的答案。希望您能找到具有更广泛服务器配置专业知识的人来改进这个答案。