EC-CUBEのパスワードがわからなくなった。
再設定するのは、面倒なので、直接DBを書き換えたい。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=5754&forum=11
を参考に、書き換え方を探った。
data/class/pages/admin/system/LC_Page_Admin_System_Input.php
を見ると
<?php /** * 入力された管理者データをInsertする. * * @param array 管理者データの連想配列 * @return void */ function insertMemberData($arrMemberData) { $objQuery = new SC_Query(); // INSERTする値を作成する. $sqlVal = array(); $sqlVal['name'] = $arrMemberData['name']; $sqlVal['department'] = $arrMemberData['department']; $sqlVal['login_id'] = $arrMemberData['login_id']; $sqlVal['password'] = sha1($arrMemberData['password'] . ':' . AUTH_MAGIC); $sqlVal['authority'] = $arrMemberData['authority']; $sqlVal['rank'] = $objQuery->max('dtb_member', 'rank') + 1; $sqlVal['work'] = '1'; // 稼働に設定 $sqlVal['del_flg'] = '0'; // 削除フラグをOFFに設定 $sqlVal['creator_id'] = $_SESSION['member_id']; $sqlVal['create_date'] = 'NOW()'; $sqlVal['update_date'] = 'NOW()'; // INSERTの実行 $objQuery->insert('dtb_member', $sqlVal); } ?>
とあるので
パスワードの生成方法は
<?php sha1($arrMemberData['password'] . ':' . AUTH_MAGIC);
だと分かる。
じゃぁAUTH_MAGIC が必要ですね。
そこでgrep AUTH_MAGICすると、ビンゴですね。
takuya@debian00:/var/www/www.example.com/public_html$ grep AUTH_MAGIC . -R ./install/sql/insert_data.sql:788:INSERT INTO mtb_constants VALUES ('AUTH_MAGIC','"31eafcbd7a81d7b401a7fdc1****************"',10,'認証用 magic'); ./install/temp/install.log:4644:INSERT INTO mtb_constants VALUES ('AUTH_MAGIC','"31eafcbd7a81d7b401a7fdc1****************"',10,'認証用 magic') from 114.164.43.95 ./data/class/pages/mypage/LC_Page_Mypage_Change.php:589: if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); ./data/class/pages/mypage/LC_Page_Mypage_Change.php:648: $arrRegist["password"] = sha1($arrRegist["password"] . ":" . AUTH_MAGIC); ./data/class/pages/admin/LC_Page_Admin_Login.php:101: $ret = sha1($_POST['password'] . ":" . AUTH_MAGIC); ./data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php:232: $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); ./data/class/pages/admin/system/LC_Page_Admin_System_Input.php:358: $sqlVal['password'] = sha1($arrMemberData['password'] . ':' . AUTH_MAGIC); ./data/class/pages/admin/system/LC_Page_Admin_System_Input.php:388: $sqlVal['password'] = sha1($arrMemberData['password'] . ":" . AUTH_MAGIC); バイナリー・ファイル./data/class/pages/admin/system/.LC_Page_Admin_System_Input.php.swpは一致しました ./data/class/pages/campaign/LC_Page_CampaignEntry.php:240: $arrRegist["password"] = sha1($arrRegist["password"] . ":" . AUTH_MAGIC); ./data/class/pages/entry/LC_Page_Entry.php:591: $arrRegist["password"] = sha1($arrRegist["password"] . ":" . AUTH_MAGIC); ./data/class/pages/forgot/LC_Page_Forgot.php:139: $conn->query( $sql, array( sha1($this->temp_password . ":" . AUTH_MAGIC) ,$data['customer_id']) ); ./data/class/helper/SC_Helper_DB.php:495: if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); ./data/class/SC_Customer.php:86: if ( sha1($pass . ":" . AUTH_MAGIC) == $data['password'] ){ ./data/class/SC_Customer.php:139: if (sha1($pass . ':' . AUTH_MAGIC) == @$data['password']) { ./data/downloads/module/mdl_db_export/LC_Page_Mdl_Down_Cw_Config.php:140: //AUTH_MAGICを保存 ./data/downloads/module/mdl_db_export/LC_Page_Mdl_Down_Cw_Config.php:143: fwrite($fp, AUTH_MAGIC); ./data/downloads/backup/bk120405/bkup_data.csv:25524:"AUTH_MAGIC","\"31eafcbd7a81d7b401a7fdc1****************\"","10","認証用 magic" ./data/downloads/tmp/1306564568/mdl_db_export/files/LC_Page_Mdl_Down_Cw_Config.php:140: //AUTH_MAGICを保存 ./data/downloads/tmp/1306564568/mdl_db_export/files/LC_Page_Mdl_Down_Cw_Config.php:143: fwrite($fp, AUTH_MAGIC); ./data/mtb_constants_init.php:21:define('AUTH_MAGIC', "31eafcbd7a81d7b401a7fdc1****************"); ./data/cache/mtb_constants.php:21:define('AUTH_MAGIC', "31eafcbd7a81d7b401a7fdc1****************");
AUTH_MAGICは constants に入ってました。
./data/cache/mtb_constants.php:21:define('AUTH_MAGIC', "31eafcbd7a81d7b401a7fdc1****************");
これで、AUTH_MAGICを使って、再生成できますね。
EC-CUBEのパスワード再生成
再生成コマンドスクリプトをつくるとこんな感じ?
ec-cube_regenpasswd.php
<?php define(AUTH_MAGIC, "31eafcbd7a81d7b401a7fdc12bba047c*****"); echo sha1($arg[1] . ':' . AUTH_MAGIC);
php ec-cube_regenpasswd.php my_password
これで、出てきたデータを元にパスワードを書き換えることができます