Edited at

さくらVPS(Ubuntu16.02)で操作ミスにより管理者権限をもつユーザーが皆無になって詰みそうになった話

More than 1 year has passed since last update.


環境

・Ubuntu16.02

・さくらVPS


状況

タイトルの通り、操作ミスにより管理者権限を持つユーザが皆無になってしまいました。sudo実行ができず、しまいにはsshでリモートアクセスもできなくなってしまい、頭が真っ白の状態です。


操作ミスの内容

usermod -G sftp adminUser

のようなコマンドでuserのグループを上書きしてしまったことが原因です。

sudoグループの権限が上書き抹消されてしまい、adminUserのsudo権限が失われてしまいました。


困ったこと

シングルユーザーモードで起動すれば、root権限でターミナルを実行できるわけですが、さくらVPSでシングルユーザーモードの起動方法が分かりませんでした。まずGRUBが立ち上がらないので、にっちもさっちもいかない状態が続きました。

なお、CentOSであればさくらの公式サイトで解説があるのですが、Ubuntuはデフォルトではないので、解説なしです。メールにて問い合わせをしましたが、自己責任であり、サポートはしかねます、、という回答でした(当然の対応です(泣))


対処


対処の手順

対処の手順としては以下の流れです。

1)GRUBを起動する

2)Advanced Option for Ubuntuを編集する

3)recovery mode

4)root権限でユーザー権限を変更

5)復活

以下、詳細


1)GRUBを起動する

1-1)さくらVPSのコントロールパネルにアクセス。

1-2)強制再起動

1-3)以下2つのコンソールを両方立ち上げます。

①VNCコンソール(HTML5版)

②シリアルコンソール(β版)

1-4)VNCコンソールの方で、GUIから「再起動」。画面右上の設定からです。

1-5)再起動時にシリアルコンソールを見ていると、GRUBが立ち上がります。こちらで作業をします。(GRUBは一定時間経過すると消えてしまうので早めに下記2-3までの作業をする)

※もっと良い方法があるかもしれません。。。


2)Advanced Option for Ubuntuを編集する

2-1)GRUBを立ち上げる

2-2)「Advanced Option for Ubuntu」にカーソルを合わせる

2-3)キーボードで「e」を押す

2-4)編集画面が現れるので「ro」と書いてある部分を全て「rw」に変更する(私の場合は計6箇所)

2-5)末尾に「linux single init=/bin/sh」を追記

2-6)「Ctrl + X」を押す

▼参考URL

Ubuntu10.04でシングルユーザーモードでログインする方法


3)recovery mode

recovery modeを実行。


4)root権限でユーザ権限を実行

4-1)recovery mode実行後は、VNCコンソールの方を見る

4-2)recovery modeでrootを選択

4-3)画面下部にroot権限でコンソールが立ち上がる

4-4)usermodかgpasswdでユーザーに権限を追加。

▼例

usermod -G adm,dialout,cdrom,plugdev,lpadmin,sudo,<userName>

※2-3〜2−5の作業をしない場合、この段階でエラーが発生します。エラー内容は、「cannot lock /etc/passwd; try again later.」で/etc/passwd/を編集できない状態です。これは、コンソールをreadonlyで起動していることが原因で、2-3〜2−5の処理で書き込み権限を付与しています。

4-4)その後再起動。


5)該当ユーザでアクセスし、sudo実行できることを確かめる。復活!