はじめに
もうカレント(現役)ではありませんが、私は、以下の試験をどちらも満点で取得しました。(旧RHCEは古すぎてスコアの記録が無かったので、通知メールで補足)
Red Hatの資格には、失効はありませんが、取得から3年間はカレントと呼ばれ現役の資格者であるとされます。まあ、実質的には、3年間有効ということですね。
- 2005年にRHCE:Red Hat Certified Engineer(今のRHCEとは別物です。RHEL4で受験)
- 2022年にRHCSA:Red Hat Certified System Administrator(RHEL8で受験)
My Red Hat/取得済みの認定資格(抜粋)
RHCEの合格通知メール(スコア部分)
この経験を踏まえ、これからRed Hatの試験を受ける方に向けて、オススメのテクニックを紹介させていただこうと思います。
冒頭に書いたように、すでにカレントではない知識を元に執筆しています。私がRHCSAを受験したときはRHEL8でしたので、特に試験で使われるサーバー環境が今では変わってしまい、有効ではない情報もあるかもしれない点に注意してください。
Red Hatの資格試験は、実技試験です。実技試験は、知識だけでなく、制限時間内に正しい状態を作り切る作業練度が問われます。
試験中はドキュメントやmanを参照できますが、問題数と解答作業量を考えると、ほとんどの人がドキュメントを見る暇はないでしょう。(全問解くのであれば)もし、ドキュメントを見る暇を捻出できるスキルレベル・作業練度であれば、見ずとも正しい状態を作り切れるレベルのエンジニアである可能性が高いので逆にドキュメントが不要です。
この記事では、試験向けの作業時間を短縮するためのテクニックを紹介し、ドキュメント活用時間を少しでも捻出し正答率を上げることを目的としています。
一般的な試験対策については、こちらのRed Hatの中の人の記事を参考にしてください。
この記事の要約
- Red Hatの資格試験は、知識量だけでなく、制限時間内に要件を満たす実行力が問われます
- 採点は機械的に行われるため、手順の美しさよりも要件を満たした状態を作ることが最優先です
- 思い込みで自ら縛りプレイをしないようにしましょう。要件の達成条件を邪魔しなければ、rootユーザーでの作業も必要なパッケージをバンバン追加することも問題ありません
- 試験開始直後に環境を整えておくと、以降のミスと時間ロスを大きく減らせます(パッケージ追加、エディタ設定、alias登録など)
- 公式ドキュメントの参照はコストが重いため、manを活用して手短に情報を引く運用が効果的です
- 入力値は可能な範囲でコピペし、補完やヒストリ検索も駆使してスペルミスを防ぎましょう
- トラブル時は仮想マシンの再構築を最終手段とし、
rpm・dnf・restoreconによる個別リカバリ手段を把握しておきましょう - リモート試験の場合、中間で環境チェックが入るため、その時間ロスや集中力への影響を考慮しておきましょう
- この記事はRHEL8受験時の知識を基にしていますが、現在の試験環境はRHEL10ベースです。特にrootユーザーの利用制限など、バージョン差分による初期環境の違いを把握しておきましょう
試験の特徴把握
時短の前に、まず試験の性質を理解しておくと判断が速くなります。
- 実技試験です(問題には、要件が記載されており、トラブルシュートや構築などを実施します)
- 参照可能な情報(ドキュメントやman)が用意されています
- 再起動後の状態で採点されます(永続化されているかが重要)
- 問題数とその解答作業量に対して時間的余裕は多くありません
- 設定ミスなどでどうにもならない場合は、仮想マシンの再構築が可能です(ただし時間ロスが大きいので最後の手段)
- リモート受験の場合は、中間あたりで環境チェックが入ります(時間ロスと集中力への影響)
- 採点は問題の要件に対して機械的に行われます。逆に言えば、要件以外の箇所はチェック対象ではありません(重要)
試験前、試験時間(3~4時間)と聞くと、「長っ!!」と思うかもしれません。しかし、実際に問題を解いてみると、時間が足りないと感じる人が多いでしょう。また、他の問題を高速で解いていって調べる時間が余っていれば、正解にたどり着ける試験だということにも気づくでしょう。
そして、仕事でサーバー構築等をされている方は、普段の作業と違い、あくまでも試験だということを意識しましょう。正解の状態を作るためなら、そのプロセスは問われませんし、試験環境に色んなパッケージを入れて環境を汚すことも自由です。
要するに「試験のシステムが止めないことは、やってよい」ということです。禁止されているならシステム側で弾かれるはずです。そういう性質の試験と理解しておきましょう。
よって、この記事では、sudoなどの利用は想定せず、rootユーザーでの作業前提で話を進めています。また、想定シェルはbashを前提としています。ここでは紹介しませんが、zshにするなどシェルごと切り替えてしまうのも手法としてはあるかと思います。
RHEL8とRHEL10の差分で注意したいポイント
RHCSAですが、執筆時現在は、RHEL10ベースとなっているようです。
私がRHCSAを受験したのはRHEL8ベースでしたが、現在はRHEL9~10も定常的に使っておりますので、普段の作業で差分を感じる点があります。もしかすると、試験環境で変わっているかもしれないポイントを紹介しておきます。
rootユーザーのSSHログイン制限
RHEL10では、インストーラー段階でrootユーザーの無効か有効かを選択する形になっています。そうなると現在の試験環境では、初期状態でrootユーザー作業(SSHログイン含む)がやりづらいかもしれません。そのときは、ためらわず制限を解除してしまいましょう。
無効化を解除するのはさほど難しくありません。rootユーザーにパスワードを設定し、/etc/ssh/sshd_configにPermitRootLogin yesを設定して、sshdサービスを再起動すればOKです。
もしかすると試験によっては、制限解除の方が手間かもしれません。その場合は、sudo su -でrootユーザーになって作業すればいいでしょう。
一応、無効化の解除手順は以下の通りです。
echo 'root:{任意のパスワード}' | chpasswd
vi /etc/ssh/sshd_config
systemctl restart sshd.service
PermitRootLogin yes
パスワード変更は、passwdコマンドが一般的ですが、パスワード文字列を視認しながら設定できるchpasswdコマンドも覚えておくと便利です。入力ミスでパスワードがわからなくなってしまうリスクがなくなります。ただし、ヒストリにパスワードが残るリスクはあるので、試験以外では、~/.bash_historyから削除するもしくは、history -cやhistory -d <ヒストリ番号>で保存前にクリアしてしまうなどの対策を知っておきましょう。
採点は再起動後の状態で行われます。問題の要件にSSHのrootログイン制限が含まれていなければ、解除したままで構いません。要件として制限が求められている場合は、全作業の最後に設定を戻すのを忘れないようにしましょう。
「最後に戻す」系の設定は、他の問題を解いている間に忘れがちです。作業終盤でSSHの設定を見直す流れを意識的に組み込んでおくと安全です。
時短向けの環境準備
まずは、作業しやすい環境を整えましょう。ただし、凝りすぎには注意!!逆に時間の無駄になるので気をつけましょう。
1. パッケージ追加
自身が普段から使っているツールがどのパッケージに含まれているか把握し、試験環境にインストールされていなければすぐに追加してしまいましょう。
- コマンドの所属パッケージの調べ方
rpm -qf $(which {任意のコマンド})
※別に、dnf provides {任意のコマンド}でもいいですが、オフラインでも可能なrpm -qfも知っておくと良いでしょう。
- パッケージを追加する
例: vimとcloud-utils-growpartインストールする場合
dnf install -y vim-enhanced cloud-utils-growpart
2. エディタ設定のカスタマイズ
これは、試験に関係なく初学者にもよく勧めるのですが、viではなくvimを使いましょう。alias登録してしまえば良いと思います。
/root/.bashrcを編集したときは、sourceコマンドの実行を忘れないようにしましょう
alias vi='vim'
vimのSyntax Highlightは、強力です。初学者であれば、あなたよりvimの方が遥かに正しく文法を認識してくれますし、熟練の方でもダブルチェックになります。色分けされることで、どこがセクションの区切りで、どこがコメントで、どこが値なのかが一目でわかります。
加えて、vimのキーワード補完(Ctrl + nやCtrl + p)のキー操作だけは覚えておくと良いでしょう。パラメータ入力途中で、キーを入力すると設定ファイル中に既に書かれている単語に補完してくれる機能なので、スペルミスを減らすのに役立ちます。マニアックなパラメータを使う問題はほぼ無いので、コンフィグファイル内のキーワードで補完出来るだけで、十分有効です。
もし、さらになにかということであれば、Vimのドットコマンドが使えるとさらに効率が上がります。
OS系の試験であれば、ここまでで十分ですが、AnsibleなどでYAMLを扱ったり、Pythonを扱ったりする場合は、インデント事故を防止するためにも、最低限次のような設定も入れておくと良いでしょう。タブ長などは自身で使いやすいように調整してください。
set ai
set et
set ts=2
set sw=2
-
ai: 改行時のインデント維持 -
et: タブをスペースに変換 -
ts=2: タブ表示幅を2に設定 -
sw=2: 自動インデント幅を2に設定
3. 反復操作をalias登録
使用頻度の高いコマンド操作は、alias登録しておくと効率が上がります。
例えば、Ansible系の試験なら文法確認、他には設定ファイルの確認(コメント除外)などを短く叩けるようにしておくと便利です。
alias check='ansible-playbook --syntax-check'
alias checkconf="sed -e '/^#/d' -e '/^$/d'"
すると、次のように短く確認できます。
check testplay.yml
checkconf /etc/rsyslog.conf
試験が初見だと、何をalias登録すればいいのか迷うかもしれないので、作業中に「この操作、さっきもやったな」と感じたら、alias登録してしまうのが良いでしょう。たぶん、またその操作をやります。
作業テクニック
こちらでは、問題を解いていく中で、時短に役立ちそうなテクニックを紹介していきたいと思います。
1. 基礎的なテクニック
- タブ補完
CLIでの入力中にTABキーを押すことでコマンドやファイル名を補完してくれます。もし、bash-completionパッケージがなければインストールしましょう。全てではありませんが、コマンドオプションなども補完してくれるようになります - ヒストリ機能
history | grep {キーワード}か、bashのヒストリ検索であるCtrl + rも使えると良いかと思います -
cd -で一つ前のカレントディレクトリに戻れます
これは普通に知っている人も多いと思いますが、意外と知らない人もいるので記載しておきます - シンボリック活用
何度もcdで移動する深いパスがあれば、シンボリックリンクを張ってしまいましょう
cd /root
ln -s /var/www/html .
ls -l
lrwxrwxrwx 1 root root 13 3月 12 16:59 html -> /var/www/html
cd html
- chmodなどch~系のコマンドの場合
-Rオプション(そのディレクトリ配下に再帰的に適用)や--referenceオプション(指定したファイル等に合わせる)を駆使しましょう
chmod -R 755 /var/www/html
chmod --reference=/etc/passwd /var/www/html/index.html
この--referenceオプションは、SELinuxのコンテキストを変更するchconにもあるので、重宝します。
- 以下の設定を
/root/.bashrcに追加するとcdコマンド時のtypoを多少なりとも読み替えて直してくれます
shopt -s cdspell
2. 入力値は可能な範囲でコピペ
普段、ミスを防ぐために判別しやすいフォントを使っている人も多いと思いますが、Red Hatの試験環境では、フォントや表示の都合で読み取りづらいことが結構あります。(多分、試験を英語で受けても改善しきれません)問題文に書かれたホスト名やユーザー名、パスなどを手入力すると、どこか一箇所ぐらいはスペルミスする可能性が高いです。
なので、諦めてコピペしましょう。また、リモート受験の場合は、試験サーバーへリモート接続するせいか、ラグでコピペ操作がやりづらいかもしれませんので、マウス等のデバイスは使い慣れたものを用意しておくと良いでしょう。
3. GUI操作の基本を押さえる
インフラ構築などだけでRHELマシンを使われている方は、CLI一辺倒かもしれません。ですが、GUI周辺の最低限の操作(ターミナルでのコピペ操作のショートカットなど)には、慣れておきましょう。TeratermなどWindows系のターミナルだけ使っている場合、LinuxのGUIでの操作に慣れていないと、いざというときに戸惑うことがあります。
また一部の設定は、GUIの方が簡単で圧倒的に早く設定出来るものもあるので(OpenShiftとか特に)、変にCLIに固執しないように気をつけましょう。
4. manの基本的な使い方
冒頭から触れているようにドキュメントは有用ですが、情報量も多く、試験中は読むコストが重いです。
その中で、manはそこまでコストがかからず必要な情報を拾いやすいです。なので、manの基本的な使い方は押さえておきましょう。
特に、-kオプションを使うと、キーワード検索ができるので、コマンド名が曖昧なときや関連機能を探すときに、短時間で立て直しやすくなります。
- キーワード検索
man -k {任意のkeyword}
- コマンドのマニュアル
man {任意のコマンド}
- コマンドの特定のセクションのマニュアル
man 5 {任意の設定ファイル名}
- セクションの優先順位(左から順に優先される)
grep ^SECTION /etc/man_db.conf
SECTION 1 1p 8 2 3 3p 3pm 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x
manのセクションは、一般的には、「1」がユーザーコマンド、「5」が設定ファイルなどのドキュメント、「8」が管理者コマンドなどに割り当てられています。なので、例えば、man 5 sshd_configとすれば、sshd_configの設定ファイルの説明が確認出来ます。ただし、必ずあるわけではないため注意してください。
5. ファイルのリカバリ
通常、試験環境(サーバー)の再構築手段が用意されています。しかし、再構築にはかなりの時間がかかるため、再構築せずにどこまでリカバリできるかを方法とともに知っておくと良いでしょう。
ファイル変更前のファイルがバックアップ出来ていればこの手順は不要です。バックアップは、/root配下など全く別ディレクトリに取りましょう。同じディレクトリに取ると、重複includeされてしまう可能性があるので注意してください。includeが拡張子判別とは限りません。
- ファイルのオーナー、パーミッションのリカバリ
rpm --restore $(rpm -qf {ファイルパス})
- SELinuxのコンテキストのリカバリ
restorecon -v {ファイルパス}
正確には、restoreconは、ファイルのコンテキストを、ポリシーに基づいて正しいとされる状態に復元するコマンドであり、ファイルのコンテキストをインストールされた状態に復元するコマンドではありませんので注意してください。
- ファイルの内容のリカバリ(例:
/etc/postfix/main.cf)
再インストールをして復活させる場合
cd /etc/postfix
mv main.cf main.cf.bak
dnf reinstall -y postfix
rpmをダウンロードして取り出す場合(要dnf downloadプラグイン)
mkdir /var/tmp/foo
cd /var/tmp/foo
dnf download postfix
rpm2cpio postfix-*.rpm | cpio -idm
cat etc/postfix/main.cf > /etc/postfix/main.cf
rm -rf /var/tmp/foo
dnfのdownloadプラグインは、最小構成のRHEL環境でもインストールされるので通常は問題ないと思いますが、もし入っていなければ、dnf install -y python3-dnf-plugins-coreでインストールできます。
まとめ:試験当日チェックリスト
ここまで紹介してきたテクニックを、試験当日の行動レベルで再確認しておきましょう。
- 試験開始直後に環境を整えたか(パッケージ追加・エディタ設定・alias登録)
- 採点対象は要件の達成のみと理解できているか(手順・root利用・環境汚染は問われない)
- 入力値はコピペ・補完・ヒストリ検索で対応できているか
- 公式ドキュメントへの依存を避け、manを短時間で引ける状態にあるか(可能であれば引かなくて済むか)
- トラブル時は再構築の前に個別リカバリを試せるか(
rpm・dnf・restorecon) - リモート受験の場合、中間チェックによる中断時間を見込んで時間配分できているか
- 試験環境のRHELバージョンに合わせて、rootログイン制限など環境差分による初期制約を把握・解除できているか
これらのテクニックは、試験に限らず、日常の業務でも役立つものもありますので参考にしていただければと思います。
ただし、時間短縮のため、いささか無茶なテクニックも含まれているので、普段の業務で使う際は、状況に応じて適切に取捨選択してください。
We Are Hiring!

