WordPress 文件权限:配置安全网站和 Web 服务器权限的指南
已发表: 2020-07-02WordPress 几乎可以在任何运行 PHP 的操作系统上运行。 但是,绝大多数 WordPress 网站都在 Linux 上运行。 因此,了解 Linux 文件权限非常重要。
获得正确的文件权限至关重要。 设置不正确的文件权限可能会使您的网站受到攻击。 不正确的文件权限可能允许未经授权的用户获得对潜在敏感文件和数据的访问权限。 然后可以将此类数据用作更大攻击的垫脚石。
作为 WordPress 管理员,文件权限可能看起来有点令人生畏,特别是如果您是 Linux 新手。 不要怕! 本指南从头开始解释 Linux 上的文件权限。 它还解释了 Linux 文件权限如何应用于您的 WordPress 网站。
表中的内容
- 什么是文件权限?
- 权限组
- 权限类型
- 权限表示
- 推荐的 WordPress 文件权限
- 如何修复 WordPress 文件权限
- 在共享托管服务上
- 通过 FTP
- 通过 SSH
- 额外提示:文件权限之外的安全性
什么是文件权限?
权限组
这一切都始于谁。 与任何其他操作系统一样,Linux 也有用户和组的概念。 在定义谁可以访问文件时,Linux 系统上的每个文件和目录都具有三个权限组。
- 所有者
- 每个文件或目录都有一个所有者。
- 所有者权限仅适用于文件或目录的所有者。 它们不会影响其他用户的操作。
- 团体
- 可以为每个文件或目录分配一组被授予访问权限的用户。
- 组权限仅适用于已分配给文件或目录的组。 它们不会影响其他用户的操作。
- 其他
- 每个文件或目录都可以定义“其他人”拥有的权限。 也就是说,除了我们设置的所有者或组。
- 其他权限适用于系统上的所有其他用户。 这是您最想观看的权限组,因为您可能会无意中允许所有人访问。
权限类型
现在我们知道如何指定谁可以访问文件或目录,我们需要为文件或目录选择我们赋予每个所有者、组和其他人的权限类型。 以下是我们可以赋予权限组(所有者、组、其他)的权限类型:
- 读
- 读取权限类型是指用户读取文件内容的能力。
- 写
- 写入权限是指用户写入和/或修改文件内容的能力。
- 可以允许用户写入文件而他们无法读取其内容。
- 执行
- 执行权限影响用户运行文件的能力,例如脚本。
- 执行权限还允许用户查看目录的内容。
权限表示
现在我们已经了解了权限的工作原理,让我们看看 Linux 权限实际上是如何表示的。 文件权限存储为一系列 3 个数字。 但是,它们也可以表示为字母,使它们更易于阅读。 让我们首先了解这些数字的含义。
- 第一个数字
- 授予所有者的权限
- 第二个号码
- 授予组的权限
- 第三个数字
- 授予其他人的权限(其他所有人,除了所有者和组)
每个数字对应于我们之前讨论的一种或多种权限类型的组合。 可视化时更容易理解这一点。 每种权限类型都有一个权重,该权重为每个权限组加在一起。
使困惑? 可能需要一些时间和一些练习才能将你的头包裹起来。 同时,这里列出了您可以分配给每个权限组的所有可能的文件权限。
数字 | 信件 | 描述 |
---|---|---|
0 (0+0+0) | --- | 无法访问 |
1 (0+0+1) | - X | 执行 |
2 (0+2+0) | -w- | 写 |
3 (0+2+1) | -wx | 编写和执行 |
4 (4+0+0) | r-- | 读 |
5 (4+0+1) | 接收 | 读取和执行 |
6 (4+2+0) | rw- | 读和写 |
7 (4+2+1) | rwx | 读取、写入和执行 |
看一个具体的例子, 644文件权限意味着
- owner读写文件或目录的权限
- 组有权读取文件或目录
- 其他有权读取文件或目录
您通常会看到这些值之间没有任何空格,并且在开头带有额外的-或d 。 -表示常规文件。 d表示目录。 以下是使用 Linux ls -la命令列出目录中的文件的示例。
$ ls -la 共 0 drwxr-xr-x 4 用户组 128 5 月 25 日 23:25 。 drwxrwxrwt 8根轮256 5月25日23:25.. drwxr-xr-x 2 用户组 64 May 25 23:25 目录 -rw-r--r-- 1 用户组 0 May 25 23:25 file.txt
推荐的 WordPress 文件权限
设置不正确的 WordPress 文件权限可能会导致意外授予其他用户的访问权限而不是您的意思。 在最坏的情况下,这可能允许攻击者更改他们不打算访问的重要文件的内容。 它还可能允许 Internet 上的任何用户读取您的 WordPress 安装中的敏感文件。
这就是为什么您永远不应该将 WordPress 文件权限设置为777 (-rwxrwxrwx)。 这将允许任何能够控制该文件的人完全读取、写入和执行访问权限。 这可能是第三方通过 FTP 或 SSH 进行更改,或者是攻击者通过上传表单进行更改。
另一方面,您需要注意不要让 WordPress 完成它的工作过于严格。 由于 WordPress 本身以及主题和插件通常需要安全地更改多个文件。 例如,当 WordPress 自动更新以保护您的网站免受安全漏洞影响时。
所以为了争论, 444 (-r–r–r–)的权限可能会导致您的WordPress网站出现故障。 444 WordPress 将只允许读取d ,因此自动更新将失败。 话虽如此,可以使用只读权限( 444或 r–r–r–)运行 WordPress。 这将是一个非常简单的安装。 但是,您需要考虑上述限制。
一些托管 WordPress 托管服务提供商开箱即用地支持此功能。 不过,如果您想以此类权限运行 WordPress,请先在暂存环境中尝试。
WordPress推荐的文件权限如下。
类型 | 数字 | 信件 | 描述 |
---|---|---|---|
目录 | 755 | drwx-wx-wx | WordPress安装目录 |
文件 | 644 | -rwxr--r-- | WordPress 核心、WordPress 主题和插件(某些主题和插件可能存在例外情况) |
wp-config.php | 600 | -rw-------- | WordPress 配置文件 |
.htaccess | 644 或 600 | -rw-r--r-- -rw-------- | Apache HTTP Server 配置文件(如果您正在运行 Nginx 或 Apache HTTP Server 以外的 Web 服务器,则可能不适用) |
如何修复 WordPress 文件权限
虽然一个托管环境与另一个不同,但您始终可以控制 WordPress 文件权限。
通过共享主机控制面板修复 WordPress 文件权限
如果您使用共享主机,您可能可以访问某些控制面板,例如 cPanel 或 Plesk。 在这种情况下,请咨询您的托管服务提供商,了解您需要采取哪些步骤来修改 WordPress 网站上的文件权限。
通过 FTP 修复 WordPress 文件权限
可以通过 FileZilla 或 Cyberduck 等 FTP 客户端轻松修复 WordPress 文件权限。 以下屏幕截图来自 Cyberduck。 只需右键单击要更改权限的文件或目录,单击Info ,然后单击Permissions选项卡。
Filezilla 上的过程类似。 右键单击该文件,选择文件权限,您将看到一个类似的对话框。
通过 SSH 修复 WordPress 权限
如果您已经在使用 SSH 客户端,则可以执行 Linux chmod 命令来更改文件权限。 以与上面相同的示例为例,要将 wp-config.php 的权限从644更改为600 ,我们将使用以下命令:
# 将目录更改为您的 WordPress 安装位置 $ cd /var/www/html # 列出 wp-config.php 的文件详情 $ ls -la wp-config.php -rw-r--r-- 1 www-data www-data 7368 2019 年 9 月 2 日 wp-config.php # 将 wp-config.php 的权限从当前的 644 更改为 600 $ chmod 600 wp-config.php # 验证你的改变 $ ls -la wp-config.php -rw------- 1 www-data www-data 7368 2019 年 9 月 2 日 wp-config.php
正确配置的 WordPress 文件权限意味着更安全的网站
让我们回顾一下所涵盖的内容。 我们看到文件权限允许我们指定谁以及如何在 Linux 系统上访问和/或修改文件或目录。 我们还讨论了如何使用 SFTP 客户端以及通过 SSH 更改权限。 但是,我们讨论的最重要的事情是为什么您应该注意正确设置 WordPress 网站上的文件权限。
尽管起初这可能是一个乏味的过程,但不正确的文件权限可能会在您的 WordPress 网站上暴露敏感文件。 此外,在适当的情况下,它们可能允许攻击者将低严重性漏洞升级为更危险的漏洞。
现在您对文件权限在 Linux 上的工作方式以及它们如何影响 WordPress 站点的安全性有了更好的了解,请使用这些信息来支持任何过于宽松的 WordPress 文件权限。
额外的安全提示:超越 WordPress 文件权限
正确的 WordPress 文件权限是开始处理 WordPress 安全性的好地方。 然而,这些远非唯一需要担心的事情。 您应该做的其他事情来改善您的 WordPress 网站的安全状况是:
- 在 WordPress 活动日志中记录您网站上发生的所有事情,
- 使用 WordPress 文件完整性监控插件,
- 执行强大的 WordPress 密码策略,
- 向您的 WordPress 网站添加双重身份验证,
- 安装 WordPress 防火墙/使用在线 WordPress 防火墙服务。