あらまし
検証の繰り返しで再作成する羽目になった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画面)
管理>ユーザー管理 へと進み、一時的に作成したユーザを停止したり管理者に昇格させたりしてください。