NextCloudで久々に管理者でログインしようとしたら以下の画面がでた…

管理者ユーザは、Emailベースの2要素認証を有効にしていた
管理者に連絡といっても自分が管理者なので手に負えず…
これはマジで焦りますよね
Nextcloudの構成
現在運用しているNextcloudは、
- さくらVPS 1G (SSD 100GB)
- Ubuntu Server 20.04
- snapインストール
二要素認証の解除のしかた
今回はおそらく二要素認証用のモジュールが読み込めなくなってしまった可能性があるため、
二要素認証のログインをオフにします
データベース内に二要素認証を管理しているテーブルがあるためそれをいじります
データベースにログイン
snapでインストールしたNextcloudは通常のデータベースとは別で動作しているので注意が必要です
mysql-clientは以下の場所にありました
/snap/bin/nextcloud.mysql-client

データベースを「nextcloud」に指定します
use nextcloud;

以下のコマンドで二要素認証の有効状態を確認できます。「uid」はユーザ名が表示されています。
「enabled」は二要素が有効か無効かを表し、「0」が無効、「1」が有効です
select * from oc_twofactor_providers;

以下のSQL文で特定ユーザの二要素を無効かすることができます。「userID」の部分は、無効かしたいユーザの「uid」を入れてください。「uid」は上記のselect文で出てきたものと同じものを選択します
update oc_twofactor_providers set enabled = '0' and uid = 'userID';
このように、「enabled」がすべて「0」になりました

「quit」コマンドでmysql clientを終了させます
ブラウザのNextcloudにもどり
これで、普通にログインするとちゃんとログインできました

めでたしめでたし
コメント
nextcloudの管理者でログインできなくなっていたところ、
この記事で解決できました。
分かりやすい記事を書いてくださり、
ありがとうございました。