MTのログインパスワードが分からない時の対応(MT5以降の場合)
最近、案件でお客様のMT環境を触る機会があったのですが、MTのシステム管理者アカウントをお客様が把握してない為、システム管理者権限が必要な設定が一切できない、という事態に遭遇していました。
今回は、そのようなMTログインパスワードが分からない場合の対応について、考えていきます。
標準のパスワードのリセット機能を使う
まず思いつくのは、MTが標準で備えるパスワードのリセット機能を使った対応です。
次の条件が揃っていれば使えます。
- MTのシステム管理者アカウントに設定したメールアドレスは把握している。
- MTからメール送信できる。
- MTから送信されたメールを見れる。
※本機能を知らない方は、次の公式ドキュメントを見てください。
http://www.movabletype.jp/documentation/mt6/menu/sign-in-password-recovery.html
(MTのログイン画面)
(パスワードのリセット画面で「リセット」を押した際に、複数ユーザーでメールアドレスを共有してると、このような画面が出る。MT6.0.6にて確認。)
パスワードのメールが見れない場合
案件対応でお客様のMT環境を扱っていると、
- パスワードリセット用メールの送信先アドレスがお客様のアドレスなので自分から見れない。
- もっと悪いと、前任者が退職、とかでお客様が送信先アドレスのアカウントを把握してない。
なんて事があります。
この場合、MTが使っているDBの内容を書き換える権限があれば、MTアカウントのメールアドレス情報を、自身が見れるアドレスに書き換える方法が考えられます。
具体的な箇所は、mt_authorテーブルにおける、書き換えたいMTアカウントのレコードのカラム author_email の値です。
phpmyadminなどのグラフィカルなDB管理ツールから書き換えられるなら、そちらが簡単で間違いも少ないので、良いでしょう。
但し、sshなどコマンドラインからmysqlコマンドでMySQLの管理ツールに入り、操作する場合は、次のようなSQLコマンドを実行します。
UPDATE `[DBの名称]`.`mt_author` SET `author_email` = '[自身が見れるメールアドレス]' WHERE `mt_author`.`author_id` =[アカウントのユニークID];
試しにMTOS5.2.10にてこの方法を試してみたところ、パスワードのリセット後、特に問題なくログインして管理画面を閲覧する事が出来ました。
※実行する場合は自己責任でお願いします。
MT-Medicの利用
MT3,MT4 の時代の頃はMT-Medic というツールがあり、これでパスワードのリセットが出来ていたそうです。
http://www.nonplus.net/software/mt/MT-Medic.htm
(MT-Medicの管理画面)
ただし、MT5系では、そのまま利用する事は出来ません。
これについて、荒木勇次郎氏が、MT5系でも利用できるものを公開されています。
http://www.koikikukan.com/archives/2013/05/17-015555.php
※但し、細かい検証はしていない、との事なので、利用は自己責任となります。
MT6でもMT-Medicは使える?
試しに、荒木氏の改変版MT-MT-MedicをMT6でも使えるのかMT6.0.6(プラグインは標準構成)にて試しました。
結果、MT-Medicにてパスワード変更の操作を行った際に特に不具合と思しき表示も出ず、操作対象のMTにも変更後のパスワードにてログインできました。
また、MTが利用しているDBについて、パスワード変更前と変更後の内容差分をとってみましたが、at_authorテーブル以外でmt-medic.cgiによると思われる変更はなく、問題は無いように見えました。
あとがき
今回はMTアカウントのパスワードのリセット方法について解説しました。
ただ、考えてみればこれらの方法は、所謂”悪意のある第三者”が、お客様MT環境に不正ログインする際の手法として使う事もないとは言い切れません。
今回の記事を踏まえてMTのセキュリティを考えてみる、というのも良いかと思います。