tmp ディレクトリとすべてのホームディレクトリは、システム管理者がユーザーマネージャでユーザー設定を行う際に、自動的に ADMIN_LOW の MLD になります。また、mkdir(1) にも MLD を作成するオプションがあります。図 8-1 は Zelda のホームディレクトリのディレクトリ構造を示しています。この図の MLD は ADMIN_LOW であり、機密ラベル Top Secret、Secret、Confidential の 3 つの SLD が入っています。
MLD は、別の MLD を含むことはできません。
SLD は、MLD も SLD も含むことができません。
SLD は、通常の UNIX ディレクトリおよびあらゆる種類のファイルを含むことができます。
SLD は、必要に応じ、パス名ルックアップ時に、getsldname(2) と fgetsldname(2) システムコールを使用して作成されます。SLD の機密ラベルは、システムにとって常に有効な機密ラベルです。
Secret で動作しているアプリケーションは、ADMIN_LOW のディレクトリパス /export/home/.MLD.zelda よりも優位で、Secret と Confidential の SLD よりも優位です。しかし、Top Secret の SLD よりは優位でありません。特権がなく任意アクセスがある場合、Secret で動作しているプロセスには次のアクセスがあります。
Secret SLD に対する読み取り、書き込み、および作成のアクセス
完全な装飾名 /export/home/.MLD.zelda/.SLD.1 を使用して、Confidential の SLD に下位読み取りを行う権限。「装飾名」 と 「装飾パス名の使用」 を参照してください。
完全な装飾名 /export/home/.MLD.zelda/.SLD.3 を使用して、Top Secret の SLD に上位書き込みを行う権限 (プロセス認可上限が Top Secret の SLD よりも優位な場合)。「装飾名」 と 「装飾パス名の使用」 を参照してください。
図 8-1 のディレクトリ構造において Confidential で動作しているプロセスは、次のファイルにアクセスできます。
.login
conf_proj
図 8-1 のディレクトリ構造において Secret で動作しているプロセスは、次のファイルにアクセスできます。
.login
secret_proj1
secret_proj2
図 8-1 のディレクトリ構造において Top Secret で動作しているプロセスは、次のファイルにアクセスできます。
.login
ts_proj
多くのアプリケーションは、/tmp ディレクトリにファイルを作成します。/tmp が機密ラベルを持つ通常の UNIX ディレクトリである場合、ほかの機密ラベルで動作している特権のないプロセスは /tmp にファイルを作成できません。Trusted Solaris 7 は、プロセスの機密ラベルに対応した SLD にアプリケーションがファイルを作成できるように、/tmp を MLD に設定します。
MLD とシンボリックリンクは、組み合わせて使用できます。たとえば、リンク先パス名が MLD に存在するシンボリックリンクのリンク先ファイルは、機密ラベルごとに異なります。SLD 内のシンボリックリンクは、通常のディレクトリ内のパス名を指すことができます。その場合は、異なる機密レベルで参照されるときでも MLD 内のパス名からその同じファイルを参照できるようになります。