目次
1.はじめに
2.用意するもの
3.ここ読めワンワン
4.おわりに
はじめに
Red Hat系のシステム管理者向け資格をこれから取得予定の貴方に本記事を捧げる。
これだけは言っておく。受験料の約6万円を棒に振らないためにも、貴方は本記事を読むべきだ。
なお、正攻法でRed Hat社のウン万円もするセミナーを受け、公式のテキストを得ている方は、回れ右しても恐らく影響は無い。
私のこの怒りが冷めやらぬうちに、Red Hat社のシステム管理者ガイドを基に、某試験の罠について共有させていただく。
用意するもの
- CentOS 7、もしくは、RHEL7/8の仮想マシン
検証OSはCentOS 7 x86_64 7.6.1810 - Red Hat系の管理者向け資格を取りたい気持ち
ここ読めワンワン
本手順を覚えていただくことで、rootパスワードの変更方法が分からず、試験開始・即帰宅する被害者を削減することが、本記事の狙いです。
なお本手順は、Red Hat社のシステム管理者のガイドほぼそのままです。
そのうち手順25.7 rd.breakを使用したrootパスワードのリセット方法
にスポットを当てて、書き下しています。
ただし、某資格の解答において不要と思われる説明は省いているので、公式の全手順が気になる方は元記事まで。
-
ログイン可能な状態の仮想マシンを用意する
-
仮想マシンを起動し、GRUB2ブート画面で
e
キーを押して編集画面に入る。
重要
システムメッセージを有効にするには、rhgb パラメータと quiet のパラメータを削除(未検証、公式手順より)。 -
x86-64 BIOSベースの場合は
linux16
行、UEFIの場合はlinuxefi
行の末尾にrd.break
パラメータを追加し、Ctrl
+x
で再起動。
-
ファイルシステムはReadOnlyな
/sysroot/
がマウントされる。rootパスワードを変更するため、Writableで再マウント。
-
ファイルシステムの
root
を変更すると、プロンプトがBourne shell (/bin/sh)に変わる(骨じゃなかったんだ...)。
-
(余談)
export LC_ALL=C
でロケールを変更したら文字化けが解消できる。メッセージが無駄に長かったのは、password1
なんて脆弱なパスワードにしていたため笑
-
CentOS/RHEL7はデフォルトEnforcingでSELinuxを利用するため、
passwd
コマンドで新しく作成された/etc/shadow
ファイルのコンテキストを再ラベルする必要がある。次回ブート時にコンテキストを再ラベルするため、.autorelabel
を作成。
-
ファイルシステムをReadOnlyで再マウント(未検証、公式手順より)。
公式で詳細な説明はなかったが、/sysroot/
を手順4でWritableに再マウントした状態を元に戻すため、雑にファイルシステム全体をマウントし直しているように見える。ファイルシステムのアクセス権的に本手順はやっておいたほうが無難だと思われる。
ファイルシステムに詳しい方、お時間あれば本手順の必要性をご教示下さい。sh-4.2# mount -o remount,ro /
-
exit
コマンドを2度実行して初期化プロセスが再開し、仮想マシンを再起動。
注記
二度目のexit
コマン実行時に再起動が始まる。
ファイル数が多いほどSELinuxコンテキストの再ラベルには時間がかかる。
再ラベルが完了すると、システムは自動的に再起動する。
+α. 下記コマンドにて、SELinuxポリシーの強制を再度有効化し、ポリシーの強制状態を確認するが吉(未検証、公式手順より)。
```
~]# setenforce 1
~]# getenforce
Enforcing
```
おわりに
公式ドキュメントとググリでの独学のみでは、Red Hat社の罠にかかることを身を持って体感しました。
また、今となってはうろ覚えだが、本手順を含む(?)公式のテキストらしきものを持っていた他の受験者は、サクサク進めているように見えたし、私のように試験開始後に即諦めていなかった記憶があります。
正直、公式ドキュメントを1から読み進めたとして、基本的にこの様な手順に巡り合わないと思います。公式(当時)では、インストールディスクによるパスワード変更を推奨してるにもかかわらず、こんな手順から試験が始まるし、そもそもサーバに入れなくなるようなアホなシステム管理者や引き継ぎをしない担当者はいないよね…いないよな?!
ただ、システム管理者としては、不慮の事故などサーバに入れなくなる時もあるだろうし、色んな方法は知っておくべきという学びは得られました。
が、絶対許さんし、今後centosしか使わんからな。
願わくば、本記事を読んだRed Hat系の管理者向け資格を取ろうと思っている方が、1人でも多く罠から救われれば幸いです。
何かお気づきの点があれば、ご指摘をお願いします。
参考資料
- Root Users - How To Reset Root User Pass
- CentOS7 RHEL7 rootパスワード変更(rd.break利用)
- マイナビニュース - 5分未満でrootパスリセット
- Stack Overflow - Linux difference between root shell “#” and “sh-4.2 #”
2024/1/9追記
- 当時怒りのままに書き殴った恥ずかしい文面を一部削除/修正
- 目次のリンクを修正