Aokashi Room

作った作品の紹介やレビュー、トラブルシューティングとか色々

さくらのVPSで usermod したら sudo 剥奪された話

さくらのVPSusermod -G xxx したら sudo 剥奪されました。

当初はOSまるごと再インストールの危機になりましたが、なんとかなりました。

使用環境

  • さくらのVPS 1G
  • Ubuntu 22.04 LTS
    • 9/7 に Ubuntu 18.04 からアップグレードしたばかり
  • ユーザーは root と aokashi に加え、デプロイ用を新たに追加したばかり
    • 一緒にグループも作成して aokashi にもそのグループに所属しようとしたら今回の事故が起こった
  • sshd_config
    • PermitRootLogin no

解決方法

レスキューブートを行い、内部のシェルで /etc/groups ファイルを編集したことでことなきを得ました。

解決手順

レスキューブートはさくらのVPSのマニュアルに従いました。「OS再インストール」から進むのでびっくりすると思いますが、インストーラーのディスクから起動する感じなので操作を間違えなければデータが飛ぶことはないと思います。

manual.sakura.ad.jp

ここで、上記のマニュアルと異なる画面が表示されますが、ここで上に進んで右上の「Help」を選択しましょう。そこから「Shell」を選択してシェルに突入します。

このままシェルに入らずインストーラーを進めると本当にインストールされてディスクデータが消えてしまうのでご注意を・・・。

突入後、ディスクをマウントします。 lsblk コマンドで今の容量に合うディスクを選択します。

例えば上記画像なら /dev/vda1 が今の VPS サーバーで使用しているディスクになるはずなので、 mount /dev/vda1 /mnt でマウントしましょう。マウントするのは数字のついているところです。ついていないところは物理ディスクのような扱いになっているのでマウントできないと思います。

そしたら vi /mnt/etc/group でグループファイルを編集しましょう。vi /etc/group で編集しても反映されません。ここはいつも使用している VPS とは違う空間だからです。

root:x:0:
daemon:x:1:
bin:x:2:

(省略)

floppy:x:25:aokashi
tape:x:26:
sudo:x:27:aokashi <- これ

グループの所属情報はファイルで管理されているので、 sudo と付いている箇所に自分のユーザー名を追加しましょう。

あとは保存して poweroff で電源をオフにしましょう。

そして起動すると sudo が使えると思います。

使用できなかった選択肢

  • シングルユーザーモードで起動
    • 初期状態の Ubuntu では GRUB の設定ファイルを編集しないと起動できないらしい
  • sshd_config ファイルを編集して root ユーザーのログインを一時的に許可
    • してみたけど root ユーザーでログインできなかった

教訓

  • usermod コマンドでグループにユーザーを追加するな
  • グループにユーザーを追加したいなら gpasswd コマンドを使え
  • OSインストーラーは全てを解決する(?)