Help us understand the problem. What is going on with this article?

Drupal7で管理者のパスワードを忘れた時にすること

More than 3 years have passed since last update.

Drupal7で開発中、万が一管理者(サイト構築時に作成したアカウント)のパスワードを忘れてしまった時の方法を記述します。

Drupalのusersテーブルについて

Drupal7のユーザーテーブルは以下のようになっている

mysql> desc users;

Field Type Null Key Default Extra
uid int(10) unsigned NO PRI 0
name varchar(60) NO UNI
pass varchar(128) NO
mail varchar(254) YES MUL
theme varchar(255) NO
signature varchar(255) NO
signature_format varchar(255) YES NULL
created int(11) NO MUL 0
access int(11) NO MUL 0
login int(11) NO 0
status tinyint(4) NO 0
timezone varchar(32) YES NULL
language varchar(12) NO
picture int(11) NO MUL 0
init varchar(254) YES
data longblob YES NULL

パスワードを忘れてしまって変更をしたい場合は、usersテーブルのpassフィールドの値を変更すればパスワードを変更をすることができる。
ちなみに管理者(サイト構築時に作成したアカウント)のuidは1である。

パスワード変更のための文字列を用意する

passフィールドに入る値はハッシュ化された値が入るためパスワードにしたい文字列のハッシュを用意します.Drupal7にはハッシュを作るスクリプトが以下にあるでこれを使う。

./scripts/password-hash.sh abcdefg

password: abcdefg hash: $S$DOy6K2AlgtD8pzi0Bdc8pHej5F12fHMmsLJG5mim9aYdq4FLEqfo

パスワードを変更する

tableに先ほど作成した。hashの値を挿入する

UPDATE users SET pass ='$S$DOy6K2AlgtD8pzi0Bdc8pHej5F12fHMmsLJG5mim9aYdq4FLEqfo' WHERE uid = 1;

drushが入っていれば以下のようにコマンドを叩くことによって変更することもできるらしい。(こちらは試していません。)
drush upwd --password="abcdefg" "管理者(サイト構築時に作成したアカウント)"

補足:パスワードロックがかかってしまった場合

drupalでは標準で連続5回同じユーザーのパスワードを間違えるとそのユーザーで一定期間ログインできなくなっている。

これを解消にするにはfooldテーブルの任意の値を消去すれば可能
desc flood;

Field Type Null Key Default Extra
fid int(11) NO PRI NULL auto_increment
event varchar(64) NO MUL
identifier varchar(128) NO
timestamp int(11) NO 0
expiration int(11) NO MUL 0

ログイン失敗時にはeventフィールドの値failed_login_attempt_ipとfailed_login_attempt_userがセットで作成されるためこの自分のアクセスに対応するこのセットを消去することによって一定期間待つ必要は無くなります。

参考にしたページ

https://www.drupal.org/node/1023428
https://www.drupal.org/node/44164

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away