突然之间,我们无法访问网站的管理面板。一旦我登录/wp登录。php它将我重定向到主页或/wp管理员(取决于我是否在注销状态下访问了wp管理员)
WordPress版本:5.6.2
当它重定向到/wp-admin
我明白了:
"E;抱歉,不允许您访问此页面"E;
我的第一个猜测是有人(可能是另一个具有管理员权限的用户)更改了角色。事实并非如此,我通过查看数据库表和用户的wp_capabilities
这相当于成为一名管理员。
然后我尝试了很多其他的东西,但都没有成功:
使用创建新用户wp_create_user
, 添加了管理员功能,从专用浏览窗口登录到该帐户。相同的
转到WordPress git repo搜索的地方;抱歉,不允许您访问此页面"E;它出现在很多地方,所以我在一些文件中添加了随机的文本字符串,以查看哪个文本来自该文件wp-admin/includes/menu.php
在最后几行中:if ( ! user_can_access_admin_page() ) {
我想也许user_can_access_admin_page()
由于某种原因返回了错误的信息,所以我使用页面模板输出了如下数据if ( current_user_can(\'administrator\') ) {
echo "Yes, admin";
}
if ( user_can_access_admin_page() ) {
echo "Can access admin";
} else {
echo "Can\'t access admin";
}
两者都返回true,但
menu.php
失败。不知道为什么。
替换了wp admin,wp includes文件夹包含从Wordpress org下载的新副本。
重命名主题和插件文件夹,以排除插件或主题的问题。不是这样,还是一样。
检查了Apache2的错误日志,并为WP启用了调试日志以查找任何相关错误,但未找到任何相关错误。没什么特别的,我以前看到过所有常见的PHP注意事项。
有一次,我注意到SSL证书在一个月前就过期了(但问题是昨天开始的),所以为了确保我也更新了它,还是一样的。
任何对可能出现的错误有想法的人都会大有裨益!
SO网友:Deepak Kamat
我设法解决了这个问题。
原因是:在WordPress安装中默认设置的有关用户角色的数据在db表中完全丢失wp_options
在wp_user_roles
一行
就我而言,就是这样
a:3:{s:14:"backwpup_admin";a:2:{s:4:"name";s:14:"BackWPup Admin";s:12:"capabilities";a:12:{s:4:"read";b:1;s:8:"backwpup";b:1;s:13:"backwpup_jobs";b:1;s:18:"backwpup_jobs_edit";b:1;s:19:"backwpup_jobs_start";b:1;s:16:"backwpup_backups";b:1;s:25:"backwpup_backups_download";b:1;s:23:"backwpup_backups_delete";b:1;s:13:"backwpup_logs";b:1;s:20:"backwpup_logs_delete";b:1;s:17:"backwpup_settings";b:1;s:16:"backwpup_restore";b:1;}}s:14:"backwpup_check";a:2:{s:4:"name";s:21:"BackWPup jobs checker";s:12:"capabilities";a:12:{s:4:"read";b:1;s:8:"backwpup";b:1;s:13:"backwpup_jobs";b:1;s:18:"backwpup_jobs_edit";b:0;s:19:"backwpup_jobs_start";b:0;s:16:"backwpup_backups";b:1;s:25:"backwpup_backups_download";b:0;s:23:"backwpup_backups_delete";b:0;s:13:"backwpup_logs";b:1;s:20:"backwpup_logs_delete";b:0;s:17:"backwpup_settings";b:0;s:16:"backwpup_restore";b:0;}}s:15:"backwpup_helper";a:2:{s:4:"name";s:23:"BackWPup jobs functions";s:12:"capabilities";a:12:{s:4:"read";b:1;s:8:"backwpup";b:1;s:13:"backwpup_jobs";b:1;s:18:"backwpup_jobs_edit";b:0;s:19:"backwpup_jobs_start";b:1;s:16:"backwpup_backups";b:1;s:25:"backwpup_backups_download";b:1;s:23:"backwpup_backups_delete";b:1;s:13:"backwpup_logs";b:1;s:20:"backwpup_logs_delete";b:1;s:17:"backwpup_settings";b:0;s:16:"backwpup_restore";b:0;}}}
而它应该
Administrator
至少在某个地方。数据库中丢失的数据导致WordPress系统行为怪异(在丢失数据的情况下,实际工作与预期一样)
我知道它应该是什么样子,但为了测试它,我做了wp_user_roles
我从另一个WP站点管理并将其粘贴到表中的字段中,并保存和baam!网站已打开。
为什么会突然发生这种事?
在我的情况下,似乎出现了某种漏洞,一种攻击,因为现在我在仪表板上,我做的第一件事就是转到用户页面,有大量奇怪的用户帐户。
因此,我现在有另一项工作要做,那就是找出原因并清理混乱,但对于任何在访问WP admin页面和查看错误消息时遇到问题的人来说,没有任何效果,比如禁用插件等,那么请查看实际的数据库字段,无论是否一致。我可以通过简单地使用print_r
inguser
并注意到没有roles
, 然后我使用方法添加Administrator
角色,它只是没有增加它,然后我想这个角色Administrator
正在丢失自身。