先日、さくら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ユーザーで再発行したパスワードを使ってログインすることができるようになっている。