不能访问可湿性粉剂管理员,它说“对不起,您不被允许访问此页面。”

时间:2021-04-14 作者:Deepak Kamat

突然之间,我们无法访问网站的管理面板。一旦我登录/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证书在一个月前就过期了(但问题是昨天开始的),所以为了确保我也更新了它,还是一样的。

    任何对可能出现的错误有想法的人都会大有裨益!

    1 个回复
    SO网友:Deepak Kamat

    我设法解决了这个问题。

    原因是:在WordPress安装中默认设置的有关用户角色的数据在db表中完全丢失wp_optionswp_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_ringuser 并注意到没有roles, 然后我使用方法添加Administrator 角色,它只是没有增加它,然后我想这个角色Administrator 正在丢失自身。