管理者パスワードを回復もしくはリセットするにはどうしたらいいですか?
From Joomla! Documentation
通常は、バックエンドのユーザーマネージャーからユーザーの追加・編集・削除を行うことができます。その為には、Super Administratorのグループのメンバーでログインしなければなりません。
場合によっては、この方法は使えないでしょう。例えば、サイトが"ハック"され、パスワードやユーザーを変更された場合。パスワードを知っている人がもう現れない場合。あなたがパスワードを忘れてしまった場合など。
この様な場合でもまだ、Super AdministratorでログインするためにJoomla!のデータベースを変更することができます。これらはJoomla!の管理者が利用可能な方法です。
方法1:configuration.phpファイル
Joomlaがインストールされたサーバーのconfiguration.php
にアクセスできるなら、以下の方法でパスワードを回復できます。
1. FTPプログラムを使用して、サイトに接続します。configuration.phpファイルを見つけたら、パーミッションを確認します。444や他の場合は、644に変更します。これは後々、変更後のconfiguration.phpをアップロードするときの問題を防ぎます。
2. configurationファイルをダウンロードします。
3. ダウンロードしたconfiguration.phpをnotepad++などのテキストエディタで開き、リストの下に
public $root_user='myname';
の行を追加します。ここでの、mynameは、パスワードを知っている管理者アクセス権を持つユーザー名です。Authorレベル以上のユーザー名も、管理者アクセス権を持つユーザー名の代わりに使用できます。
4. configuration.phpを保存し、サイトにアップロードし直します。パーミッションは644のままでかまいません。
このユーザーは一時的なsuper administratorになります。
5. バックエンドにログインし、パスワードを持っていない管理者ユーザーのパスワードを変更するか、新しいsuper adminユーザーを作成します。新しいユーザーを作成した場合は、状況に応じて古いユーザーをブロックまたは削除することをお勧めします。
6. 終わったら、アラートボックスの"Click here to try to do it automatically"のリンクを利用して、configuration.phpに追加した行を削除します。上手くいかなかったら、テキストエディタで編集して、アップロードし直してください。
FTPプログラムでconfiguration.phpファイルのパーミッションを確認してください、444のはずです。手動で追加したラインを削除した場合は、444に変更してください。
自分のパスワードを知っているユーザーがいなくてフロントエンド登録を利用できない場合は、このドキュメントで後述するようにデータベースを変更する必要があります。
方法2. 直接データベースを編集する
上記の方法が上手くいかない場合、他に2つの選択肢がありますが、どちらもMySQLデータベースを直接操作する必要があります。
データベースの中のパスワードを変更する
管理ユーザーがまだ定義されている場合、最も簡単なオプションはデータベース内のパスワードを既知の値に変更することです。 これにはphpMyAdminまたは他のクライアントを使ってMySQLデータベースにアクセスできることが必要です。
- phpMyAdminで左のリストからJoomla!で移用しているデータベースを選択します。画面の左にデータベーステーブルが表示されます。
- テーブルのリストから"_users"を含むテーブルを探しクリックします。(注:インストール時に指定したプレフィックスに"_users"が続いているテーブルを探します)
- 上のツールバーの"Browse"ボタンをクリックします。これにより、このサイトに設定されているすべてのユーザーが表示されます。
- パスワードを変更するユーザーを探し、その行のEditアイコンを押します。
- passwordフィールドを編集します。次の行の値をコピーします。
d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199
passwordフィールドにペーストし、Goボタンを押します。phpMyAdminに"Affected rows: 1"のメッセージが表示されます。これで、パスワードは"secret"に変更されました。
- このユーザーとパスワードでログインし、安全のためにパスワードを変更してください。ユーザーマネジャーを利用して、全てのユーザーが合法か確認してください。ハッキングされている場合は、サイト上でのパスワードのすべてを変更することもできます。
新しいSuper Administratorユーザーを追加する
パスワードの変更が上手くいかなかったり、Super Administratorグループのメンバーで無い場合は、この方法で新しいユーザーを作成します。
- phpMyAdminで左のリストからJoomla!で移用しているデータベースを選択します。画面の左にデータベーステーブルが表示されます。
- 選択したデータベースのSQLクエリを動かすために、ツールバーの"SQL"ボタンを押します。"Run SQL query/queries on database <your database>"と呼ばれるフィールドが表示されます。
- このフィールドの全ての文字を消去し、下のクエリの内容をコピー&ペースとして、Goボタンを押します。クエリを実行して、新しいAdministratorユーザーをテーブルに追加します。
- 別のadministratorアカウントを追加するには、以下のSQLクエリを使用してください。
Joomlaで使用するSQLコード 2.5, 3.x, 4.x, 5.x
INSERT INTO `jos31_users`
(`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`)
VALUES ('Administrator2', 'admin2',
'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());
INSERT INTO `jos31_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');
ここまでできたら、Joomla!のバックエンドにユーザー名"admin2"とパスワード"secret"でログインできます。ログインしたら、ユーザーマネージャーでパスワードを安全なものに変更し、有効なEメールアドレスをアカウントに追加してください。あなたが"ハッキング"されている可能性がある場合は、すべてのユーザー、特にSuper Administratorグループのメンバーが正当であることを確認してください。
ここまででは例としてパスワードを"secret"に変更しました。他の二つの有効な値を以下に示します。
- password = "this is the MD5 and salted hashed password" ------------------------------------------------------ - admin = 433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT - secret = d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199 - OU812 = 5e3128b27a2c1f8eb53689f511c4ca9e:J584KAEv9d8VKwRGhb8ve7GdKoG7isMm