先日、さくらVPSを利用しているクライアントさんから、サーバーのrootパスワードを忘れたので再発行してほしいとの依頼があった。
色々調べてみると、さくらサーバーの窓口に頼めば有料ではあるが再発行してもらえるとのことだが、今回は予算の兼ね合いで自分でrootパスワードの再発行(リセット)をしてみることにした。
今回はその時におこなった手順を備忘録としてまとめておく。
※rootパスワードのリセットは非常に危険な作業なので、自信のない方は有料で頼んだ方が良い。
rootパスワードリセットの手順
ざっくりとまとめると以下の手順となる。
- 管理画面ログイン
- サーバー再起動
- 諸々設定変更
- シングルユーザーモードでログイン
- パスワードリセット
- サーバー再起動
- 通常モードでログイン
まず、さくらVPSの管理画面にログインする。
管理画面から「VNCコンソール」を起動し、コンソールの画面右上にある「Ctrl + Alt + Del」をクリック。
※この瞬間から一時的にサーバーがダウンするので注意
クリックするとサーバーの再起動が始まるので、すぐにいずれかのキーを連打する。
※すぐにキーを押さないと通常モードでのログインに進んでしまうので注意
カーネル一覧が表示されるので「CentOS Linux」の最新バージョンを上下カーソルキーで選択する。
カーソルで選択したら「e」キーを押して編集モードへ移行。
※一覧にRescureと書かれている項目もあるがこちらは選択しない。
編集画面でro
と、console=ttyS0,115200n8r LANG=C
を削除し、末尾にsystemd.debug rw init=/bin/bash
を追記する。
スペルミスなどないか確認し、編集が完了したら「Ctrl + X」キーを押して再起動させる。
再起動完了後、コンソールのプロンプトに「bash-.#」と表示されたらシングルユーザーモードでのログイン成功だ。
これでようやく、passwd
コマンドを使ってrootパスワードの再発行をすることができるようになる。
再発行が完了したらexec /sbin/init
を実行して、通常モードで再起動する。
再起動完了後、rootユーザーで再発行したパスワードを使ってログインすることができるようになっている。