Wie wird das Passwort für den Administrator nach der Migration von 1.5 (neu) festgelegt?

7

Ich habe eine alte Joomla 1.5-Site mit dem Tool SP UPGRADE auf eine glänzende neue Joomla 3.3-Version migriert .

Jetzt kann ich mich scheinbar nicht anmelden und befürchte, dass alle Benutzerkennwörter in der Datenbank wie 'MD5' aussehen: 'Salt', die alte Methode zum Erstellen von Kennwörtern.

Ich verstehe, dass der neuere Code ein basiertes Passwort verwendet. Alle Methoden, die ich zum Einfügen in das alte 'geheime' Passwort beschrieben habe, funktionieren nicht.

Wie setze ich ein Passwort in Joomla 3.3 zurück?

tgunr
quelle
1
docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F . Persönlich bevorzuge ich die zweite Methode.
Farahmand
Nein, diese Anweisungen gelten für ältere Versionen von joomla und funktionieren nicht für joomla 3.x.
tgunr
1
Ich teste es einfach in Joomla 3.3.3 und es funktioniert wie ein Zauber.
Farahmand

Antworten:

9

Hier ist eine Problemumgehung, um Ihr Passwort für Ihr Konto vorübergehend zurückzusetzen.

  1. Melden Sie sich bei Ihrem Hosting-Panel an und verwenden Sie das verfügbare Datenbank-Tool (wahrscheinlich PHPmyAdmin).

  2. Laden Sie die entsprechende Datenbank und wechseln Sie in die Tabelle jos_users. (Das Datenbankpräfix kann für Ihren Fall unterschiedlich sein.)

  3. Wechseln Sie zur Suchansicht von PHPmyAdmin, damit Sie die Benutzerdatensätze anzeigen können.
  4. Suchen Sie Ihr Konto und klicken Sie zum Bearbeiten oder klicken Sie direkt in das Feld 'Passwort' (normalerweise macht PHPmyAdmin das Feld damit bearbeitbar).
  5. Fügen Sie im Passwortfeld den folgenden Wert ein:

$ 2y $ 10 $ JszAMznv7U2Q4VETQdw7n.CX / HPekafC8sxa9.n0V2gp / t / .xvHYi

  1. Wenden Sie keine speziellen Funktionen zum Speichern des Felds an, und Ihr Kontokennwort wird auf admin gesetzt. Speichern Sie den Datensatz.

Sie können sich jetzt mit Ihrem Konto als Passwort anmelden: admin.

Stellen Sie nach der Anmeldung sicher, dass Sie Ihr gewünschtes Passwort festgelegt haben.

FFrewin
quelle
Ja, das hat funktioniert, aber wie haben Sie den Passwortwert abgeleitet?
tgunr
Ich habe es einfach aus einer anderen etablierten Datenbank genommen, von einem Benutzer, der admin als Passwort hat.
FFrewin
7

Zusätzlich zu FFrewins guter Antwort gibt es hier einige alternative Möglichkeiten, um das Administratorkennwort zurückzusetzen.

Hinweis
Denken Sie daran, dass die meisten dieser Methoden Ihr Passwort auf etwas Einfaches wie setzen admin. Es ist sehr wichtig, danach ein stärkeres Passwort festzulegen. Wenn Grund zu der Annahme besteht, dass die Site gehackt wurde, möchten Sie möglicherweise andere Benutzer mit Administratorzugriff entfernen, sobald Sie den Zugriff auf Ihre Joomla-Installation wiederhergestellt haben.
Diese Methoden stammen teilweise aus Joomla Docs .

Alternative 1: Datei Configuration.php

Wenn Sie sich mit einem anderen Benutzer anmelden können (ohne Superadministratorrechte), können Sie diese Zeile am Ende der configuration.phpDatei in Ihrem Joomla-Stammverzeichnis hinzufügen :

public $root_user='myname';

Ersetzen Sie mynamedurch den Benutzernamen eines Benutzers, dessen Passwort Sie kennen (mit Autorenrechten oder höher). Dieser Benutzer kann sich jetzt als Superadministrator anmelden und Sie können Benutzer im Benutzermanager bearbeiten / hinzufügen. Denken Sie daran, die zusätzliche Zeile aus Ihrer configuration.phpDatei zu entfernen, wenn Sie fertig sind, indem Sie Joomla versuchen lassen, dies automatisch zu tun, wenn Sie dazu aufgefordert werden, oder indem Sie die Datei manuell bearbeiten.

Alternative 2: Neuen Super-Admin-Benutzer hinzufügen

Mit dieser Methode kann ein neuer Superadministrator erstellt werden:

  1. Öffnen Sie phpMyAdmin (oder ähnlich, abhängig von Ihrem Hosting) und wählen Sie die Datenbank für Joomla! Seite? ˅.
  2. Klicken Sie in der Symbolleiste auf die Schaltfläche "SQL", um eine SQL-Abfrage für die ausgewählte Datenbank auszuführen. Daraufhin wird ein Feld mit dem Namen "SQL-Abfrage / Abfragen in Datenbank ausführen" angezeigt. Löschen Sie den Text in diesem Feld, kopieren Sie die folgende Abfrage und fügen Sie sie ein. Klicken Sie auf die Schaltfläche Los, um die Abfrage auszuführen und den neuen Administratorbenutzer zur Tabelle hinzuzufügen:

    INSERT INTO `jos31_users`
    (`name`, `username`, `password`, `params`)
    VALUES ('Administrator2', 'admin2',
    'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '');
    INSERT INTO `jos31_user_usergroup_map` (`user_id`,`group_id`)
    VALUES (LAST_INSERT_ID(),'8');
    
  3. Denken Sie daran, die beiden Vorkommen von jos31_durch das Präfix zu ersetzen, das von Ihrer Joomla-Installation verwendet wird (dies ist normalerweise in phpMyAdmin leicht zu erkennen).

  4. Sie können jetzt mit dem Benutzernamen admin2 und dem Passwort secret auf Ihre Site zugreifen . Stellen Sie sicher, dass Sie Ihr Passwort bearbeiten, sobald Sie sich angemeldet haben.

Alternative 3:

Erstellen Sie eine PHP-Datei mit dem folgenden Code, laden Sie sie in Ihr JOOMLAROOT / Administrator-Verzeichnis hoch und führen Sie sie in Ihrem Browser aus. Sie werden sofort angemeldet (sowohl Joomla 2.5 als auch 3) und können Benutzer hinzufügen / bearbeiten. Denken Sie daran, die Datei zu entfernen, wenn Sie fertig sind. Wenn Sie dies nicht tun, wird dies ein großes Sicherheitsproblem darstellen.

Das Tool finden Sie auch hier: http://myext.eu/en/j25-login

<?php
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);

if (file_exists(dirname(__FILE__) . '/defines.php')) {
    include_once dirname(__FILE__) . '/defines.php';
}

if (!defined('_JDEFINES')) {
    define('JPATH_BASE', dirname(__FILE__));
    require_once JPATH_BASE.'/includes/defines.php';
}

require_once JPATH_BASE.'/includes/framework.php';
require_once JPATH_BASE.'/includes/helper.php';
require_once JPATH_BASE.'/includes/toolbar.php';
$app = JFactory::getApplication('administrator');
JPluginHelper::importPlugin('user');
$user = JUser::getInstance();
$db = JFactory::getDBO();
$q = 'SELECT u.* FROM `#__users` as u
        LEFT JOIN `#__user_usergroup_map` as ug ON u.id = ug.user_id
        WHERE `block` = 0 AND `activation` = 0 AND ug.group_id = 8
        LIMIT 0,1';
$db->setQuery($q);

$user_tmp = $db->loadObject();
$user_tmp->guest = 0;
$user_tmp->isRoot = 1;
// $user_tmp->groups = array(8=>8);
// $user_tmp->_authGroups = array(1,8);
// $user_tmp->_authLevels = array(1,1,2,3);
// $user_tmp->gid = 1000;

foreach($user_tmp as $k=>$v){
    $user->set($k,$v);
}
$session = JFactory::getSession();
$session->set('user', $user);
$app = JFactory::getApplication();
$app->checkSession();
$app->redirect( JUri::base(), "" );
johanpw
quelle