このセクションでは、Red Hat Enterprise Linux に特有のシステム管理の原理に関連する情報を説明しています。
Red Hat Enterprise Linux稼働環境下で頻繁に行われるタスクの自動化は異なる種類の技術的な知識を必要とします。まず、コマンドのタイミングやスクリプトの実行を制御するコマンドです。cronコマンドとatコマンドはこうした役割でもっともよく使われるコマンドになります。
わかりやすいだけでなくパワフルな柔軟性を持つ時間指定システムを取り入れた cron では、分単位から月単位までの間隔でコマンドやスクリプトの反復実行をスケジュールすることができます。crontab コマンドは、cron デーモンを制御しているファイルを操作するために使用し、このデーモンは各 cron ジョブの実行をスケジュールします。
atコマンド(及び密接に関連するbatchコマンド)は、スクリプトやコマンドの一回限りの実行をスケジュールするのに適しています。これらのコマンドはスケジュールのプライオリティを変えることができる複数キューから成る基本バッチサブシステムを実装しています。プライオリティはnicenessレベル(コマンドの名前に由来 — nice)で知られています。at も batch も特定時間に開始する必要があるタスクには申し分ありませんが、完了の点では時間重視ではありません。
次は各種スクリプト言語です。平均的なシステム管理者が手動操作を自動化するために使う"プログラミング言語"があります。スクリプト言語は数多くありますが(各システム管理者により好みがあります)、次にあげるのが現在、もっとも一般的なものです。
bash コマンドシェル
perl スクリプト言語
python スクリプト言語
各言語間の明らかな違い以上に、最大の違いはこれらの言語が Red Hat Enterprise Linux システムの他のユーティリティプログラムと相互に作用する方法です。bashシェルで記述されたスクリプトは数多くの小さなユーティリティプログラムを広範囲に使用することが多く(例、文字列の処理を行うため)、一方 perl スクリプトはこの種の処理を言語自身にビルトインされた機能を使って実行する傾向にあります。python で記述されたスクリプトは言語のオブジェクト指向の機能を完全に活用することができ、複雑なスクリプトをより簡単に拡張可能にすることができます。
つまり、本当にスクリプト記述をマスターするには、Red Hat Enterprise Linux の一部である各種のユーティリティプログラム(grep や sed など)をよく理解しておく必要があります。一方、perl (及び python) を学ぶのは"独立型"のプロセスである傾向があります。しかし、多くの perl 言語構造は各種 UNIX 本来のユーティリティプログラムの構文に基づいており、シェルスクリプトの経験がある Red Hat Enterprise Linux システム管理者にはよく知られています。
文書化とコミュニケーションの分野では Red Hat Enterprise Linux に固有する事項はほとんどありません。文書化とコミュニケーションはテキストベースの設定ファイルへのコメントの追加からウェブページの更新や電子メールの送信までさまざまです。Red Hat Enterprise Linux を使用するシステム管理者はテキストエディタ、HTML エディタ、メールクライアントを活用できなければなりません。
Red Hat Enterprise Linux で使用できる各種テキストエディタをいくつかあげておきます。
gedit テキストエディタ
Emacs テキストエディタ
Vim テキストエディタ
gedit テキストエディタは完全なグラフィカルアプリケーション(つまり、X Window System 環境を必要とする)であるのに対し、vim や Emacs は主としてテキストベースです。
コンピュータの誕生と共に最も優れたテキストエディタに関する論議が交され続け、今もってその論争は続いています。最適な手段は、各エディタを使用してみた上で自分にあったエディタを選ぶことです。
HTML エディタには、Mozilla ウェブブラウザのコンポーザー機能を使用できます。もちろん、HTML を手動でコードして普通のテキストエディタを問題なく使用している人もいます。
電子メール関連であれば、Red Hat Enterprise Linux にはグラフィカルな電子メールクライアントの Evolution、電子メールクライアントの Mozilla (これもグラフィカル)、テキストベースの mutt が含まれています。テキストエディタと同様に、電子メールクライアントの選択も個人によりますので、それぞれ試してみてから気に入ったものを選ぶのがよいでしょう。
この章のはじめの方で説明されているように、セキュリティを後回しにはできません。また、Red Hat Enterprise Linux 稼働環境下でのセキュリティは表面的なものだけではありません。承認やアクセス制御はオペレーティングシステムと高度に統合され、UNIX コミュニティでの長期にわたる経験から収集されてきたデザインに基づいています。
Red Hat Enterprise Linux は認証に PAM を使用します — Pluggable Authentication Modules。PAM ではすべての PAM 認識アプリケーションが使用する共有ライブラリの設定からユーザー認証を微細に調整することができます。アプリケーション自身への変更はまったく必要ありません。
Red Hat Enterprise Linux 環境下でのアクセス制御では従来の UNIX 系パーミッション(読み取り、書き込み、実行)をユーザー、グループ、"その他すべての人"の類別ごとに使用します。UNIX と同様、プログラムファイルの所有権に応じて、Red Hat Enterprise Linux は特定プログラムを実行しているプロセスに一時的にアクセス権を広げて与えるために setuid ビットと setgid ビットを使用します。言うまでもなく、これは非常に重要で、setuid または setgid 特権で実行されるプログラムはすべて不正アクセスされる脆弱性がないよう十分注意する必要があります。
また、Red Hat Enterprise Linux には アクセス制御リスト のサポートが含まれています。アクセス制御リスト (ACL) は、ユーザーまたはグループがアクセスできるファイルやディレクトリを詳細にわたって制御できるような構造になっています。例えば、ファイルのパーミッションでそのファイルの所有者を除くすべての人からのアクセスを制限することができるだけでなく、ユーザーの bob だけに書き込みを許可、グループの finance に読み取りを許可するようファイルの ACL を設定することができます。
別のセキュリティ手段としてはシステムのアクティビティを追跡することができます。Red Hat Enterprise Linux ではカーネルレベル及びアプリケーションレベルでロギングを広範囲にわたって活用できます。ロギングはシステムロギングデーモンの syslogd が制御しています。システム情報をローカルにログするか(通常、/var/log/ ディレクトリにあるファイル)、リモートシステムにログします(複数コンピュータ用の専用ログサーバとして動作するシステム)。
侵入検出システム (IDS) は Red Hat Enterprise Linux システム管理者にとってパワフルなツールになります。システム管理者は IDS で 1 システムまたは複数のシステムに許可されていない変更が行われたかどうかを確認することができます。オペレーティングシステム自身の総体的な設計に IDS 系の機能が含まれています。
これは、Red Hat Enterprise Linux が RPM パッケージマネージャ (RPM) を使ってインストールされるため、 RPM を使用してオペレーティングシステムを構成するパッケージに何らかの変更が行われたかどうかを確認できるからです。ただし、RPM は主にパッケージ管理ツールであるため、IDS としての性能はある程度限られていますが、許可されていない変更に対して Red Hat Enterprise Linux システムを監視するためにとれる最初の手段となり得ます。