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