ファイルシステムのドメイン
マルチユーザのシステム上では、システムリソースへのアクセスの制御は、システムの安定性を維持するために重要です。Mac OS Xは、各々が既定されたディレクトリのセットの中にリソースの記憶領域を提供する、いくつかのファイルシステムドメイン【=領域】を定義しています。各ドメインの中のリソースへのアクセス【の可否】は、現在のユーザに対するアクセス権【permissions】によって決定されます。
ファイルシステムのドメインは四つあります…
- ユーザ。ユーザドメインは、システムにログインしているユーザに固有のリソースを格納します。このドメインは、ブートボリューム【起動ディスク】(/Users)と、ネットワークボリュームのいずれかに存在することができる、ユーザのホームディレクトリによって定義されます。ユーザはこのドメインに送られたものに対して、完全なコントロールを持ちます。
- ローカル。ローカルドメインは、特定のシステムの全ユーザの間で共有されるけれども、システムが実行する必要のない、アプリケーションや書類といったリソースを格納します。ローカルドメインは単一の物理ディレクトリに対応しているのではなく、ローカルブート(およびルート)ボリューム上のいくつかのディレクトリから構成されています。システム管理者権限を持つユーザは、このドメインの項目を追加、除去、変更することができます。
- ネットワーク。ネットワークドメインは、ローカルエリアネットワークのすべてのユーザの間で共有されるアプリケーションや書類といったリソースを格納します。このドメインの項目は、一般的にはネットワークファイルサーバ上に置かれ、またこれらはネットワーク管理者の管理下にあります。
- システム。システムドメインは、アップルによってインストールされたシステムソフトウェアを格納しています。システムドメイン内のリソースは、システムによって実行される必要があります。このドメインの中の項目はローカルブート(およびルート)ボリュームに配置されています。ユーザはこのドメイン内の項目を、追加、除去、変化させることができません。
与えられたリソースに対するドメインは、システムのユーザへの、その適応性、もしくはアクセス性を決定します。たとえば、ユーザのホームディレクトリにインストールされたフォントは、そのユーザにだけ利用できます。もし、管理者が同じフォントをネットワークドメインにインストールすれば、すべてのネットワークユーザがそのフォントへのアクセスを手に入れます。
各ドメインの内部に、Mac OS Xは格納されるリソースを構成するための初期ディレクトリのセットを提供しています。Mac OS Xは、同じ種類のリソースを記録するために、複数のドメインに渡って同一のディレクトリ名を使用します。この一貫性は、こうしたリソースを使用するユーザに対しても、システムメソッドに対しても、共にリソースを見つける工程を単純化します。
システムがリソースを見つける必要のあるときは、リソースが見つかるまで複数のドメインを連続して検索します。検索はユーザドメインで始まり、ローカル、ネットワーク、システムドメインの順に進んでいきます。
これらのパスが将来変更できるように、あなたのコードはファイルシステムドメイン内のリソースへのパスを、決して仮定すべきではありません。アップルは標準的なファイルシステムパスへアクセスするための公開インタフェースを提供しています。あなたはシステムリソースの位置を特定するために、常にこれらのインタフェースを使用すべきです。ドメイン内部の項目の検索についての詳細は、「ファイルシステムのドメインの内部で検索する」(15ページ)を参照してください。
以下のセクションでは、各ドメインで利用できる標準的なディレクトリも含めて、ファイルシステムのドメインをより詳細に説明していきます。
ユーザドメイン
ユーザドメインは、単一のユーザに固有のリソースを格納しています。
ユーザドメインは現在の(ログインした)ユーザのホームディレクトリによって表されます。
Max OS Xコンピュータの各ユーザは、そのコンピュータ上に、もしくはそのコンピュータが接続されているローカルエリアネットワーク上に、アカウントを持つ必要があります。各ユーザアカウントは、ファイルシステム内の空間に、ユーザのホームディレクトリと呼ばれる、割り当てられた領域を伴います。このディレクトリは、ユーザのプログラム、リソース、書類が属するディレクトリです。
各ユーザのホームディレクトリの名前は、ユーザの短縮ログイン名を元にしており、ユニークである必要があります。
ユーザドメインは、各ユーザに対してカスタマイズされた作業環境を作ることができます。
ユーザがログインしたとき、Finderはユーザの作業環境と、以前の状態を、ユーザドメインにある環境設定を用いて復元します。同様に、プログラムやその他のシステムソフトウェアも、アプリケーションの環境設定、ネットワーク設定、電子メール設定、フォントセット、ColorSyncプロファイル、その他の設定を復元するためにユーザドメインにある情報を使用します。
ユーザのホームディレクトリの位置は、ユーザアカウントに依存しています。もし、ユーザアカウントがそのコンピュータのローカルなものであれば、ユーザのホームディレクトリはブートボリューム上のUsersディレクトリの中です。もし、ユーザアカウントがネットワークアカウントであれば、ホームディレクトリは、ネットワークサーバ上です。
ホームディレクトリの物理的な位置に関わらず、Mac OS Xは特定の状況でユーザのホームディレクトリを示すために~(チルダ)文字を用いるというUNIXの慣例を使用します。チルダは、他のディレクトリ名やユーザ名と組み合わせて、特定のユーザディレクトリを指定するために用いられることがあります。表 1(12ページ)はこの概念を図示しています。
表 1 ホームディレクトリ内の位置を示すためのチルダの使用例
~ | 現在のユーザのホームディレクトリの最上位 |
~/Library/Fonts | 現在のユーザのホームディレクトリ内の、フォントが記録される場所 |
~Steve | Steveというユーザのホームディレクトリの最上位 |
新規ユーザごとにホームディレクトリは、デフォルトのディレクトリとリソースを適切な位置に伴って作成されます。もしユーザが.Macアカウントを持っていたら、これらのディレクトリはユーザのiDiskにも同様にミラーされます。(iDiskの詳細は、http://www.mac.comを参照してください)表 2は、あなたがユーザのホームディレクトリに見つけることのできる、共通ディレクトリのいくつかを挙げています。
表 2 ホームディレクトリの内容
ユーザディレクトリ | 説明 |
---|---|
Applications | 現在のユーザにだけ利用できるアプリケーションを格納します。【デフォルトでは作成されない】 |
Desktop | ログインしたユーザ向けにFinderがデスクトップ上に表示する項目を格納しています。 |
Documents | ユーザの個人的な書類を格納しています。 |
ユーザディレクトリ | 説明 |
---|---|
Library | アプリケーション設定、環境設定、その他のユーザ固有のシステムリソースを格納しています。ユーザデータを格納すべきではありません。「Libraryディレクトリ」(17ページ)を参照してください。 |
Movies | QuickTimeやその他の形式のデジタルムービーを格納しています。 |
Music | デジタルミュージックファイル(.aiff、.mp3、.m4p、その他の形式の)を格納しています。 |
Pictures | さまざまな形式の画像ファイルを格納しています。 |
Public | ユーザが他のユーザと共有したい項目を格納しています。デフォルトでは、このディレクトリは他のユーザへアクセス可能としています。 |
Sites | ユーザの個人的ウェブサイトのためのウェブページを格納しています。これらのページを他のユーザにアクセス可能とする前には、「Web共有」を有効にする必要があります。 |
ユーザアカウントが作成されるとき、Applicationsディレクトリは自動的にはホームディレクトリに追加されません。けれども、ユーザがApplicationディレクトリを作成し、彼らのアプリケーションをそこに置くことはできます。システムは自動的にその場所でアプリケーションを探します。
システムはユーザのホームディレクトリを、ユーザがいつでも変更することのできるデフォルトアクセス権のセットによって、外部のインタフェースから保護します。ユーザによって作成された新規フォルダは、いずれもその親ディレクトリのアクセス権を引き継ぎます。
個々のホームディレクトリに加えて、UsersディレクトリはSharedサブディレクトリを格納しています。このディレクトリはローカルコンピュータシステムのどのユーザからもアクセス可能であり、ユーザ達による使用のみを意図しています。アプリケーションは、ユーザによってそうするように指示された場合を除いて、ここにアプリケーション固有の内容を記録すべきではありません。
どのユーザも、このディレクトリへ書類を書き込み、ここから書類を受け取り、ここで書類を読むことができます。このディレクトリは実際にはユーザドメインに関連付けられていませんが、書類やその他のファイルを交換するための、手ごろな予定地を提供します。
ローカルドメイン
ローカルドメインは、ローカルコンピュータ上で利用できるものの、システムが実行する必要のないリソースを格納します。ローカルドメインにあるリソースの典型としては、アプリケーション、ユーティリティ、カスタムフォント、カスタム起動項目、そしてグローバルアプリケーション設定が含まれます。
ルートボリューム上のApplicationsおよびLibraryディレクトリが、ローカルドメインのためのリソースを格納しています。
これらのリソースは、あるコンピュータシステムの現在のユーザに対して利用可能ですが、他のネットワーク化されたコンピュータ上のユーザに対しては利用可能ではありません。
コンピュータの管理者は、こうしたリソースをシステムのすべてのユーザによって共有したければ、ローカルドメインにインストールすることができます。
アップルは、アップルのアプリケーションを/Applicationsおよび/Applications/Utilitiesディレクトリに入れて出荷しています。サードパーティ製のアプリケーションとユーティリティも、これらのディレクトリに配置すべきです。
その他のシステムリソース、たとえばフォント、ColorSyncプロファイル、環境設定、プラグインなどは、Libraryディレクトリの適切なサブディレクトリに配置する必要があります。Libraryディレクトリの詳細は、「Libraryディレクトリ」(17ページ)を参照してください。
ネットワークドメイン
ネットワークドメインは、ローカルエリアネットワークのすべてのユーザに対して利用可能なリソースを格納します。ネットワークユーザはアプリケーション、書類、その他のこのドメイン全体のリソースに、AppleShareとウェブサーバを含めて、アクセスすることができます。
ネットワークドメインの正確な構成は、制度上の、もしくは企業の方針によります。ネットワークドメインの実装は、ネットワーク管理者の責任です。
表 3は、ディレクトリの内容の説明に加えて、ネットワークドメインで利用できる標準的なディレクトリを列挙しています。
表 3 ネットワークディレクトリ
場所 | 説明 |
---|---|
/Network/Applications | ローカルエリアネットワーク上の、すべてのユーザによって実行可能なアプリケーションを格納します。 |
/Network/Library | ローカルエリアネットワーク上の、すべてのユーザに対して利用可能なリソース―プラグイン、サウンドファイル、書類、フレームワーク、カラー、フォントなど―を格納します。Libraryディレクトリの詳細は、「Libraryディレクトリ」(17ページ)を参照してください。 |
/Network/Servers | ローカルエリアネットワークを用意する、NFSファイルサーバのためのマウントポイントを格納します。 |
/Network/Users | すべてのローカルエリアネットワークユーザのためのホームディレクトリを格納します。これはホームディレクトリのためのデフォルトの場所です。また、ホームディレクトリは他のサーバ上にも記録されることがあります。 |
システムドメイン
システムドメインは、Mac OS Xによって実行される必要のあるリソースを格納します。システムドメインのすべてのリソースは、ルートボリューム上の/Systemディレクトリ内に置かれます。これらのリソースはアップルによって提供され、ルートユーザだけがこのディレクトリの内容を変更することができます。
管理者ユーザとアプリケーションは、システムドメインの中にリソースをインストールしたり、システムドメインが格納するディレクトリを変更することはできません。
デフォルトでは、/SystemディレクトリはLibraryサブディレクトリのみを含んでいます。このサブディレクトリは、システム内のその他のLibraryディレクトリと同じ種類の、多数のリソースを格納しています。けれども、システムドメインにおいては、このディレクトリはコアサービス、フレームワーク、Mac OS Xを作り上げているアプリケーション群も含んでいます。Libraryディレクトリの詳細は、「Libraryディレクトリ」(17ページ)を参照してください。
Classic互換環境はシステム関連のリソースを含んでいますが、システムドメインの一部とはみなされていません。Classic環境についての詳細は、「Classic環境のディレクトリ」(23ページ)を参照してください。
ファイルシステムのドメインの内部で検索する
Mac OS Xは、あなたがリソースや、プラグイン、その他の、特定の(もしくはすべての)ドメインの特定のディレクトリ位置の中にある項目を検索するために使用することのできる、二つの公開プログラム的インタフェースを搭載しています。
これらのインタフェースの一つ―Folder ManagerのFindFolder関数―は、Carbonとその他のCベースのプログラムのためのものです。詳細は、Folder Manager Referenceを参照してください。
もう一つのインタフェース―Foundationフレームワークの、NSPathUtilities.hで定義されている関数群と定数群―は、Cocoaプログラム向けのものです。詳細は、Foundation Framework Referenceを参照してください。
どちらのインタフェースも、あなたがすべてのファイルシステムドメインを通して特定の項目を探すうえで役に立ちます。慣例として、検索は一般的に、最も限定されたドメインから始めて、最も一般的なドメインで終わります。このドメインの順番は以下のようになります…
- ユーザ
- ローカル
- ネットワーク
- システム
ほとんどのシステムソフトウェアは、すべてのファイルシステムドメインを通して項目を検索するときに、この順番に従っています。けれども、あなたは、あなたのアプリケーションの要求に対して適切であれば、どのようなドメイン順で検索しても構いません。