什么是 WordPress 文件权限以及最佳设置

什么是 WordPress 文件权限以及最佳设置

什么是 WordPress 文件权限以及最佳设置

WordPress 文件权限对于你网站的安全性和功能至关重要,因此你必须了解它们。如果你使用的是 WordPress 托管,则几乎可以肯定你的主机已经为你配置了东西,但是如果遇到任何问题,了解这些概念仍然很有帮助。

因此,无论你是从未听说过文件权限,还是只是在寻找 WordPress 的正确文件权限,我们都可以在本篇文章中介绍。如果你已经熟悉文件权限,则可以单击第二个链接直接跳至 WordPress 的最佳文件权限。

什么是文件权限?

简而言之,文件权限控制着不同用户如何与 WordPress 站点服务器上的文件进行交互。更具体地说,文件权限控制谁可以读取写入执行文件:

  • 读取:读取文件内容的能力。
  • 写:更改文件的能力。
  • 执行: “使用” 文件的能力(例如执行脚本)。

什么是用户?

有三种不同的 “类型” 用户:

  • 所有者:文件或目录的分配所有者。
  • 组:拥有文件或直接拥有文件的组成员。
  • 公用:文件所有者或组成员以外的所有用户。

每个文件或文件夹均由特定用户或特定组拥有。每个用户可以是多个组的成员,但是他们只能有一个主要组。

例如,当你通过 SFTP 连接到站点时,你正在服务器上使用一个用户帐户,并且该用户帐户属于一个或多个组,具体取决于服务器的配置方式。

注意:大多数人不需要掌握 “用户” 概念,因为你的主机为你配置了所有这些。但是,了解学习文件权限的功能是必不可少的。如果你在本节中感到有些迷茫,请知道在大多数情况下,主机已为服务器环境适当地设置了用户。

有了文件权限,你可以控制每种类型的用户(所有者,组,公共)可以对服务器上的文件和文件夹(读,写,执行)执行什么操作。

通常,文件的所有者应具有最多的权限。属于同一组的用户将具有相同或更少的权限;公共用户将具有与该组相同或更少的权限:

所有者 > 组 > 公共

文件权限的概念与 WordPress 角色和功能系统非常相似。如果你是站点的管理员,那么你比编辑器拥有更多的控制权。例如,管理员可以安装新的插件,而编辑器则不能。

同样,即使编辑器没有完整的管理员那样强大,但其拥有比你网站的匿名访问者更多的控制权。例如,编辑者可以编辑其他人的博客文章并发布新的博客文章,但是编辑者不能安装新的插件。

文件权限中的数字是什么意思?

文件权限由称为一个三位数字表示允许模式(例如, 777440)。

数字中的每个数字对应于特定用户可以执行的操作:

  • 第一位数:控制所有者可以执行的操作。
  • 第二位数字:控制用户组中用户帐户可以执行的操作。
  • 第三位数字:控制其他人可以做什么(公共)。

许可模式下的每个数字是分配给每个操作的数字的总和:

  • 读: 4
  • 写: 2
  • 执行: 1

如果你不想授予任何权限,请使用数字 0

同样,你在权限模式下看到的数字是实体拥有的所有权限的总和。例如,如果所有者可以读取(4)和写入(2),则许可模式将为 6(4 + 2)。

或者,如果所有者拥有所有三个权限,则为 7(4 + 2 + 1)。

因此,777 是最宽松的配置。这意味着:

  • *第一位数– 7 –所有者*可以*读取*(4),*写入*(2)和*执行*(1)
  • 第二位数– 7 –组可以读取(4),写入(2)和执行(1)
  • 第三位数– 7 –公众可以读取(4),写入(2)和执行(1)

因此,最好不要在 WordPress 网站上将任何文件或文件夹的权限设置为 777。我们将在下面详细讨论。

文件权限中的字母是什么意思?

虽然你可能最常遇到数字格式,但有时还会看到由字母和破折号表示的文件权限。

例如:

rwxr--r--

这种格式的工作方式如下:

  • r = 读取权限
  • w = 写入权限
  • x = 执行权限
  • (连字符)= 无权限

共有 9 个字符 - 前三个字符适用于所有者,后三个字符适用于组,后三个字符适用于公众。

在此格式中,777 权限相当于rwxrwxrwx

为什么 WordPress 文件权限很重要?

由于文件权限控制着不同用户可以对你服务器上的文件执行的操作,因此它们在 WordPress 安全中起着至关重要的作用。

想象一下,如果你将站点的所有文件和文件夹都设置为 777。这意味着任何人都可以创建新文件,修改现有文件,删除现有文件,执行脚本等等。人们可以将恶意脚本添加到你的站点并执行它们,这将迅速导致各种问题。那将是一场噩梦!

但是,文件许可权是一种平衡行为,如果你的限制过于严格,则你的网站也将停止工作。

例如,如果将权限设置为 000,则 WordPress 网站将完全无法运行,因为你的网站甚至无法读取服务器上的任何文件。

因此,WordPress 的最佳文件权限总是介于 000(没有人具有任何权限)和 777(每个人都具有所有权限)之间。

但是,文件权限也可能很棘手,因为即使在更实际的情况下,你仍然可能会遇到问题。例如,444 是你站点的.htaccess 文件的非常安全的设置。

但是,如果你设置它这样,你很可能会遇到一些问题的插件是需要能够写入到你的网站的 .htaccess 文件。

因此,如果你使用的是那些需要写访问权限的插件之一,则可能需要切换到稍微允许一些的 644 甚至 666,具体取决于你的 Web 服务器的配置方式。

为什么需要更改 WordPress 文件权限?

简短的答案是,大多数人不需要手动更改文件权限

如果你是使用主机的自动安装程序安装 WordPress 的,那么任何好的主机都应在该设置过程中为你自动设置最佳文件权限。

因此,如果你使用主机的自动安装程序,并且 WordPress 网站运行正常,则可能无需修改网站的文件权限。

但是,如果你自己手动安装 WordPress,则可能会出现问题。你可能还会在插件安装和使用过程中遇到文件权限方面的麻烦,例如上一节中的缓存插件示例。

WordPress 的正确文件权限

在本节中,我们将讨论 WordPress 的正确文件权限。然后,如果你需要帮助,我们将在下一部分中向你展示如何进行更改。

首先,请务必注意,最佳文件权限部分取决于托管环境的配置。对于一个环境而言,最佳和安全的情况对于其他环境而言并不一定是如此。对于使用 suEXEC 的共享托管尤其如此。

通常,解决此问题的一个好的经验法则是从最低许可的配置开始,仅根据需要添加权限以使事情正常进行。例如,当谈论**wp-config.php**文件时,你会看到 400644 之间的任何值。如果你不确定从哪里开始,则可以从 400 开始,只要你知道此设置可能会导致服务器配置出现问题,并且在遇到问题时可能需要使其更为宽松。

而且无论如何,你都绝不能将任何权限设置为 777(除非你是专家并且有充分的理由这样做)。

大多数 WordPress 文件 / 文件夹的默认文件权限

通常,WordPress 的正确文件权限应如下所示:

  • 档案: 644
  • 文件夹: 755

但是,有一些特殊的例外情况需要注意:

  • wp-config.php 文件
  • .htaccess 文件
  • nginx.conf 文件

wp-config.php 权限

你网站的 wp-config.php 文件是一个超敏感文件,其中包含你网站的数据库凭据以及许多其他重要信息。

wp-config.php 文件的一个很好的起点是 644,这是我们在 Kinsta 上使用的。但是,你会在这里找到很多其他建议,包括 640600。要进一步锁定它,有些人甚至使用 444。

但是,如果使用 444,则可能会引起问题,因为许多 WordPress 插件都依赖 wp-config.php 文件的写访问权限。

.htaccess 权限

你网站的.htaccess 文件是另一个重要的配置文件,值得特别注意。

.htaccess 权限的一个很好的起点是 644,这是 WordPress Codex 建议的一些开发人员还建议 444。但是,如果使用 444,则可能会限制需要写入.htaccess 文件的插件(例如大多数缓存插件)。

nginx.conf 权限

相同的.htaccess 文件权限也适用于 nginx.conf,如果你的主机使用 Nginx Web 服务器(这是 Kinsta 所做的),则它是主要配置文件。

在一个方便的位置找到管理网站所需的所有工具(错误和全部)。

如何快速检查 WordPress 文件权限

如果你想要一种快速,非技术性的方法来检查站点的文件权限以查看是否存在问题,可以使用 WordPress.org 上的免费 iThemes Security 插件。

你还可以使用 FTP 或 cPanel 文件管理器,我们将在下一节中向你展示 - 我们首先只是共享此插件,以快速检测潜在问题。

激活插件后,转到安全性→设置,然后单击文件权限下的显示详细信息按钮:

检查 WordPress 文件权限

在这里,你将找到当前的 WordPress 文件权限以及它们与 iThemes Security 推荐的文件权限的比较。你可以看到 iThemes 建议对 wp-config.php 文件和 nginx.conf.htaccess 文件推荐 444(当你使用 Nginx 时,你会看到 nginx.conf 的原因,但是如果你的主机使用 Apache ,则将看到 .htaccess)。

不过请记住, 444 会与某些插件引起冲突,因此你可能要避免使用它。

查看 WordPress 文件权限

如果你不想在设置后继续使用该插件,建议将其删除。