あらまし

検証の繰り返しで再作成する羽目になったgrowi。幸いDBデータは残っていたのでデータそのものは無事だったのですが、管理者パスワードを忘れてしまいました。

そこで、以下の通りにパスワードをリセットさせました。

前提

  • Growiのバージョンは2022年9月時点で最新の5.1.4。
  • 登録の制限:公開(だれでも登録可能)

手順

参考:
https://blog.akky.me/blog/change-growi-password-manually/

上記URLにあるように、環境変数'PASSWORD_SEED'を確認しようとしましたが、再作成の際に変数を失念。

なので、搦め手を用いました。

ユーザー登録を行います。(Growi Web画面)

Growiのトップ画面「新規登録はこちら」から

  • ユーザーID
  • 名前
  • メールアドレス (管理者と同じメールアドレスは登録できないので注意してください)
  • パスワード

を設定して新規登録します。このとき、パスワードは「リセットを行いたい管理者パスワード(上書きを行いたいパスワード)」にします。

ログインできることを確認したので、ここからはターミナルでの操作になります。

mongodbに接続します。(Growiがインストールされたサーバ)

管理者権限で実施しました。

mongo growi

上記で新規登録をしたユーザのデータを確認します。(Growiがインストールされたサーバ)

db.users.find({email: "上記登録をしたメールアドレス"});

パスワードのハッシュ値を確認します。(Growiがインストールされたサーバ)

出力されたデータの以下の値を確認します。アカウント情報がずらっと出てくる中で、

"password" : "ハッシュ化されたパスワード値",

これを控えておきます。

管理者パスワードを上書きます。(Growiがインストールされたサーバ)

db.users.update({email: "管理者のメールアドレス"}, {$set: {password: "先程控えておいたパスワードのハッシュ値"}}); 
# WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) と表示されればOKです

上書きしたパスワードでログインします。(Growi Web画面)

この手順でなんとか管理者でログインできました。

後処理を行います。(Growi Web画面)

管理>ユーザー管理 へと進み、一時的に作成したユーザを停止したり管理者に昇格させたりしてください。