2章 ファイルシステム †
ここで取り扱う標準というのは FHS に従っているファイルシステムの基礎なっているオペレーティング・システムが多くの UNIX ファイルシステムと同様に基本的にセキュリティ機能を実装していると想定しています。
ファイルに対しては2つの独立した区分を定義することができます。共有(shareable)か非共有か(unshareable)、そして、動的(variable)か静的(static)かどうか。一般に、これらのファイルは区別して異なったディレクトリに置くべきです。それにより、異なったファイルシステムの特徴に応じたファイル配置が可能となるのです。
"共有"(shareable)ファイルは1つのホスト上に置かれていますが、他のホストからも使うことができる場所に置かれるべきです。"非共有"(unsharable) ファイルは共有されない場所に置くべきです。たとえば、各ユーザのホームディレクトリにあるファイルは共有可能で、デバイスのロックファイルは共有できません。
"静的"(static)なファイルにはバイナリ、ライブラリ、ドキュメント、その他システム管理者が用いる事がないような変更されないファイルのことです。
"動的"(variable)ファイルは静的でないファイルのことです。
(i) 補足説明
共有ファイル(sharable)は1つのホスト上に設置され、何人ものユーザによって利用されてます。しかしながら、一般的にはファイルシステム階層において全てのファイルが共有ファイルということはありません。どのようなファイルシステムでもシステムが必要とするローカルな非共有ファイルが存在します。もしシステムが必要とする全てのファイルが外部のホストをマウントして取得可能であれば便利に違いないでしょうが、現実にはそうはいきません。
静的(static)なファイルと動的(variable)ファイルは分けて置くべきです。静的(static)なファイルは動的(variable)なファイルとは違い読み込み専用(read-only)なメディアに書き込むことができます。加えて動的(variable)なファイルのように定期的なバックアップを必要としないのが一般的です。
伝統的な UNIX 風ファイル階層システムでは /usr と /etc ディレクトリに静的(static)なファイルと動的(variable)なファイルを同じディレクトリに置いていました。そのような状態を改善するために、/var 階層を作成し、全ての動的(variable)ファイルは /usr から /var に移動されました。結果として /usr は(特定のファイルシステムでは)読み込み専用となったのです。動的なファイルが /etc から /var に移動されるまでには、技術的な側面から長い期間にわたりました。
以下に FHS に従っているシステムの例です(FHSのような配置も可能です)。
| 共有可能 | 共有不可 |
静的(static) | /usr | /etc |
| /opt | /root |
動的(variable) | /var/mail | /var/run |
| /var/spool/news | /var/lock |