WordPress文件权限设置正确值:755目录/644文件标准配置指南

WordPress文件权限为什么重要?

Linux/Unix文件权限系统决定了谁可以读取、写入和执行文件。WordPress网站权限配置错误会导致两类问题:

权限过于宽松(如777)的风险:
– 任何在服务器上运行的进程都可以写入你的文件
– 黑客通过任何一个上传漏洞就可以写入后门PHP文件
– 大多数主机会自动扫描并暂停权限为777的网站

权限过于严格的问题:
– WordPress无法写入媒体上传目录,上传图片报错
– 插件和主题无法更新
– 缓存插件无法写入缓存文件

正确的权限配置是两者的平衡点。


标准WordPress权限值

权限数字说明

Linux权限由3组3位数字表示:
– 第一组:所有者(Owner)的权限
– 第二组:所属组(Group)的权限
– 第三组:其他用户(Others)的权限

每组权限:
4 = 读取(Read)
2 = 写入(Write)
1 = 执行(Execute)

所以:
7 = 4+2+1 = 读+写+执行
5 = 4+0+1 = 读+执行(不可写)
4 = 4+0+0 = 只读

推荐权限值

类型 推荐权限 说明
目录 755 所有者可读写执行,组和其他人只读执行
PHP文件 644 所有者可读写,组和其他人只读
wp-config.php 600 或 640 更严格,只有所有者可读
.htaccess 644 标准文件权限
wp-content/uploads/ 755 WordPress需要写入权限以上传文件

永远不要使用777权限(所有人可读写执行)。


用命令行批量修复权限

如果你的WordPress权限被攻击者或错误操作弄乱了,以下命令可以批量重置:

通过SSH修复

# 进入WordPress根目录
cd /path/to/your/wordpress

# 将所有目录权限设为755
find . -type d -exec chmod 755 {} \;

# 将所有文件权限设为644
find . -type f -exec chmod 644 {} \;

# 单独设置wp-config.php为更严格的600
chmod 600 wp-config.php

# 确保uploads目录可写(755已包含,但确认一下)
chmod 755 wp-content/uploads

# 如果uploads目录下有子目录
find wp-content/uploads -type d -exec chmod 755 {} \;
find wp-content/uploads -type f -exec chmod 644 {} \;

通过cPanel文件管理器修复

  1. 登录cPanel → 文件管理器
  2. 导航到WordPress根目录
  3. 选择所有文件和文件夹
  4. 右键 → 修改权限
  5. 对目录设置755,文件设置644(需要分两次操作:先选目录,再选文件)

各目录权限详细说明

WordPress根目录(/)

/index.php               644
/wp-config.php           600 (建议,也可644)
/.htaccess               644
/wp-cron.php             644
/xmlrpc.php              644 (或直接设600让它不可执行)

/wp-admin/ 目录

/wp-admin/               755
/wp-admin/*.php          644
/wp-admin/css/           755
/wp-admin/js/            755

/wp-includes/ 目录

/wp-includes/            755
/wp-includes/*.php       644

所有子目录和文件同理:目录755,文件644。

/wp-content/ 目录

/wp-content/             755
/wp-content/themes/      755
/wp-content/plugins/     755
/wp-content/uploads/     755  ← WordPress必须能写入此目录
/wp-content/cache/       755  ← 缓存插件需要写入权限

注意: /wp-content/uploads/ 权限必须为755(所有者可写),否则图片上传会报错。一些主机要求此目录设为775或777,但这取决于服务器用户配置,应尽量避免777。


wp-config.php的特殊处理

wp-config.php 包含数据库用户名、密码等极度敏感信息,应该得到额外保护:

文件权限:

chmod 600 wp-config.php  # 只有所有者可读写,其他人无法访问

通过.htaccess保护(Apache服务器):

.htaccess 中添加:

<Files wp-config.php>
    order allow,deny
    deny from all
</Files>

将wp-config.php移到网站根目录上层(高级):

WordPress支持将 wp-config.php 移到网站根目录的父目录,攻击者通过Web无法访问该目录:

/home/user/
├── wp-config.php        ← 移到这里(网站根目录的上级)
└── public_html/         ← 网站根目录
    └── wordpress/       ← WordPress安装目录

.htaccess的权限与保护

.htaccess 是Apache服务器的配置文件,WordPress用它实现固定链接等功能。建议:

权限:644(标准文件权限)

通过.htaccess保护.htaccess本身:

<Files .htaccess>
    order allow,deny
    deny from all
</Files>

检查.htaccess是否被篡改:

黑客经常在 .htaccess 中添加恶意重定向规则,被黑后务必检查内容:

# 正常的WordPress .htaccess应该只包含类似这样的内容:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

如果看到 RewriteRule .* http://other-domain.com 这类重定向,说明已被篡改。


检查当前权限是否正确

# 查看当前目录和文件权限(包含权限数字)
ls -la /path/to/wordpress/

# 查找权限为777的危险目录
find /path/to/wordpress -type d -perm 777

# 查找权限为777的危险文件
find /path/to/wordpress -type f -perm 777

# 查找权限为666的文件(所有人可写)
find /path/to/wordpress -type f -perm -o+w

不同主机环境的注意事项

共享主机:
– 通常所有用户使用相同的Web服务器用户(如 nobodywww-data
– 755/644是标准配置,部分操作可能需要755(目录)或644(文件)
– 如果插件更新出错,尝试临时提升权限,更新后立即恢复

VPS/独立服务器(自建LNMP/LAMP):
– 确认PHP-FPM运行用户(通常是 www-datanginx
– WordPress文件所有者应与PHP运行用户匹配,或正确设置组权限
– 典型配置:所有者为你的FTP/SSH用户,组为web服务器组(如 www-data),使用755/644

cPanel/Plesk主机:
– 通常每个账户有独立用户,PHP以该用户身份运行
– 755/644配置直接适用,无特殊考虑


正确的文件权限是WordPress安全的基础,结合安全插件WAF防火墙可以构建多层防护。如果权限被攻击者篡改,及时进行专业安全修复是关键。