さくらのVPSで usermod -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再インストール」から進むのでびっくりすると思いますが、インストーラーのディスクから起動する感じなので操作を間違えなければデータが飛ぶことはないと思います。
ここで、上記のマニュアルと異なる画面が表示されますが、ここで上に進んで右上の「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 が使えると思います。
使用できなかった選択肢
教訓
- usermod コマンドでグループにユーザーを追加するな
- グループにユーザーを追加したいなら gpasswd コマンドを使え
- OSインストーラーは全てを解決する(?)