Trusted Solaris 開発ガイド

CMW ラベルの取得

ラベルは、ワークスペースとほかのプロセスから取得されます。ユーザーは、現在作業中のワークスペースの機密ラベルにおいてのみ、プロセスを開始することができます。

プロセスの CMW ラベル

プロセスがワークスペースから開始されると、プロセスの CMW ラベルはワークスペースの CMW ラベルの機密ラベルの値を継承します。

fork(2) により新しいプロセスが作成されると、新しいプロセスはその呼び出しプロセスの CMW ラベル値を継承します。

新しいプログラムが exec(1) により開始されるとき、exec を実行するプロセスは、新しいプログラムのファイルに対する任意アクセス権と必須アクセス権の両方を必要とします。

setcmwplabel(2) システムコールは、プログラム中からプロセスの CMW ラベルを設定します。このシステムコールは、新しいプロセスを fork または exec により起動したあとで、そのプロセスを呼び出し元のプロセスとは別の CMW ラベルで動作させたいときに使用してください。このとき、特権が必要になる場合があります。詳細は、「特権の必要な操作」を参照してください。

オブジェクト CMW ラベル

プロセスによってオブジェクトが作成されると、オブジェクトはその呼び出し元プロセスの CMW ラベル値を継承します。ラベル表示の設定に応じて、ADMIN_LOW ラベルまたはシステム上で次にもっとも低いラベルがユーザーに表示されます。ラベル表示とは、「プロセスのセキュリティ属性フラグの取得と設定」で説明されている、プロセスのセキュリティ属性フラグです。

特権プロセスがオブジェクトに対し下位書き込みを行うと、システムはオブジェクトの機密ラベルを、プロセスの機密ラベルと同じになるよう変更します。この変更により、より高い機密ラベルでプロセスから書き込まれる情報が、より低い機密ラベルで動作しているほかのプロセスによってアクセスされないように保護します。

setcmwlabel(2) システムコールは、ファイルシステムオブジェクトの CMW ラベルをプログラム中から設定します。

承認を受けたユーザーは、ファイルマネージャを使用して、既存のファイルの CMW ラベルの機密ラベルを変更できます。