Chapter 2. システム管理

Table of Contents
ファイルシステム構造
特別な Red Hat ファイルの場所
ユーザ、グループ、およびユーザプライベートグループ
コンソールアクセスの設定
floppy グループ
PAM によるユーザ認証
シャドウユーティリティ
カスタムカーネルの構築
Sendmail
サービスに対するアクセスの制御
Anonymous FTP
NFS 設定
ブートプロセス、Init、およびシャットダウン
レスキューモード

本章では、Red Hat Linux システムの概要を説明します。ここでは、知られていない可能性のある Red Hat Linux の側面に関するガイドを提供することを目的とします。さらに、この章では Red Hat Linux と他の UNIX システムの違いをいくつか指摘します。

ファイルシステム構造

Red Hat は、多数のファイルおよびディレクトリの名前と場所を定義した共同制作文書である「Filesystem Hierarchy Standard」 (FHS) に従います。引き続き弊社はこの規格に追従し、Red Hat Linux がこの規格に準拠した状態を保ちます。

最新の FHS ドキュメントは、任意の FHS 準拠ファイルシステムに対する正式のリファレンスであるものの、この標準に含まれない未定義または拡張可能の領域が多く残されています。このセクションでは、この規格の概要を示し、規格で取り扱われていないファイルシステムの部分について説明します。

規格の全文は次の Web サイトにあります。

http://www.pathname.com/fhs/

規格に準拠することが多くのことを意味する中で、最も重要な 2 つのことは、他の準拠システムとの互換性であり、/usr パーティションを読み込み専用としてマウントできることです (なぜならば、このパーティションは共通の実行可能ファイルを含んでおり、ユーザによって変更されることを意図していないからです)。/usr/ を読み込み専用としてマウントすることが可能であるため、CD-ROM から、または読み込み専用 FNS 経由で別のマシンから /usr をマウントすることができます。

FHS の概要

ここで示すディレクトリおよびファイルは、FHS ドキュメントで指定されるもののほんの一部です。完全な情報については最新の FHS ドキュメントをチェックしてください。

/dev ディレクトリ

/dev ディレクトリには、システムに接続されたデバイスを表すファイルシステムエントリが含まれています。システムが正しく機能するためには、それらのファイルが不可欠です。

/etc ディレクトリ

/etc ディレクトリは、マシンにとってローカルな設定ファイルのために予約されています。/etc にはバイナリファイルを配置しないことになっています。かつて /etc の中に配置されていたすべてのバイナリファイルを、/sbin または /bin の中に移動する必要があります。

X11 および skel ディレクトリは、/etc のサブディレクトリである必要があります。

/etc
|- X11 +- skel 

X11 ディレクトリは、XF86Config などの X11 設定ファイルのためのものです。skel ディレクトリは「骸骨」ユーザファイル用であり、ユーザの作成時にホームディレクトリを作成するために使用されます。

/lib ディレクトリ

/lib ディレクトリには、/bin および /sbin に含まれるバイナリファイルを実行するために必要なライブラリのみを保存する必要があります。

/proc ディレクトリ

/proc には、カーネルとの間で情報をやりとりするための特別なファイルが含まれています。/proc は、オペレーティングシステム情報に簡単にアクセスする手段を提供します。そのためには cat コマンドを使用します。

/sbin ディレクトリ

/sbin ディレクトリは、root ユーザのみが使用できる実行可能ファイル群を格納する場所です。/sbin 内の実行可能ファイル群の使用目的は、ブート、/usr のマウント、およびシステム回復操作のみです。FHS では次のように説明しています。

"「典型的な場合、/sbin には /bin に含まれるバイナリファイル以外の、システムをブートするために必要なファイルが含まれています。/usr がマウントされたことが認識された後 (何も問題がない場合) に実行されるものを /usr/sbin の中に配置する必要があります。ローカル専用のシステム管理バイナリファイルを /usr/local/sbin の中に配置する必要があります」

最低でも、以下のプログラムを /sbin の中に配置する必要があります。

arpclockgettyhaltinitfdiskfsck.*ifconfiglilomkfs.*mkswaprebootrouteshutdownswapoffswaponupdate

/usr ディレクトリ

/usr ディレクトリは、サイト全体にわたって共有することのできるファイルのためのものです。通常、/usr ディレクトリは独自のパーティションを持っており、読み込み専用でマウント可能とする必要があります。以下のディレクトリ群を /usr のサブディレクトリとする必要があります。

/usr
|- X11R6 |- bin |- doc |- etc |- games |- include |- lib |- libexec |- local |- sbin |- share +- src 

X11R6 ディレクトリは X Window System 用であり (Red Hat Linux 上の XFree86)、 bin は実行可能ファイルを格納、doc は非 man ページドキュメントを格納、etc はサイト全体に関わる設定ファイルを格納、games は (期待通り) ゲーム用、include は C ヘッダファイルを格納、lib はライブラリ用、libexec は他のプログラムからコールされる小さなヘルパープログラムを格納、 sbin はシステム管理バイナリファイル用 (/sbin には含まれないもの)、share はアーキテクチャ固有ではないファイルを格納、そして src はソースコード用です。

/usr/local ディレクトリ

FHS では次のように説明しています。

/usr/local 階層は、システム管理者がソフトウェアをローカルにインストールする際に使用するものです。システムソフトウェアの更新時に上書きされないように、この階層を保護する必要があります。マシンのグループの間で共有可能であるプログラムおよびデータのうち、/usr には含まれないもののために、この階層を使用することができます」

/usr/local ディレクトリは、構造に関しては /usr ディレクトリと類似しています。このディレクトリは以下のサブディレクトリを持っています。それらのサブディレクトリは、目的に関しては /usr ディレクトリと類似しています。

/usr/local
|- bin |- doc |- etc |- games |- info |- lib |- man |- sbin +- src 

/var ディレクトリ

FHS が、/usr を読み込み専用としてマウントできることを要求しているため、ログファイルを作成するプログラム、または spool または lock ディレクトリを必要とするプログラムは、おそらくデータを /var ディレクトリに書き込む必要があります。FHS は /var の目的を以下のように述べています。

"「…変数データファイル。ここには、spool ディレクトリおよびファイル、管理データおよびロギングデータ、そして一時ファイルが含まれます」

以下のディレクトリ群を /var のサブディレクトリとする必要があります。

/var
|- cache |- db |- ftp |- gdm |- lib |- local |- lock |- log |- named |- nis |- opt |- preserve |- run +- spool |- anacron |- at |- cron |- fax |- lpd |- mail |- mqueue +- news |- rwho |- samba |- slrnpull |- squid |- up2date |- uucp |- uucppublic |- vbox |- voice |- tmp |- yp 

wtmp および lastlog などのシステムログファイルは /var/log ディレクトリ内に配置されます。/var/lib ディレクトリには、RPM システムデータベースも含まれています。ロックファイルは /var/lock に格納されます。/var/spool ディレクトリは、データファイルを格納する必要がある各種システムのためのサブディレクトリを持っています。

Red Hat Linux の /usr/local

Red Hat Linux の場合、/usr/local の用途として意図されたものは、FHS の指定とは多少異なっています。FHS は、システムソフトウェアのアップグレード時には、保護するソフトウェアを /usr/local に格納すべきであるとしています。Red Hat からのシステムアップグレードは RPM システムおよび Gnome-RPM によって安全に行われるため、ソフトウェアを /usr/local に配置して保護する必要はありません。代わりに、マシンにとってローカルなソフトウェアのために /usr/local を使用することをお奨めします。

たとえば、読み込み専用 NFS 経由で beavis から /usr をマウントしたとします。インストールしたいパッケージまたはプログラムがあるものの、beavis への書き込み権限がない場合、/usr/local の下にそれらをインストールする必要があります。後になって、プログラムを /usr にインストールしてもらえるように beavis のシステム管理者を説得できた場合には、そのプログラムを /usr/local からアンインストールすることができます。