Был момент, в организации потеряли доступы к системе, нужно было восстанавливать. Конечно, все указанное ниже работает при наличии FTP/SFTP доступа или доступ к файл-менеджеру через хостинг-провайдера.
Для восстановления прилагаю несколько готовых скриптов на PHP.
Создаем в корне проекта файлы и стартуем скрипты по пути https://site.ru/имя_скрипта.php
Важно обратить внимание, на наличие в корне проекта, файла config.php.
<?php
require_once('config.php');
require_once($CFG->libdir.'/moodlelib.php');
require_login(); // запретить неавторизованным доступ
// Ищем пользователя admin
$admin = $DB->get_record('user', ['username' => 'admin']);
if ($admin) {
$newpassword = 'NewPassword123!';
update_internal_user_password($admin, $newpassword);
echo "Пароль администратора успешно изменен на: $newpassword";
} else {
echo "Администратор не найден!";
}
?>
Если, запускаем скрип в каталоге, а файл config.php выше по иерархии каталогов.
<?php
require_once(__DIR__.'/../config.php'); // правильный путь к config.php
require_once($CFG->libdir.'/moodlelib.php');
// Ищем пользователя admin
$admin = $DB->get_record('user', ['username' => 'admin']);
if ($admin) {
$newpassword = 'NewPassword123!';
update_internal_user_password($admin, $newpassword);
echo "Пароль администратора успешно изменен на: $newpassword";
} else {
echo "Администратор не найден!";
}
?>
Данный вариант, это когда, мы не знаем логина супер-администратора. Просто не всегда это бывает пользователь с логином admin.
<?php
require_once(__DIR__.'/../config.php');
require_once($CFG->libdir.'/moodlelib.php');
// Ищем пользователя по ID
$admin = $DB->get_record('user', ['id' => 2]);
if ($admin) {
// Выводим логин пользователя
echo "Логин администратора: " . $admin->username . "<br>";
// Меняем пароль
$newpassword = 'NewPassword123!';
update_internal_user_password($admin, $newpassword);
echo "Пароль администратора успешно изменен на: $newpassword";
} else {
echo "Администратор не найден!";
}
?>
Количество просмотров: 28