ソルト付き Drupal 管理者パスワードのリセット

ソルト付き Drupal 管理者パスワードのリセット

Drupal が構成された古い VM があり、管理者パスワードを思い出せません。パスワード回復プロセスでパスワードをリセットするためのリンクが送信されましたが、生成されたページには「アクセスが拒否されました」と表示されました。

私はその後MySQL で Drupal ユーザー テーブルを直接編集します。これは、Salt モジュールがインストールされていたためにハッシュが無効であったという事実を除けば、機能していたはずです。

ここからどこへ行けばよいか分かりません。何かアイデアはありますか?

答え1

すでに問題は解決されているようですが、とにかく答えをここに示します。mysql データベースに接続し、次の操作を実行します。

  • name='salt' の変数から値を選択します。
  • update users set pass=md5('newpassSALT') where uid=1; ここで、SALT は上記の値です。

パスワードは「newpass」にリセットする必要があります。

答え2

私はMD5('newpassSALT')受け入れられた回答なので、私の場合はこうなりました。以下の値はご自身のものに置き換える必要があることに注意してください。

  • /var/www/path/to/drupal: Drupalがインストールされている場所
  • mynewpassword: ご希望のパスワード
  • drupaluser: Drupal データベース ユーザー
  • drupaldb:Drupal データベース スキーマ

ステップバイステップ:

# cd /var/www/path/to/drupal
# scripts/password-hash.sh "mynewpassword"
password: mynewpassword     hash: $S$C/mWw8UGcAyCwLDOiqRBOShJl8w2vVLsSzYvqCMuAg/LSncU16Iy

# mysql -u drupaluser -p
enter your password:

mysql> use drupaldb
Database changed
mysql> update users set pass='$S$C/mWw8UGcAyCwLDOiqRBOShJl8w2vVLsSzYvqCMuAg/LSncU16Iy' where uid=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

答え3

Drupal システム上に、正常に機能する 2 番目の非管理者アカウントがありますか? このアカウントも、指定されたパスワードを使用していますか? MySQL テーブルを直接編集し、既知のアカウントから管理者アカウントにパスワードをコピーできますか?

答え4

間違ったデータベースを終了しています。mysql.user テーブルは、MySQL アカウントが Drupal のデータベースにアクセスするためのものです。Drupal が「アクセスが拒否されました」と表示している場合は、おそらくデータベースにアクセスできていますが、Drupal の管理者パスワードを忘れています。この場合は、phpMyAdmin を使用することを強くお勧めします。

1. Login to phpMyAdmin
2. Select the database which Drupal use from the drop-down menu on the left.
4. Click on the SQL tab.
5. In the text field on the page type the following text:
update users set pass=md5('NEWPASS') where uid = 1;

uid 1 は管理者です。このクエリで uid を変更することで、他のユーザーが使用するパスワードを変更できます。

関連情報