【初心者向け】RHEL Serverの基本

はい、承知いたしました。【初心者向け】RHEL Serverの基本 について、約5000語の詳細な記事を作成します。


【初心者向け】RHEL Serverの基本:ゼロから始めるガイド

はじめに:RHEL Serverの世界へようこそ

ITインフラストラクチャの中心には、安定性、信頼性、そしてセキュリティを兼ね備えたオペレーティングシステム(OS)が存在します。その中でも、特にエンタープライズ分野で絶大な信頼を得ているのが、Red Hat Enterprise Linux、通称「RHEL(レル)」です。

もしあなたが「これからサーバーOSを学びたい」「Linuxに触れてみたいけれど、何から始めれば良いかわからない」と考えているなら、RHELは非常に優れた選択肢です。なぜなら、RHELで培った知識やスキルは、他の多くのLinuxディストリビューションや、クラウド環境でのサーバー管理にも広く応用できるからです。

このガイドは、RHEL Serverの基本をゼロから学びたい、全くの初心者の方を対象としています。RHELとは何か?なぜ企業で広く使われているのか?そして、最も重要な「どうやって使うのか?」といった、基本的な概念から実践的なコマンド操作までを、分かりやすく、かつ詳細に解説していきます。

この記事を読み進めることで、あなたはRHEL Serverの基本的な操作ができるようになり、さらに深く学ぶための土台を築くことができるでしょう。さあ、RHEL Serverの世界への第一歩を踏み出しましょう。

第1章:Red Hat Enterprise Linux(RHEL)とは何か?

RHELを学ぶ前に、まずRHELそのものについて理解を深めましょう。

1.1 Linuxとは?

RHELはLinuxという大きなカテゴリに属します。Linuxは、1991年にフィンランドのLinus Torvalds氏によって開発されたOSのカーネル(核となる部分)です。このカーネルを中心に、様々なソフトウェア(シェル、コマンド、アプリケーションなど)を組み合わせたものが「Linuxディストリビューション」と呼ばれます。

WindowsやmacOSが、特定の企業(MicrosoftやApple)によって開発・提供されるのに対し、Linuxは基本的にオープンソースソフトウェアとして開発が進められています。これは、誰でも自由にソースコードを閲覧、改変、再配布できることを意味します。この特性から、Linuxは世界中の多くの開発者や企業によって改良され、進化し続けています。

1.2 Red Hatとは?

Red Hatは、Linuxおよびオープンソース技術をベースにしたソフトウェア製品、サービス、サポートを提供する世界有数の企業です。Red Hatはオープンソースコミュニティに積極的に貢献しており、多くの主要なオープンソースプロジェクト(Linuxカーネル、Kubernetes、Ansibleなど)に深く関わっています。

Red Hatのビジネスモデルは、オープンソースソフトウェアそのものを販売するのではなく、そのソフトウェアをエンタープライズ向けにパッケージングし、長期的なサポート、安定性、セキュリティ、認証されたハードウェアとの互換性などを付加価値として提供することにあります。

1.3 Red Hat Enterprise Linux (RHEL) とは?

RHELは、Red Hatが開発・提供するエンタープライズ(企業)向けのLinuxディストリビューションです。その名の通り、企業のミッションクリティカルなシステム(ビジネスの継続にとって非常に重要なシステム)での利用を強く意識して設計されています。

RHELの主な特徴は以下の通りです。

  • 安定性: 長期間にわたるテストと検証を経てリリースされ、一度リリースされたバージョンは、通常10年間以上の長期にわたってサポートされます。これにより、企業は安心してシステムを運用できます。
  • 信頼性: エンタープライズグレードのハードウェアやソフトウェアとの互換性が厳しく検証されています。
  • セキュリティ: 最新のセキュリティ機能が組み込まれており、迅速なセキュリティアップデートが提供されます。SELinux(Security-Enhanced Linux)のような高度なセキュリティフレームワークが標準で有効になっています。
  • サポート: Red Hatから公式のテクニカルサポートを受けることができます。これにより、問題発生時に専門家の支援を得られます。
  • 標準化: 企業環境での標準OSとして広く採用されており、関連する技術情報やツールが豊富に存在します。
  • サブスクリプションモデル: RHELは購入するのではなく、サブスクリプション(契約)を締結して利用します。このサブスクリプションには、ソフトウェアの利用権だけでなく、アップデートの提供やテクニカルサポートが含まれます。

1.4 RHELと他のLinuxディストリビューションとの違い

LinuxにはRHEL以外にも、Ubuntu、Fedora、Debian、CentOSなど、数多くのディストリビューションが存在します。これらはそれぞれ目的やターゲットユーザーが異なります。

  • Fedora: Red Hatがコミュニティと協力して開発しているディストリビューションで、RHELの「実験場」のような役割を果たします。最新の技術や機能を積極的に取り込みますが、リリースのサイクルが短く、サポート期間も比較的短い傾向にあります。個人ユーザーや開発者向けです。
  • CentOS: かつて存在した、RHELのソースコードをベースに、Red Hatの商標や有償パッケージを取り除いて再構築された無償のディストリビューションでした。RHELと高い互換性がありましたが、開発体制が変更され、現在はRHELの将来バージョンを先行して開発する「CentOS Stream」に置き換わっています。
  • Ubuntu: Canonical社が開発する人気の高いディストリビューションです。デスクトップ用途でも広く使われますが、サーバー用途でも高いシェアを持っています。APTという異なるパッケージ管理システムを使用します。

RHELはこれらの中でも特に「エンタープライズ環境での安定稼働」に特化しています。最新機能よりも、徹底的なテストと長期サポートが重視される点が大きな違いです。

1.5 RHELのバージョン

RHELは定期的に新しいメジャーバージョン(例: RHEL 8, RHEL 9)がリリースされ、さらにその中でマイナーバージョン(例: RHEL 9.0, 9.1, 9.2…)やパッチレベルのアップデートが行われます。メジャーバージョンがリリースされると、通常10年以上のサポートライフサイクルが設定されます。

本記事では、執筆時点での最新のメジャーバージョンであるRHEL 9系を中心に解説を進めますが、RHEL 8系にも共通する基本概念やコマンド操作がほとんどです。

第2章:なぜ初心者がRHELを学ぶのか?

初心者にとって、RHELは少しハードルが高いと感じるかもしれません。無償で始められるUbuntuなどと比較すると、個人利用でもサブスクリプションの概念があるためです(ただし、開発者向け無償サブスクリプションがあります。後述します)。それでも、RHELを学ぶことには大きなメリットがあります。

2.1 エンタープライズ標準

多くの大企業や公的機関の基幹システムでRHELが採用されています。RHELのスキルは、そのままエンタープライズITの現場で通用するスキルとなります。就職や転職を考える際に、RHELの知識は強力なアピールポイントになり得ます。

2.2 高い学習効果

RHELはエンタープライズ向けであるため、基本的なシステム管理のベストプラクティスが詰まっています。ファイルシステム構造、権限管理、ネットワーク設定、サービス管理など、RHELで学ぶ基本的な概念は、他のLinuxディストリビューションでも共通することが多く、汎用性の高い知識を習得できます。

2.3 安定性と信頼性

学習環境としても、RHELの安定性はメリットになります。予期せぬ問題に悩まされることが少なく、学習に集中できます。

2.4 豊富なドキュメントとコミュニティ

Red Hatは公式ドキュメントを非常に充実させています。また、RHELユーザーやシステム管理者のコミュニティも活発で、疑問点や問題点を解決するための情報を見つけやすいです。

2.5 開発者向け無償サブスクリプション

個人学習や開発目的であれば、Red Hat Developer Programを通じてRHELの無償サブスクリプションを利用できます。これにより、費用をかけずに最新のRHEL環境を構築し、学習や開発を行うことが可能です。

これらの理由から、将来的にITエンジニア、特にサーバー管理者やクラウドエンジニアを目指す初心者にとって、RHELは非常に価値のある学習対象となります。

第3章:RHELの入手とインストール

実際にRHELサーバーを触ってみるための最初のステップは、RHELを入手してインストールすることです。

3.1 RHEL Developer Programへの登録

個人学習や開発目的であれば、Red Hat Developer Programに登録することで、RHELの無償サブスクリプション(最大16物理/仮想ノード)を利用できます。

  1. Red Hat Developer Programのウェブサイトにアクセスします。
    https://developers.redhat.com/
  2. 無料アカウントを作成します。
  3. アカウント作成後、RHELのダウンロードページにアクセスできるようになります。

3.2 RHELのダウンロード

Developer Programに登録すると、RHELのインストールメディア(ISOイメージファイル)をダウンロードできます。通常は、サーバーインストール用のISOイメージを選択します。

3.3 インストール方法の選択

RHELをインストールするにはいくつかの方法があります。

  1. 物理マシン: 実際のサーバーハードウェアやデスクトップPCにインストールします。
  2. 仮想マシン: VirtualBox、VMware、KVMなどの仮想化ソフトウェア上にインストールします。初心者には、PC一台で手軽に環境構築できる仮想マシンがおすすめです。
  3. クラウド: AWS、Azure、Google Cloudなどの主要なクラウドプラットフォーム上でもRHELのインスタンスを起動できます。

初心者の方は、まずはVirtualBoxなどの無償仮想化ソフトウェアを使って、ご自身のPC内にRHEL仮想マシンを作成するのが最も手軽です。

3.4 仮想マシンでのインストール(概要)

ここでは、VirtualBoxを使ったインストールを想定した一般的な手順を概説します。具体的な手順はVirtualBoxのバージョンやホストOSによって異なる場合があるため、詳細はVirtualBoxのドキュメントや関連情報をご確認ください。

  1. VirtualBoxのインストール: VirtualBox公式サイトからダウンロードして、ご自身のOSにインストールします。
  2. 新しい仮想マシンの作成: VirtualBoxマネージャーを開き、「新規」ボタンをクリックします。
    • 名前: 任意の名前(例: RHEL9-Server)を入力します。
    • タイプ: Linux
    • バージョン: Red Hat (64-bit) または Red Hat (64-bit) を含む適切なバージョンを選択します。
    • メモリサイズ: サーバー用途であれば、最低でも2GB、推奨は4GB以上です。
    • ハードディスク: 「仮想ハードディスクを作成する」を選択し、推奨サイズ(通常20GB以上)で作成します。
  3. ストレージの設定: 作成した仮想マシンの設定を開き、「ストレージ」セクションを選択します。「コントローラー: IDE」の下にある空のCD/DVDアイコンを選択し、右側の光学ドライブアイコンをクリックして「仮想光学ディスクファイルを選択」からダウンロードしたRHELのISOイメージファイルを選択します。
  4. 仮想マシンの起動: 仮想マシンを選択して「起動」ボタンをクリックします。
  5. インストーラーの開始: 仮想マシンが起動すると、RHELのインストーラーメニューが表示されます。「Install Red Hat Enterprise Linux」を選択してEnterキーを押します。
  6. Anocondaインストーラー: グラフィカルなAnocondaインストーラーが起動します。以下の項目を中心に設定します。
    • 言語: 使用する言語を選択します(例: 日本語)。
    • インストール先: インストールするディスクを選択します。特別な理由がなければ「自動構成」で問題ありません。
    • ネットワークとホスト名: ネットワークを有効化し、ホスト名を設定します。DHCPでIPアドレスを取得できる環境であれば、ほとんどの場合自動で設定されます。
    • rootパスワード: rootユーザーのパスワードを設定します。これはシステム管理者の最も強力なアカウントなので、複雑で安全なパスワードを設定してください。
    • ユーザーの作成: 通常の操作に使用する一般ユーザーアカウントを作成します。パスワードを設定し、「このユーザーを管理者にする(sudo)」にチェックを入れることを推奨します。これにより、作成したユーザーで管理者権限が必要なコマンドをsudoコマンドを使って実行できるようになります。
    • ソフトウェアの選択: 重要な設定です。今回は基本的なサーバー環境を構築するため、「ベース環境」として「Server」を選択します。右側の「選択した環境用のアドオン」で、必要に応じて追加のソフトウェア(例: Development Tools, System Administration Tools)を選択できますが、最初は何も選択せず「Server」のみで十分です。
    • Red Hat Subscriptions: インストール後にシステムを登録するための設定です。インストール中に登録することもできますが、インストール完了後に手動で行うことも可能です。
  7. インストールの開始: 設定が完了したら、「インストールの開始」をクリックします。
  8. インストールの完了と再起動: インストールが完了するまで待ちます。完了したら、システムを再起動するよう促されます。ISOイメージを仮想ドライブから取り出して(VirtualBoxの設定で変更)、再起動します。
  9. 初期設定(インストール後): 再起動後、初回起動時のセットアップウィザードが表示される場合があります。ライセンスの同意やSubscription Managerへの登録などを求められるので、指示に従って完了させます。

これで、RHEL Serverの基本的なインストールが完了しました。

第4章:RHELサーバーへのアクセス

インストールしたRHEL Serverにアクセスして操作を開始しましょう。

4.1 ローカルコンソール

仮想マシンの画面や、物理サーバーに直接キーボードとディスプレイを接続した場合、ログインプロンプトが表示されます。これがローカルコンソールです。インストール時に作成したユーザー名とパスワードを入力してログインできます。

“`bash
Red Hat Enterprise Linux 9.x
Kernel 5.xx.x on x86_64

login: your_username
Password:
Last login: Mon Nov 1 10:00:00 2023 on ttyS0
[your_username@hostname ~]$
“`

[your_username@hostname ~]$ のような表示は「プロンプト」と呼ばれ、コマンドを入力できる状態であることを示しています。

4.2 SSH (Secure Shell)

サーバー管理の現場では、通常、物理的にサーバーの前に座って操作するのではなく、ネットワーク経由でリモートから接続して操作します。このとき最も一般的に使用される安全な方法が SSH です。

SSHは、暗号化された通信路を通じて、リモートのコンピューターに接続し、コマンドを実行したり、ファイルを転送したりするためのプロトコルです。RHEL ServerにはSSHサーバー(sshd)が標準でインストールされており、通常は起動しています。

SSHクライアントからの接続

あなたのローカルPC(Windows, macOS, Linux)からRHELサーバーにSSHで接続するには、SSHクライアントソフトウェアが必要です。

  • Windows: 最新のWindows 10/11にはOpenSSHクライアントが標準搭載されています。コマンドプロンプトやPowerShellからsshコマンドを使用できます。PuTTYなどのサードパーティ製クライアントもよく使われます。
  • macOS/Linux: ターミナルを開き、標準搭載のOpenSSHクライアントを使用します。

接続コマンドの例:

ターミナルやコマンドプロンプトを開き、以下の形式でコマンドを入力します。

bash
ssh username@server_ip_address

  • username: RHELサーバーにログインするユーザー名(インストール時に作成したユーザーなど)。
  • server_ip_address: RHELサーバーのIPアドレス(例: 192.168.1.100)。仮想マシンの場合は、VirtualBoxのネットワーク設定によりますが、ホストオンリーアダプターやブリッジアダプターを使用している場合にホストOSからアクセスできるIPアドレスが割り当てられます。

初めて接続する場合、サーバーの公開鍵に関する警告が表示されることがあります。これは正規のサーバーであることを確認するためのもので、問題なければyesと入力してEnterを押します。

次に、パスワードの入力を求められます。RHELサーバーの該当ユーザーのパスワードを入力してください。入力中は画面に文字が表示されませんが、これはセキュリティ上の仕様です。

パスワードが正しければ、無事RHELサーバーにログインでき、プロンプトが表示されます。これ以降の操作は、ローカルコンソールでログインした場合と同じように、コマンドラインで行います。

注意: SSHはデフォルトでTCP 22番ポートを使用します。ファイアウォールが有効になっている場合、22番ポートが開放されている必要があります。RHELのデフォルトファイアウォール(firewalld)では、sshサービスは通常許可されています。

第5章:RHELサーバーの基本操作:コマンドラインを使おう!

RHEL Serverの操作は、主にCUI (Character User Interface)、つまりコマンドラインで行います。最初は難しく感じるかもしれませんが、慣れれば非常に強力で効率的な操作方法です。

5.1 シェルとは?

ログインして最初に表示されるプロンプトは、あなたが今「シェル」というプログラムと対話していることを示しています。シェルは、あなたが入力したコマンドを解釈し、OSのカーネルに伝えて実行させる役割を担っています。RHELのデフォルトのシェルは Bash (Bourne-Again SHell) です。

プロンプトの一般的な形式は以下のようになっています。

[ユーザー名@ホスト名 現在のディレクトリ]$

  • ~ は、ログインユーザーのホームディレクトリを示します。

5.2 コマンドの基本構造

Linuxのコマンドは、多くの場合以下の構造をとります。

bash
command [オプション] [引数]

  • command: 実行したい命令の名前(例: ls, cd, cp
  • [オプション]: コマンドの動作を細かく制御するための指定。-の後に1文字、または--の後に単語で指定することが多い(例: -l, -a, --help, --verbose)。オプションは複数指定できます。
  • [引数]: コマンドの対象となるファイルやディレクトリの名前、文字列など(例: /etc/hosts, mydir, file.txt)。引数も複数指定できます。

例:
* ls: 現在のディレクトリの内容を表示する。
* ls -l: 現在のディレクトリの内容を詳細なリスト形式で表示する。
* ls -l /home: /homeディレクトリの内容を詳細リスト形式で表示する。
* cp /etc/hosts /tmp/hosts.backup: /etc/hostsファイルを/tmpディレクトリにhosts.backupという名前でコピーする。

5.3 ヘルプの参照 (man, --help)

新しいコマンドの使い方を知りたいときは、以下の方法でヘルプを参照できます。

  • man command_name: man (manual) コマンドは、コマンドの詳細なマニュアルページを表示します。これは最も公式で詳しい情報源ですが、情報量が多いため初心者には少し読みにくいかもしれません。
    • マニュアルページが表示されたら、上下キーでスクロールし、qキーで終了します。
    • /を入力すると検索ができます。nで次の候補、Nで前の候補に移動します。
  • command_name --help: 多くのコマンドは--helpオプションをサポートしており、簡単な使い方やオプションの一覧を表示します。これはmanよりも簡潔で、初心者にとって役立ちます。

例:
bash
man ls
ls --help

5.4 ファイルとディレクトリの操作

Linuxでは、すべてのものがファイルとして扱われます(ファイル、ディレクトリ、デバイスなども含む)。ファイルとディレクトリ(フォルダ)の操作は基本中の基本です。

  • pwd: (print working directory) 現在自分が作業しているディレクトリのフルパスを表示します。
    bash
    [user@server ~]$ pwd
    /home/user
  • ls: (list) 現在のディレクトリにあるファイルやディレクトリの一覧を表示します。
    bash
    [user@server ~]$ ls
    Desktop Documents Downloads Music Pictures Public Templates Videos

    • -l オプション: 詳細な情報を表示します(パーミッション、所有者、サイズ、更新日時など)。
    • -a オプション: .で始まる隠しファイルや隠しディレクトリも表示します。
    • -lh オプション: -lに加えて、ファイルサイズを人間が読みやすい単位(KB, MB, GB)で表示します。
  • cd: (change directory) ディレクトリを移動します。
    bash
    [user@server ~]$ cd Documents/ # Documentsディレクトリへ移動
    [user@server Documents]$ pwd
    /home/user/Documents
    [user@server Documents]$ cd .. # 1つ上のディレクトリへ移動 (親ディレクトリ)
    [user@server ~]$ cd # 引数なしで実行するとホームディレクトリに戻る
    [user@server ~]$ cd /etc/sysconfig/network-scripts/ # 絶対パスで指定
    [user@server network-scripts]$ pwd
    /etc/sysconfig/network-scripts

    • .: 現在のディレクトリ
    • ..: 1つ上のディレクトリ(親ディレクトリ)
    • ~: ログインユーザーのホームディレクトリ
    • /: ファイルシステムのルートディレクトリ
  • mkdir: (make directory) 新しいディレクトリを作成します。
    bash
    [user@server ~]$ mkdir myproject
    [user@server ~]$ ls
    Desktop Documents Downloads Music Pictures Public Templates Videos myproject
  • rmdir: (remove directory) 空のディレクトリを削除します。
    bash
    [user@server ~]$ rmdir myproject # ディレクトリが空の場合のみ削除できる
    [user@server ~]$ rmdir non_empty_dir # エラーになる
  • rm: (remove) ファイルやディレクトリを削除します。注意: rmコマンドで削除したファイルはゴミ箱に入らず、すぐに復元が難しくなります。実行には十分注意してください!
    bash
    [user@server ~]$ touch myfile.txt # ファイルを作成 (後述)
    [user@server ~]$ ls
    myfile.txt
    [user@server ~]$ rm myfile.txt # ファイルを削除
    [user@server ~]$ ls
    [user@server ~]$ rm -r myproject # ディレクトリを内容ごと削除
    [user@server ~]$ rm -rf myproject # 確認なしでディレクトリを内容ごと強制削除 (最も危険なコマンドの一つ!)

    • -r: (recursive) ディレクトリとその中のファイル・サブディレクトリを再帰的に削除します。
    • -f: (force) 確認メッセージを表示せずに削除します。
  • cp: (copy) ファイルやディレクトリをコピーします。
    bash
    [user@server ~]$ cp myfile.txt myfile_copy.txt # ファイルのコピー
    [user@server ~]$ cp myfile.txt ~/Documents/ # 別のディレクトリにコピー
    [user@server ~]$ cp -r myproject/ new_project/ # ディレクトリを内容ごとコピー (-rが必要)
  • mv: (move) ファイルやディレクトリを移動または名前を変更します。
    bash
    [user@server ~]$ mv myfile.txt /tmp/ # ファイルを/tmpディレクトリに移動
    [user@server ~]$ mv myfile.txt myrenamedfile.txt # ファイル名の変更
    [user@server ~]$ mv myproject/ new_location/ # ディレクトリの移動
  • cat: (concatenate) ファイルの内容を表示します。短いファイルを確認するのに便利です。
    bash
    [user@server ~]$ cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  • less: ファイルの内容をページャー形式で表示します。大きなファイルを閲覧するのに適しています。上下キーでスクロール、/で検索、qで終了します。
    bash
    [user@server ~]$ less /var/log/messages
  • head: ファイルの先頭部分を表示します(デフォルトで最初の10行)。
    bash
    [user@server ~]$ head /etc/passwd
  • tail: ファイルの末尾部分を表示します(デフォルトで最後の10行)。ログファイルなどを監視するのに便利です。
    bash
    [user@server ~]$ tail /var/log/messages

    • -f オプション: ファイルの末尾を継続的に表示します(リアルタイム監視)。終了はCtrl+C。
      bash
      [user@server ~]$ tail -f /var/log/messages
  • file: ファイルの種類を調べます。
    bash
    [user@server ~]$ file myfile.txt
    myfile.txt: ASCII text
    [user@server ~]$ file /bin/ls
    /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=..., for GNU/Linux 3.2.0, stripped

5.5 ファイルのパーミッション(権限)

Linuxでは、ファイルやディレクトリに対する操作権限(読み取り、書き込み、実行)が厳密に管理されています。ls -lコマンドの出力の最初の10文字がパーミッションを示します。

例: ls -lの出力

-rwxr-xr--. 1 user group 1234 Nov 1 10:00 myfile.txt
drwxr-xr-x. 2 user group 4096 Nov 1 09:00 mydirectory

最初の10文字の内訳:

  • 1文字目: ファイルタイプ。-は通常のファイル、dはディレクトリ、lはシンボリックリンクなど。
  • 2-4文字目: ファイルの所有者 (Owner) の権限。r (読み取り), w (書き込み), x (実行)。権限がない場合は-が表示されます。
  • 5-7文字目: ファイルの所有グループ (Group) に属するユーザーの権限。
  • 8-10文字目: その他のユーザー (Others) の権限。
  • 11文字目: SELinuxのコンテキスト(.+が表示されることがあります)。

例: -rwxr-xr--.
* ファイルタイプ: - (通常のファイル)
* 所有者: rwx (読み取り、書き込み、実行が可能)
* 所有グループ: r-x (読み取り、実行が可能だが、書き込みは不可)
* その他: r-- (読み取りのみ可能)

権限の変更 (chmod)

chmodコマンドでファイルやディレクトリのパーミッションを変更できます。変更方法には、シンボリックモードと数値モードがあります。初心者には数値モードが分かりやすいかもしれません。

  • r: 読み取り (Read) = 4
  • w: 書き込み (Write) = 2
  • x: 実行 (Execute) = 1
  • 権限なし: = 0

これらの値を組み合わせて、所有者、グループ、その他のユーザーの権限を指定します。

例:
* 所有者: 読み書き実行 (4+2+1=7)
* グループ: 読み取り実行 (4+0+1=5)
* その他: 読み取りのみ (4+0+0=4)

この場合の数値モードでの権限指定は 754 となります。

bash
[user@server ~]$ chmod 754 myfile.txt # myfile.txtのパーミッションを所有者rwx,グループr-x,その他r--に変更

よく使われる権限例:
* 644: ファイル (所有者rw-,グループr–,その他r–)
* 755: 実行可能なファイルやディレクトリ (所有者rwx,グループr-x,その他r-x)
* 700: 自分だけがアクセスできるディレクトリやファイル (所有者rwx,グループ—,その他—)

所有者・所有グループの変更 (chown, chgrp)

ファイルやディレクトリの所有者や所有グループを変更するには、chownまたはchgrpコマンドを使用します。これらのコマンドは管理者権限(sudo)が必要です。

bash
[user@server ~]$ sudo chown new_owner myfile.txt # 所有者を変更
[user@server ~]$ sudo chgrp new_group myfile.txt # 所有グループを変更
[user@server ~]$ sudo chown new_owner:new_group myfile.txt # 所有者と所有グループを同時に変更

5.6 ユーザーとグループ

Linuxはマルチユーザーシステムです。複数のユーザーが同時にログインして作業したり、ファイルを共有したりできます。

  • ユーザー: システムを利用する個々のユーザーアカウント(例: user, root)。
  • グループ: ユーザーをまとめたものです。グループに対して権限を設定することで、そのグループに属する複数のユーザーにまとめて同じ権限を与えることができます。

重要なユーザー:

  • root: システムの全ての権限を持つスーパーユーザー(管理者)。非常に強力なアカウントであり、誤った操作がシステム全体に影響を与える可能性があるため、日常的な作業では使用せず、必要なときだけ利用します。
  • 通常ユーザー: インストール時に作成したユーザーなど。デフォルトでは自分のホームディレクトリ以外では限られた操作しかできません。

管理者権限の利用 (su, sudo)

通常ユーザーでログインしている状態で、管理者権限が必要なコマンドを実行するには、以下の方法があります。

  • su -: (substitute user) rootユーザーに切り替えます。rootのパスワードが必要です。su -とハイフンを付けることで、rootの環境変数などを正しく読み込みます。
    bash
    [user@server ~]$ su -
    Password:
    [root@server ~]# # プロンプトが#に変わり、rootユーザーになったことを示す
    [root@server ~]# exit # rootから元のユーザーに戻る
    [user@server ~]$
  • sudo command_name: (superuser do) 指定したコマンドを管理者権限で実行します。通常ユーザー自身のパスワードが必要です。sudoersという設定ファイルで、どのユーザーがどのコマンドをsudoで実行できるかが制御されています。インストール時に「このユーザーを管理者にする」にチェックを入れた場合、そのユーザーはデフォルトで多くのコマンドをsudoで実行できるようになっています。
    bash
    [user@server ~]$ sudo systemctl restart sshd # sshdサービスを再起動 (管理者権限が必要)
    Password:

    sudoは、必要なコマンドだけを管理者権限で実行するため、su -よりも安全な方法とされています。日常的な管理作業ではsudoを利用することが推奨されます。

ユーザーやグループの情報

  • whoami: 自分が現在どのユーザーでログインしているかを表示します。
    bash
    [user@server ~]$ whoami
    user
    [user@server ~]$ sudo whoami # sudoコマンドを実行している際のユーザーはrootだが、表示は元のユーザー
    root # sudoコマンド自体はroot権限で実行されているため、sudo whoamiの結果はroot
  • id: ユーザーのUID(ユーザーID)、GID(グループID)、所属しているグループなどを表示します。
    bash
    [user@server ~]$ id
    uid=1000(user) gid=1000(user) groups=1000(user),10(wheel)

    • wheelグループは、RHELでデフォルトでsudoの使用が許可されているグループです。
  • /etc/passwd: システム上のユーザーアカウント情報が格納されているファイル。
  • /etc/group: システム上のグループ情報が格納されているファイル。
  • /etc/shadow: ユーザーのパスワード情報が格納されているファイル(rootユーザー以外は読み取れません)。

5.7 プロセス管理

システム上で実行されているプログラムを「プロセス」と呼びます。

  • ps: (process status) 現在実行中のプロセス一覧を表示します。
    bash
    [user@server ~]$ ps aux # システム上の全ユーザーの全プロセスを詳細に表示 (よく使うオプション)

    • a: 端末に関連付けられていないプロセスを含む
    • u: ユーザー情報を表示
    • x: 端末制御を持たないプロセスを含む
  • top: システムのリソース使用状況(CPU使用率、メモリ使用量、実行中のプロセスなど)をリアルタイムで表示します。非常に便利なコマンドです。終了はqキー。
    bash
    [user@server ~]$ top
  • htop: topよりも高機能で視覚的に分かりやすいプロセスモニター(別途インストールが必要な場合があります)。
    bash
    [user@server ~]$ htop # インストールされていない場合は dnf install htop でインストール
  • kill: 指定したプロセスを終了させます。プロセスのID(PID)を指定します。
    bash
    [user@server ~]$ kill PID # PIDは ps aux や top コマンドで確認
    [user@server ~]$ kill -9 PID # 強制終了 (-9はSIGKILLシグナル)

5.8 テキストエディタ

設定ファイルの編集など、サーバー操作ではテキストファイルを編集する機会が多々あります。コマンドライン上で動作するテキストエディタが必要です。RHELでよく使われるのはvi/vimnanoです。

  • vi / vim: (Vi IMproved) 非常に高機能で、多くのLinuxシステムに標準でインストールされている伝統的なエディタです。ただし、独特の操作モード(コマンドモード、挿入モード、最終ラインモードなど)があり、初心者には習得が難しいかもしれません。習得すれば強力ですが、最初は戸惑うでしょう。
    bash
    [user@server ~]$ vim filename # または vi filename

    • i: 挿入モードに入る(編集開始)
    • Esc: コマンドモードに戻る
    • :wq: 保存して終了
    • :q!: 保存せずに終了
  • nano: vi/vimに比べて操作が非常にシンプルで、Windowsのメモ帳などに近い感覚で使えます。コマンドラインエディタが初めての初心者にはnanoを強く推奨します。RHELではデフォルトでインストールされているはずです。
    bash
    [user@server ~]$ nano filename

    • 画面下部に基本的な操作方法が表示されます(例: ^Xで終了、^Oで書き込み)。^はCtrlキーを意味します。

初心者の方は、まずnanoの使い方をマスターし、慣れてきたらvimに挑戦するのが良いでしょう。

第6章:ソフトウェアの管理:DNFを使おう!

RHEL Serverに新しいソフトウェア(アプリケーションやツール)をインストールしたり、既存のソフトウェアをアップデートしたり、不要になったソフトウェアを削除したりするには、パッケージ管理システムを利用します。RHEL 8以降では、DNF (Dandified YUM) が標準のパッケージマネージャーです。それ以前のバージョンではYUMが使われていましたが、DNFはYUMの後継として開発され、互換性があります。

DNFは「リポジトリ」と呼ばれるソフトウェアの配布元からパッケージを取得します。RHELのサブスクリプションを登録すると、Red Hatが提供する公式リポジトリから信頼性の高いパッケージを入手できます。

6.1 DNFの基本的な使い方

DNFコマンドは通常、管理者権限(sudo)が必要です。

  • システムのアップデート: インストールされているすべてのパッケージを最新の状態に更新します。セキュリティアップデートなども含まれるため、定期的に実行することが推奨されます。
    bash
    [user@server ~]$ sudo dnf update

    更新可能なパッケージのリストが表示され、更新するかどうか確認されます(Is this ok [y/N]:)。yと入力してEnterを押すと更新が開始されます。
  • パッケージのインストール: 新しいソフトウェアをインストールします。
    bash
    [user@server ~]$ sudo dnf install package_name

    package_nameはインストールしたいソフトウェアの名前です(例: nginx, mariadb-server, htop)。依存関係のある他のパッケージも同時にインストールされます。
  • パッケージの削除: 不要になったソフトウェアを削除します。
    bash
    [user@server ~]$ sudo dnf remove package_name

    そのパッケージに依存している他のパッケージがあれば、それらも削除される場合があります。
  • パッケージの検索: インストールしたいソフトウェアの名前が分からない場合などに利用します。キーワードに関連するパッケージをリポジトリから検索します。
    bash
    [user@server ~]$ dnf search keyword # sudoは不要
  • インストール済みパッケージの一覧表示: システムにインストールされているパッケージの一覧を表示します。
    bash
    [user@server ~]$ dnf list installed # sudoは不要
  • 利用可能なパッケージの一覧表示: リポジトリで利用可能なパッケージの一覧を表示します。
    bash
    [user@server ~]$ dnf list available # sudoは不要
  • パッケージ情報の表示: 特定のパッケージの詳細情報を表示します。
    bash
    [user@server ~]$ dnf info package_name # sudoは不要

例:htopのインストール

htopというプロセスモニターをインストールしてみましょう。

  1. htopという名前で検索してみる(任意)。
    bash
    [user@server ~]$ dnf search htop

    検索結果にhtop.x86_64などが見つかるはずです。
  2. htopをインストールする。
    bash
    [user@server ~]$ sudo dnf install htop

    確認メッセージが表示されたらyと入力します。
  3. インストール完了後、htopコマンドを実行してみる。
    bash
    [user@server ~]$ htop

これで、システムに新しいソフトウェアをインストールできるようになりました。DNFは他にも多くの機能を持っていますが、まずはこれらの基本的なコマンドを覚えましょう。

第7章:ネットワークの基本設定

サーバーはネットワークに接続されて初めてその価値を発揮します。RHELでの基本的なネットワーク設定と確認方法を学びましょう。

RHEL 8/9では、ネットワークの設定管理に NetworkManager というサービスが推奨されています。コマンドラインからは nmcli コマンド、または設定ファイル (/etc/sysconfig/network-scripts/ ディレクトリや /etc/NetworkManager/system-connections/ ディレクトリ内のファイル) で設定を行います。ここでは、主に確認コマンドと、簡単な設定変更について触れます。

7.1 ネットワーク状態の確認

  • IPアドレスの確認: システムに割り当てられているIPアドレス、ネットワークインターフェース(例: eth0, enp0s3)などを確認します。
    bash
    [user@server ~]$ ip addr show

    または、少し古いコマンドですが今でも使われるifconfig(デフォルトではインストールされていないこともあります)
    bash
    [user@server ~]$ ifconfig # インストールされていない場合は sudo dnf install net-tools

    ip addr showの出力で、各インターフェース(例: enp0s3)のセクションを探し、inetの後ろに表示されているのがIPv4アドレス、inet6の後ろに表示されているのがIPv6アドレスです。

  • ルーティングテーブルの確認: ネットワークトラフィックがどのようにルーティングされるかを確認します。デフォルトゲートウェイなども確認できます。
    bash
    [user@server ~]$ ip route show

    またはroute -n
    bash
    [user@server ~]$ route -n # インストールされていない場合は sudo dnf install net-tools

  • DNS設定の確認: ドメイン名をIPアドレスに変換するためのDNSサーバー設定を確認します。
    bash
    [user@server ~]$ cat /etc/resolv.conf

  • ネットワーク接続のテスト: 他のホストとの通信が可能かテストします。

    • ping hostname_or_ip: 指定したホストにネットワークパケットを送信し、応答があるか確認します。ネットワークの疎通確認によく使われます。Ctrl+Cで停止します。
      bash
      [user@server ~]$ ping google.com
      [user@server ~]$ ping 192.168.1.1
    • traceroute hostname_or_ip: 宛先ホストまでのネットワーク経路を表示します。パケットがどのルーターを経由して到達するか、またはどこで途切れているかを確認できます。
      bash
      [user@server ~]$ traceroute google.com

7.2 ホスト名の設定

サーバーを識別するためのホスト名を設定します。
bash
[user@server ~]$ hostname # 現在のホスト名を表示
[user@server ~]$ sudo hostnamectl set-hostname new_hostname # ホスト名を設定

設定後、新しいシェルを開くか、一旦ログアウト・ログインし直すとプロンプトに新しいホスト名が反映されます。

7.3 ファイアウォール (firewalld)

RHELでは、デフォルトで firewalld という動的なファイアウォール管理サービスが有効になっています。これは、不要なネットワークアクセスを遮断し、サーバーのセキュリティを保つ上で非常に重要です。

  • ファイアウォールの状態確認:
    bash
    [user@server ~]$ sudo systemctl status firewalld # firewalldサービスの起動状態を確認
  • 許可されているサービス/ポートの確認:
    bash
    [user@server ~]$ sudo firewall-cmd --list-all # 現在アクティブなゾーンで許可されている設定一覧を表示

    出力の中の services:ports: の項目を確認します。例えば、SSH接続が許可されている場合は ssh が表示されます。
  • サービスの許可 (例: HTTP)
    ウェブサーバーを構築するなどしてHTTP (TCP 80) でのアクセスを許可したい場合:
    bash
    [user@server ~]$ sudo firewall-cmd --zone=public --add-service=http --permanent # 設定を永続化
    [user@server ~]$ sudo firewall-cmd --reload # 設定を反映

    ゾーンとは、ネットワークインターフェースをグループ化し、異なるセキュリティレベルを適用するための概念です。通常、インターネットに面するインターフェースはpublicゾーンに割り当てられます。--permanentオプションを付けないと、再起動後に設定が消えてしまうので注意が必要です。--reloadは設定ファイルを読み直して反映させるコマンドです。
    同様に、HTTPS (TCP 443) を許可する場合は https サービスを追加します。

  • サービスの不許可 (例: HTTP)
    許可したサービスを元に戻す場合:
    bash
    [user@server ~]$ sudo firewall-cmd --zone=public --remove-service=http --permanent
    [user@server ~]$ sudo firewall-cmd --reload

firewalldには多くの機能がありますが、まずはSSH (sshサービス) が許可されていることと、必要なサービス(HTTP, HTTPSなど)をゾーンに追加・削除する方法を覚えましょう。

第8章:システムサービスの管理:Systemdを使おう!

RHELを含む多くのモダンなLinuxディストリビューションでは、システムの起動処理や、デーモン(バックグラウンドで常駐するサービスプロセス)の管理に Systemd という仕組みが使われています。SSHサーバー(sshd)、ネットワークサービス、ファイアウォール(firewalld)、ウェブサーバー(httpd/nginx)などもSystemdによって管理されるサービス(ユニット)です。

サービスを管理する主なコマンドは systemctl です。systemctlコマンドは管理者権限(sudo)が必要です。

8.1 Systemdの基本的な使い方 (systemctl)

  • サービスの起動: 停止しているサービスを開始します。
    bash
    [user@server ~]$ sudo systemctl start service_name # 例: sudo systemctl start sshd
  • サービスの停止: 実行中のサービスを停止します。
    bash
    [user@server ~]$ sudo systemctl stop service_name # 例: sudo systemctl stop sshd
  • サービスの再起動: 実行中のサービスを停止し、再度起動します。設定ファイルを変更した場合などに使います。
    bash
    [user@server ~]$ sudo systemctl restart service_name # 例: sudo systemctl restart sshd
  • サービスのリロード: 設定ファイルを再読み込みさせますが、サービス自体は停止しません。サービスがリロードに対応している場合に利用できます。
    bash
    [user@server ~]$ sudo systemctl reload service_name # 例: sudo systemctl reload sshd

    多くの場合、restartreloadのどちらか適切な方が使われます。どちらを使えばよいか分からない場合はrestartを選ぶか、サービスのドキュメントを確認します。
  • サービスのステータス確認: サービスが実行中か、エラーが発生していないかなど、詳細な状態を確認します。
    bash
    [user@server ~]$ sudo systemctl status service_name # 例: sudo systemctl status sshd

    サービスの現在の状態(active, inactive, failedなど)や、直近のログメッセージが表示されます。確認が終わったらqキーで終了します。
  • サービスの有効化: システム起動時にサービスが自動的に開始されるように設定します。
    bash
    [user@server ~]$ sudo systemctl enable service_name # 例: sudo systemctl enable httpd

    これにより、システムの再起動後もサービスが自動的に立ち上がります。
  • サービスの無効化: システム起動時にサービスが自動的に開始されないように設定します。
    bash
    [user@server ~]$ sudo systemctl disable service_name # 例: sudo systemctl disable httpd
  • サービスが有効になっているか確認:
    bash
    [user@server ~]$ systemctl is-enabled service_name # 例: systemctl is-enabled sshd (sudo不要)

例:SSHサーバー (sshd) の管理

  1. sshdサービスのステータスを確認する。
    bash
    [user@server ~]$ sudo systemctl status sshd

    Active: active (running) と表示されていれば起動中です。
  2. sshdサービスを再起動する。
    bash
    [user@server ~]$ sudo systemctl restart sshd
  3. システム起動時にsshdが自動的に起動するか確認する。
    bash
    [user@server ~]$ systemctl is-enabled sshd

    通常はenabledと表示されます。

Systemdとsystemctlコマンドは、サーバー管理において非常に頻繁に使用されます。基本的な起動・停止・再起動・ステータス確認・有効化・無効化の操作は必ず覚えておきましょう。

第9章:重要なファイルとディレクトリ

Linuxのファイルシステム構造は、Windowsなどとは異なります。ファイルの場所を理解することは、設定ファイルの編集やログの確認などの基本操作に不可欠です。Linuxのファイルシステムは、Filesystem Hierarchy Standard (FHS)という標準によって構造が定められています。RHELもこの標準に準拠しています。

最も重要なディレクトリをいくつか紹介します。

  • /: ルートディレクトリ。ファイルシステム全体の最上位にあるディレクトリです。すべてのファイルとディレクトリは、この/の下に存在します。
  • /bin: (binaries) システムの基本的なコマンドを格納しています(例: ls, cp, mv, cat)。どのユーザーでも実行できるコマンドが多いです。
  • /sbin: (system binaries) システム管理用の基本的なコマンドを格納しています(例: ip, firewall-cmd, systemctl)。主にrootユーザーまたはsudoを使って実行されるコマンドが多いです。
  • /usr: (Unix System Resources) システムで使用されるアプリケーション、ライブラリ、ドキュメントなどが格納されています。ユーザーがインストールしたアプリケーションなどもここに含まれることが多いです。
    • /usr/bin: ユーザーが利用する多くのコマンド
    • /usr/sbin: システム管理用の多くのコマンド
    • /usr/lib, /usr/lib64: ライブラリファイル
    • /usr/share: アーキテクチャに依存しないデータ(ドキュメント、manページなど)
  • /etc: (etcetera) 設定ファイルを格納しています。ほとんどすべてのシステム全体の設定ファイルがここにあります(例: /etc/passwd, /etc/fstab, /etc/ssh/sshd_config, /etc/sysconfig/network-scripts/)。
  • /home: ユーザーのホームディレクトリを格納しています。各ユーザーは通常、このディレクトリの下に自身のホームディレクトリを持ちます(例: /home/user1, /home/user2)。ユーザーのファイルや設定は通常、自身のホームディレクトリ内に保存されます。
  • /var: (variable) 内容が頻繁に変化するファイル(ログファイル、スプールファイル、キャッシュなど)を格納しています。
    • /var/log: ログファイルを格納しています(システムログ、アプリケーションログなど)。問題発生時に原因を調査する際によく参照します(例: /var/log/messages, /var/log/secure)。
    • /var/lib: アプリケーションやサービスの状態情報などが格納されます。
    • /var/www/html: ウェブサーバーのドキュメントルートとして使われることがあります。
  • /tmp: (temporary) 一時的なファイルを格納します。システム起動中や再起動時に内容が消去されることが多いです。
  • /opt: (optional) サードパーティ製のソフトウェアパッケージなどがインストールされることがあります。
  • /dev: (devices) デバイスファイル(ハードディスク、ターミナルなど)を格納しています。これらはハードウェアデバイスへのインターフェースです。
  • /proc: (processes) 実行中のプロセスやシステムに関する情報がカーネルから提供される仮想的なファイルシステムです。実際のファイルではなく、システムの状態をファイルとして参照できます。
  • /sys: (system) /procと同様に、カーネルやハードウェアに関する情報を提供する仮想的なファイルシステムです。

これらのディレクトリ構造を理解しておくことは、トラブルシューティングや設定作業を行う上で非常に重要です。特に/etc/var/logは、サーバー管理者にとって最もよくアクセスするディレクトリとなるでしょう。

第10章:RHELでのセキュリティの基本

サーバーを運用する上で、セキュリティは最も重要な考慮事項の一つです。RHELはセキュリティに強く注力しており、多くのセキュリティ機能を提供しています。初心者として、まずは基本的なセキュリティの考え方とRHELの標準機能について理解しましょう。

10.1 なぜセキュリティが重要か?

サーバーはインターネットなどのネットワークに接続されており、常に悪意のある攻撃のリスクにさらされています。不正アクセス、データの窃盗、サービスの停止(DDoS攻撃)、マルウェア感染など、様々な脅威からシステムとデータを守る必要があります。

10.2 基本的なセキュリティ対策

  • 強力なパスワード: 全てのユーザー(特にroot)に、推測されにくい複雑で長いパスワードを設定します。辞書にある単語や簡単な数列は避けるべきです。
  • 不要なサービスの停止: 稼働させていないサービスは停止しておきましょう。攻撃者は稼働中のサービス(特にインターネットに公開されているもの)を狙って侵入を試みます。systemctl list-units --type=serviceなどで稼働中のサービスを確認し、不要なものはsudo systemctl disable service_nameで無効化、sudo systemctl stop service_nameで停止しておきましょう。
  • ファイアウォールの設定: 第7章で触れたfirewalldを使って、必要なサービス(SSH, HTTP, HTTPSなど)以外のポートは閉じ、外部からの不要なアクセスを遮断します。
  • 定期的なアップデート: DNFを使ってシステムを常に最新の状態に保ちましょう。これにより、ソフトウェアの脆弱性が修正され、攻撃リスクを低減できます。sudo dnf updateを定期的に実行することが非常に重要です。
  • 最小限のソフトウェア: 必要最小限のソフトウェアのみをインストールするようにします。ソフトウェアが多いほど、潜在的な脆弱性も増えます。
  • ログの監視: /var/log/secureなどのログファイルを定期的に確認し、不正なログイン試行などの異常な兆候がないか監視します。
  • SSHの強化:
    • パスワード認証に加えて、より安全な公開鍵認証を導入することを検討します(少し advanced な内容ですが、サーバー運用では一般的です)。
    • rootユーザーによるSSHログインを無効にする (/etc/ssh/sshd_config ファイルを編集し、PermitRootLogin no に設定後、sudo systemctl restart sshd)。これにより、攻撃者がrootパスワードを推測して直接ログインするリスクを減らせます。通常ユーザーでログイン後、sudoで管理者権限を利用します。
    • SSHのポート番号をデフォルトの22番から変更することも、単純なポートスキャンからの攻撃リスクを減らすのに役立つ場合があります(あくまでリスク低減であり、根本的な対策ではありません)。

10.3 SELinux (Security-Enhanced Linux)

RHELの重要なセキュリティ機能の一つに SELinux があります。SELinuxは、強制アクセス制御 (MAC) という仕組みを提供し、従来のLinuxの任意アクセス制御 (DAC) よりもきめ細かく、強力なセキュリティポリシーを適用できます。

例えば、通常のDACでは、あるユーザーがファイルの読み書き権限を持っていれば自由に操作できますが、SELinuxでは、そのユーザーやプロセスが「何を」「どのファイルに対して」「どのように」アクセスできるかという「コンテキスト」に基づいてアクセスを制限します。これにより、たとえ何らかの脆弱性を突かれてプロセスが乗っ取られたとしても、SELinuxのポリシーによってそのプロセスが本来行うべきでない操作(例: ウェブサーバープロセスが/etc/passwdファイルを書き換えるなど)を防ぐことができます。

SELinuxにはいくつかのモードがあります。

  • Enforcing: ポリシーを強制し、違反する操作をブロックします。
  • Permissive: ポリシーに違反する操作が発生してもブロックせず、警告メッセージのみをログに出力します。トラブルシューティングなどに使われます。
  • Disabled: SELinuxが無効になります。セキュリティレベルが大幅に低下するため、特別な理由がない限りDisabledモードにするべきではありません。

初心者にとって、SELinuxの理解と設定は少し複雑かもしれません。まずはEnforcingモードで動作していることを確認し、SELinux関連のエラー(ログファイル/var/log/audit/audit.logjournalctl -xeで確認)が発生した場合は、その内容を調べて適切に対処する(例: sealert -a /var/log/audit/audit.log コマンドで解決策のヒントを得る)ことから始めましょう。

SELinuxのモード確認:
bash
[user@server ~]$ getenforce

出力がEnforcingであることを確認します。

注意: SELinuxのポリシーに違反する操作を行うと、サービスが正しく動作しないことがあります。初心者が安易にDisabledにすることは避け、エラーが発生した際はSELinuxが原因かを疑い、ログを確認して対処法を探すようにしましょう。

第11章:ヘルプと学習リソース

RHELの学習は、使えば使うほど新しい疑問が出てくるものです。困ったときに自分で解決するための方法を知っておくことは非常に重要です。

11.1 公式ドキュメント

Red Hatは非常に包括的で質の高い公式ドキュメントを提供しています。何か困ったことがあったら、まずは公式ドキュメントを参照するのが最も確実な方法です。
https://access.redhat.com/documentation/
インストール、システム管理、セキュリティ、特定のサービスのガイドなど、様々なトピックのドキュメントがバージョンごとに整理されています。

11.2 man コマンド

第5.3節で紹介したmanコマンドは、オフラインで利用できる非常に重要なリソースです。コマンド名だけでなく、設定ファイルやシステムコールなど、様々なマニュアルページが存在します。

11.3 Red Hat Customer Portal

RHELのサブスクリプションを登録すると利用できるRed Hat Customer Portalは、ドキュメントだけでなく、ナレッジベースの記事、セキュリティ勧告、製品ダウンロード、サポートケースの作成など、あらゆる情報とサポートにアクセスできる中心的な場所です。開発者向け無償サブスクリプションでも一部機能が利用できます。

11.4 コミュニティフォーラムとメーリングリスト

Red Hat関連のコミュニティフォーラムやメーリングリストでは、他のユーザーに質問したり、ディスカッションに参加したりできます。Stack Overflowなどの一般的な技術コミュニティでもLinuxに関する多くの情報が見つかります。

11.5 Red Hat Learning Subscriptionと認定試験

より体系的にRHELを深く学びたい場合や、RHELのスキルを証明したい場合は、Red Hatが提供する公式トレーニングコースや認定試験(RHCSA: Red Hat Certified System Administrator, RHCE: Red Hat Certified Engineerなど)を検討すると良いでしょう。RHCSAはRHELの基本的な管理スキルを証明するもので、初心者から次のステップに進むための良い目標となります。Red Hat Learning Subscriptionは、公式トレーニングコンテンツに無制限にアクセスできるサブスクリプションサービスです。

11.6 オンライン検索

ほとんどの技術的な疑問は、インターネット検索で見つかることが多いです。エラーメッセージをそのまま検索したり、「RHEL [コマンド名] [やりたいこと]」のようなキーワードで検索したりすることで、解決策や参考情報を見つけられます。ただし、古い情報や不正確な情報も存在するため、公式ドキュメントや信頼できる情報源からの情報を優先することが重要です。

まとめ:RHEL Serverの旅は始まったばかり

このガイドでは、RHEL Serverの基本的な概念、入手・インストール方法、そしてコマンドラインでの基本的な操作について、初心者向けに詳細に解説しました。

RHELはエンタープライズ環境で最も広く利用されているLinuxディストリビューションの一つであり、その基本を学ぶことは、ITインフラストラクチャの管理、クラウドコンピューティング、DevOpsといった、多くのキャリアパスにおいて非常に価値のある基盤となります。

今回学んだこと:

  • RHELがどのようなOSで、なぜエンタープライズ分野で重要なのか。
  • 開発者向け無償サブスクリプションを使ってRHELを始める方法。
  • 仮想マシンへの基本的なインストール手順。
  • SSHを使ったリモートアクセス。
  • コマンドライン(Bashシェル)での基本的な操作方法。
  • ファイル・ディレクトリ操作(ls, cd, pwd, mkdir, rm, cp, mvなど)。
  • ファイルパーミッションと所有者の概念、chmod, chownコマンド。
  • ユーザー、グループ、そしてsudoを使った管理者権限の利用。
  • プロセス管理(ps, top, kill)。
  • テキストエディタ(nano, vim)の使い方。
  • パッケージ管理システムDNFの使い方(インストール、アップデート、削除)。
  • 基本的なネットワーク設定と確認(ip addr, ping, firewall-cmd)。
  • Systemdを使ったサービス管理(systemctl)。
  • 重要なファイルシステム構造と主要ディレクトリ。
  • RHELにおける基本的なセキュリティ対策(パスワード、ファイアウォール、アップデート、SELinux)。
  • 学習を進めるためのヘルプとリソース。

これらの知識は、RHEL Serverを操作するための出発点です。しかし、サーバー管理の道は奥深く、学ぶべきことはまだまだたくさんあります。

次に何をすべきか:

  1. 実際に触る: このガイドを参考に、RHEL仮想マシンをインストールし、実際にコマンドを入力して操作してみましょう。手を動かすことが最も効果的な学習方法です。
  2. 基本的なコマンドを練習: ファイル操作、ディレクトリ移動、テキスト編集など、基本的なコマンドを繰り返し練習して体に覚えさせましょう。
  3. 簡単な目標設定: 例えば「ウェブサーバー(nginxまたはhttpd)をインストールして、簡単なHTMLファイルを公開してみる」「簡単なシェルスクリプトを書いて実行してみる」など、小さな目標を設定して挑戦してみましょう。
  4. エラーを恐れない: コマンドの入力ミスや設定間違いでエラーが発生するのは当然です。エラーメッセージをよく読み、インターネットで検索するなどして解決方法を探る過程で、多くのことを学べます。
  5. 公式ドキュメントを読む習慣をつける: 特定の機能やコマンドについて詳しく知りたい場合は、公式ドキュメントを参照する習慣をつけましょう。
  6. 次のステップを考える: 基本操作に慣れてきたら、RHCSAの学習範囲などを参考に、ユーザー管理、ストレージ管理、LVM、ネットワーク設定の詳細、サービスの自動起動設定など、さらに専門的なトピックに進んでみましょう。

RHEL Serverの学習は、最初は難しく感じるかもしれませんが、一歩ずつ着実に進めば必ず習得できます。このガイドが、あなたのRHEL Server学習の成功を願っています。頑張ってください!


コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール