在 Moodle 平台中的管理员登录密码丢失。
我可以访问 phpMyAdmin。
我去了 mdl_user 表,在那里我可以看到或编辑这个表。
我应该如何进行?我可以将管理员加密的密码和密钥更改为已知密码,还是只添加一个管理员用户更简单?
那会怎么样?
在 Moodle 平台中的管理员登录密码丢失。
我可以访问 phpMyAdmin。
我去了 mdl_user 表,在那里我可以看到或编辑这个表。
我应该如何进行?我可以将管理员加密的密码和密钥更改为已知密码,还是只添加一个管理员用户更简单?
那会怎么样?
仅在 Moodle 2 上测试
您可以从命令行重置任何用户密码。在您的 Moodle 根目录中:
php 管理员/cli/reset_password.php
对于 dev prod 环境,您可能还想禁用密码策略检查(这样您就可以输入一个小而快速的密码)。编辑 reset_password.php 并评论:
// if (!check_password_policy($password, $errmsg)) {
// cli_error($errmsg);// }
打开 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>
生成新 MD5 哈希密码的另一种更快捷、更简单的方法:
您可以检查源代码并查看哈希是如何计算的。然后你可以用你的新密码和他们的散列函数来做一个新的散列。
我检查了源代码,根据配置,它使用 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);
}
如何使用 MD5 哈希更改密码:
登录到 phpMyAdmin。cPanel 主机将在 cpanel 中有一个名为 PhpMyAdmin 的数据库实用程序。如果 Moodle 安装在非 cPanel 主机上,请联系托管公司以获取有关如何在服务器上编辑数据库的信息。有关登录 PhpMyAdmin 的更多信息,请参阅“如何在我的控制面板 (cpanel) 中的 PHPMyAdmin 中管理 MySQL 数据库?”一文。
在 PhpMyAdmin 中,找到名为 mdl_user 的表并选择它。由于 Moodle 有很多表,mdl_user 表可能在第二页。选择第二页。单击 mdl_user 表。
选择表格后,找到正在编辑的用户的表格行。单击带有铅笔图标的编辑链接。
密码字段中会有一系列字符和数字。这是一个加密密码,因此无法在数据库中查看。用新的登录密码替换加密文本。
接下来,在左侧的下拉菜单中,选择 MD5,然后单击 Go。
这也可以用于电子邮件地址和用户名。电子邮件和用户名不需要 MD5 哈希。
显然 Moodle 1.9.9 版只用 md5 对密码进行一次哈希处理(根本没有盐!!)。
所以唯一要做的就是用你想要的任何密码替换管理员行中的密码,并应用 md5。
目前 Moodle 在密码中引入了一种盐,以在每个安装中唯一地加密密码。
如果您没有删除或更改访客帐户密码,您可以将其值复制到管理员用户密码以便能够登录。
稍后您可以将其更改为您喜欢的任何内容。
用户帐户存储在 mdl_user 表中。
对于 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 脚本文件。