0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Concrete CMS で強引にパスワードリセットをする方法

Last updated at Posted at 2022-07-07

お客さんの Concrete CMS の診断をするときなど、SQL Dump データをいただいても、ID や Password がわからない時があります。

そんな時は、MySQL データベースの中に入り、スーパー管理者のメールアドレスを社内のプロジェクト用グループメールや自分のメールアドレスに直接変更し、パスワードリセットを通じてログインできるようにします。

下記の説明は SSH ログインで MySQL or MariaDB の CLI Client を使う想定ですが、PHPMyAdmin などのウェブ管理画面や Sequal Ace などのアプリでも同じようなことができます。

スーパー管理者のパスワードリセット方法

  • 開発の SSH にログイン
  • MySQL にログイン
    • mysql -u ユーザー名 --password="パスワード" 開発のDB名前
  • uID = 1 の情報を取得
    • select * from Users where uID=1;
    • ここの結果で出てくる uName のカラムがログインIDです
    • メールアドレスが uEmail のカラム
  • uID=1 のメールアドレスを希望するメールアドレスに変更
    • UPDATE Users SET uEmail="example@example.co.jp" WHERE uID=1;
      • example@example.co.jp の部分を変えて実行してください
  • 開発サイトのパスワード再発行ページに訪問
    • [サイトURL]/index.php/login/concrete/forgot_password
  • パスワード再発行にてさっき変更したメールアドレスでに確認メールを送信し、パスワードを自分が覚えているランダムなものに変更する
    • メールが届かなない可能性があります。その時は MySQL にまた入って Logs テーブルから探します。
      • MySQL にログイン
      • select * from Logs ORDER BY logID DESC limit 1; 一番新しいログの1件を表示するというコマンド
      • パスワード再発行の URL を取得します。
    • メールログの記録を停止しているサイトもありますが、その際は config ファイルを修正して再開させます。(長くなるので割愛。もしも知りたかったら、 Concrete CMS ユーザーフォーラム で質問してください。
  • これでスーパー管理者の ID & Password の変更が完了です。

おまけ: ユーザーのメールアドレス匿名化

Concrete CMS の中にあるユーザー情報からメールアドレスを example.com などに一括で変更するSQL文サンプルです。

SSH からのMySQL/MariaDB の CLI や、PHPMyAdmin や Sequal Ace などの「SQL」の項目から実行できます。

フォーマット

UPDATE Users SET uEmail=REPLACE(uEmail, "original", "example");
# メールアドレスから特定の文字列「original」だけを「example」に変更する
UPDATE Users SET uEmail=REPLACE(uEmail, "original", "example"); 
# メールアドレスを「ユーザー名@example.com」に変更する
UPDATE Users SET uEmail=CONCAT(uName, '@example.com');
# メールアドレスを「ユーザー名@example.com」に変更するけれど「@example.co.jp」のメールアドレスは変えない。(例:自分の会社メールアドレスは匿名化しない)
UPDATE Users SET uEmail=CONCAT(uName, '@example.com') WHERE uEmail NOT LIKE  "%@example.co.jp";
#メールアドレスを「数字の連番@example.com」に変更するけれど「@example.co.jp」のメールアドレスは変えない。(例:自分の会社メールアドレスは匿名化しない)
UPDATE Users SET uEmail=CONCAT(uID, '@example.com') WHERE uEmail NOT LIKE  "%@example.co.jp";
# ユーザー名もスーパー管理者以外は連番だけにする
UPDATE Users SET uName=uID WHERE uID NOT LIKE  "1";

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?