【问题标题】:Manually change the moodle admin password with acces to phpMyAdmin or create another admin account?通过访问 phpMyAdmin 手动更改 moodle 管理员密码或创建另一个管理员帐户?
【发布时间】:2012-05-05 20:18:31
【问题描述】:

moodle平台管理员登录密码丢失。

我可以访问 phpMyAdmin。

我去了 mdl_user 表,在那里我可以看到或编辑这个表。

我应该如何进行?我可以将管理员加密的密码和密钥更改为已知密码,还是只添加管理员用户更简单?

那会怎样?

【问题讨论】:

  • 您可以检查源代码并查看哈希是如何计算的。然后你可以用你的新密码和他们的散列函数做一个新的散列。

标签: php mysql phpmyadmin admin moodle


【解决方案1】:

打开 Moodle 的 config.php 文件,找到 $CFG->passwordsaltmain 定义的那一行,复制它的值(这是一长串随机字符)。

在 PHPMyAdmin 中,运行以下查询,并根据需要替换值:

UPDATE mdl_user SET password = MD5(CONCAT('<new password>', '<password salt copied from config>')) WHERE id = <id of admin user>

【讨论】:

  • 我的 config.php 没有 $CFG->passwordsaltmain 值,但是以下没有盐的工作 - UPDATE mdl_user SET password = MD5('') WHERE id =
【解决方案2】:

仅在 Moodle 2 上测试

您可以从命令行重置任何用户密码。在您的 Moodle 根目录中:

php admin/cli/reset_password.php

对于开发环境,您可能还需要禁用密码策略检查(这样您就可以输入一个小而快速的密码)。编辑 reset_password.php 并评论:

// if (!check_password_policy($password, $errmsg)) {
// cli_error($errmsg);

// }

【讨论】:

  • 确认这适用于 2.9.1。在我看来,这应该是正确的,选择的答案。不要大惊小怪,不要大惊小怪。
  • 优秀而简单的答案。适用于 Moodle 3.0。
【解决方案3】:

另一种更快速、更简单的方法来生成新的 MD5 哈希密码:

  1. 转到http://www.miraclesalad.com/webtools/md5.php 并创建一个新密码,例如... 冬雪123~ (它看起来像这样:“003df036e1a99aad3eaba7c3ca46723d”,不带引号)。
  2. 复制从您提交的单词生成的 md5 哈希密码(很简单)并准备粘贴。
  3. 使用 phpMyAdmin,登录您的 MySQL 数据库。
  4. 导航到用户表(对于 Moodle,它称为“mdl_user”)并浏览数据。
  5. 找到“admin”用户帐户后,单击编辑,然后粘贴您在第 2 步中复制的新密码(“003df036e1a99aad3eaba7c3ca46723d”)。 (进入密码字段。)这将替换您之前的内容。
  6. 尝试使用您的管理员用户帐户和新密码(密码:wintersnow123~)登录

【讨论】:

    【解决方案4】:

    您可以检查源代码并查看哈希是如何计算的。然后你可以用你的新密码和他们的散列函数来做一个新的散列。

    我检查了source-code,根据配置,它使用 md5 或 sha1 散列。所以检查你的配置并自己做一个哈希。

    // From the sourcecode:
    if ($this->config->passtype === 'md5') {   // Re-format password accordingly
          $extpassword = md5($extpassword);
    } else if ($this->config->passtype === 'sha1') {
          $extpassword = sha1($extpassword);
    }
    

    【讨论】:

      【解决方案5】:

      如何使用 MD5 哈希更改密码:

      1. 登录到 phpMyAdmin。 cPanel 主机将有一个数据库实用程序 在 cpanel 中调用 PhpMyAdmin。如果 Moodle 安装在 非 cPanel 托管,请联系托管公司以获取有关信息 如何在服务器上编辑您的数据库。有关更多信息 登录 PhpMyAdmin,请参阅文章“我如何管理 我的控制面板 (cpanel) 中 PHPMyAdmin 中的 MySQL 数据库?”。

      2. 在 PhpMyAdmin 中,找到名为 mdl_user 的表并选择它。由于 Moodle 有很多表,mdl_user 表可能在第二页。选择第二页。单击 mdl_user 表。

      3. 选择表格后,找到正在编辑的用户的表格行。点击带有铅笔图标的编辑链接。

      4. 密码字段中会有一系列字符和数字。这是一个加密密码,因此无法在数据库中查看。用新的登录密码替换加密文本。

      5. 接下来,在左侧的下拉菜单中,选择 MD5,然后单击 Go。

      这也可以用于电子邮件地址和用户名。电子邮件和用户名不需要 MD5 哈希。

      【讨论】:

        【解决方案6】:

        显然 Moodle 1.9.9 版只用 md5 对密码进行一次哈希处理(完全没有盐!!)。

        因此,唯一要做的就是将管理员行中的密码替换为您想要的任何密码,并应用 md5。

        【讨论】:

        • 你怎么确定在这里使用moodle版本?
        【解决方案7】:

        目前,Moodle 在密码中引入了一种盐,以在每个安装中对密码进行唯一加密。

        如果您没有删除或更改访客帐户密码,您可以将其值复制到管理员用户密码以便能够登录。

        以后你可以把它改成你喜欢的任何东西。

        用户帐户存储在 mdl_user 表中。

        【讨论】:

          【解决方案8】:

          适用于 Moodle 3.10。

          第 1 步 在 Moodle 根目录中创建一个临时 PHP 文件以生成密码。

          <?php
          include('config.php');
          echo password_hash('new_password', PASSWORD_BCRYPT);
          

          现在运行这个 php 脚本来获取 Moodle 框架生成的新密码。

          第 2 步: 打开 PHPMyAdmin 并选择 Moodle 数据库。 运行此查询。

          update mdl_user set password="new_password_hash" where username="admin";
          

          第 3 步: 从 Moodle 根目录中删除临时 php 脚本文件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-06-15
            • 1970-01-01
            • 1970-01-01
            • 2021-10-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多