Trusted Solaris 開発ガイド

ディレクトリ構造

tmp ディレクトリとすべてのホームディレクトリは、システム管理者がユーザーマネージャでユーザー設定を行う際に、自動的に ADMIN_LOW の MLD になります。また、mkdir(1) にも MLD を作成するオプションがあります。図 8-1 は Zelda のホームディレクトリのディレクトリ構造を示しています。この図の MLD は ADMIN_LOW であり、機密ラベル Top Secret、Secret、Confidential の 3 つの SLD が入っています。

SLD は、必要に応じ、パス名ルックアップ時に、getsldname(2)fgetsldname(2) システムコールを使用して作成されます。SLD の機密ラベルは、システムにとって常に有効な機密ラベルです。

図 8-1 マルチレベルディレクトリ

Graphic

Secret で動作しているアプリケーションは、ADMIN_LOW のディレクトリパス /export/home/.MLD.zelda よりも優位で、Secret と Confidential の SLD よりも優位です。しかし、Top Secret の SLD よりは優位でありません。特権がなく任意アクセスがある場合、Secret で動作しているプロセスには次のアクセスがあります。

図 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 内のパス名からその同じファイルを参照できるようになります。