サクラインターネットvps CentOS7 でシングルユーザ (2018-01-02)
rootパスワードが不明、というか分からなくなった場合の、
さくらのVPS (CentOS)シングルユーザモード の解説が CentOS 6用だったので
CentOS 7 の手順をメモしておきます。
(そのうち、さくら公式の手順が出されるかもしれませんが)
- コンソール画面から
「強制再起動」の実行直後、「コンソール⇒VPNコンソール」を急いで起動
※タイミングが超シビア、すぐに通り過ぎます
- OSの自動起動前に、GRUBの選択状態にする
私の場合はサクラVPNコンソール有効状態で「キーボード上下」で割り込めました
(ここまでで間に合わずに自動起動に入ったら、強制再起動からやり直し)
- 間に合ったら、起動するカーネルを選んで「e」でエディットモードへ
(Rescueではなくて、デフォルトで起動するカーネルで良いと思います)
- あたらしいパスワードを入力したら、再起動して完了です。
(rebootでGRUBに戻るで、今度はカーネルを普通にEnterで起動)
GRUBで起動内容を編集する方法ですが、色々Webで探したところ、内容は環境に依存するようです。
ro(リードオンリー) は rw (リードライト)に
init=/sysroot/bin/sh は、 init=/bin/sh としている解説が多いです。(それで起動できる場合は chroot は不要かも)
「console=tty~」削除のところは、さくら公式の手順(CentOS 6)を参考に。これが無いと起動後にVPNコンソールにプロンプトが表示されません。
SELinuxが有効の場合は、もう一手間要るようです。
LANGが日本語だったり、キーボードの設定があったりする場合も、一手間要るようです。
CentOS 7 では、レスキューだか、エマージェンシーだかのモードでも、
root のパスワードは要求されてしまうので、こういった方法が必要になります。
以上です。
ここからは余談。
そもそも、rootパスワードの再設定をするはめになるとは...
急にパスワード受け付けなくなって、本当に肝が冷えました。
そして復旧後に、historyみたら、確かに useradd 後に passwd コマンドを打ってますね...ユーザ名指定なし、で。
(復旧途中で薄々気が付いてたんですが、この際だから復旧方法を調べてしまおう、と)
特に大事な情報は入って無いサーバだったんですが、
以前「踏み台になって他を攻撃しているサーバ」を見た事あったので、
root 権限無しでも打てるコマンドで状況確認して(netstat など)、サーバをコンソールから強制停止して...
そして古い記憶を頼りに...そう、こんな時はシングルユーザもーどダ!と思い出したものの、
CentOS7だと、普通に root のパスワードを要求されて、かなり焦りました。
それで、紆余曲折あって、上記の手順です。
まぁ、本当に事故が起こる前の予行演習(?)ができて、良かったです。