Azure App Service Linux目录/文件权限无法修改,WordPress遭入侵求助
Azure App Service Linux上WordPress权限无法修改的解决方案
很多开发者在Azure App Service Linux上部署WordPress时都会碰到权限修改后自动复原的问题,这直接导致站点安全风险(比如你遇到的黑客攻击),下面是针对这个问题的具体分析和解决办法:
为什么常规chmod命令无效?
Azure App Service Linux的/home/site/wwwroot目录挂载的是平台管理的网络存储,即使你用root权限执行chmod,这些修改也会在应用重启、缩放或者平台维护后被重置——因为底层存储的权限规则是由Azure平台统一管控的,临时修改不会持久化。
正确的权限配置方法
要让权限设置持久生效,必须通过启动命令或者自定义启动脚本,让应用每次启动时自动执行权限修改:
方法1:直接配置启动命令
在Azure门户的App Service「配置」→「常规设置」里,找到「启动命令」,填入对应Web环境的命令:
- Apache环境:
find /home/site/wwwroot -type d -exec chmod 755 {} \; && find /home/site/wwwroot -type f -exec chmod 644 {} \; && apache2-foreground - Nginx环境:
find /home/site/wwwroot -type d -exec chmod 755 {} \; && find /home/site/wwwroot -type f -exec chmod 644 {} \; && nginx -g 'daemon off;'
方法2:使用自定义启动脚本
- 在
/home/site/wwwroot目录下创建startup.sh脚本,内容如下:#!/bin/bash # 设置目录和文件权限 find /home/site/wwwroot -type d -exec chmod 755 {} \; find /home/site/wwwroot -type f -exec chmod 644 {} \; # 启动Web服务(根据你的环境选择) apache2-foreground # 若是Nginx则替换为:nginx -g 'daemon off;' - 给脚本添加执行权限:
chmod +x /home/site/wwwroot/startup.sh - 在Azure门户的启动命令中填入:
./startup.sh
针对黑客攻击的额外防护
权限问题解决后,还需要做这些来加固站点:
- 立即更新WordPress核心、所有主题和插件到最新版本
- 安装安全插件(比如Wordfence、iThemes Security),启用实时防火墙和恶意文件扫描
- 禁用默认的
admin用户名,设置复杂密码并启用两步验证 - 限制WordPress后台的登录IP范围(可以通过App Service的访问限制规则配置)
关于你的权限截图
从截图能看到目录和文件的权限未达到预期(比如部分目录权限可能不是755),这完全符合Azure App Service存储权限自动重置的表现,用上面的启动命令/脚本方法就能解决。
内容的提问来源于stack exchange,提问作者Abdul Munim
相关产品推荐
相关产品推荐

