Trusted Extensions が設定されているシステムのすべてのオブジェクトは、ゾーンに関連付けられています。そのゾーンは「ラベル付けされたゾーン」と呼ばれます。ラベル付けされたゾーンは非大域ゾーンであり、一般ユーザーがアクセスできます。複数のラベルでクリアされるユーザーは、その各ラベルでゾーンにアクセスすることができます。
「大域ゾーン」は、システムのセキュリティーポリシーを制御するファイルおよびプロセスを含む特別なゾーンです。大域ゾーンのファイルには、役割および特権プロセスのみがアクセスできます。
大域ゾーンはラベルの範囲に割り当てられます。その範囲は ADMIN_LOW から ADMIN_HIGH までです。ADMIN_HIGH と ADMIN_LOW は「管理ラベル」です。
ほかのゾーンと共有される大域ゾーンのオブジェクトには ADMIN_LOW ラベルが割り当てられます。たとえば、/usr、/sbin、および/lib ディレクトリのファイルには ADMIN_LOW ラベルが割り当てられます。これらのディレクトリとその内容はすべてのゾーンで共有されます。これらのファイルおよびディレクトリは、通常、パッケージからインストールされ、パッケージまたはパッチの手順の場合を除いて一般に変更されません。ADMIN_LOW ファイルを変更するには、通常、プロセスがスーパーユーザーによって、またはすべての特権を持つユーザーによって実行される必要があります。
大域ゾーン専用の情報には ADMIN_HIGH ラベルが割り当てられます。たとえば、大域ゾーンのすべてのプロセス、および /etc ディレクトリのすべての管理ファイルには ADMIN_HIGH ラベルが割り当てられます。役割に関連付けられているホームディレクトリには ADMIN_HIGH ラベルが割り当てられます。ユーザーに関連付けられているマルチレベル情報にも ADMIN_HIGH ラベルが割り当てられます。「マルチレベル操作」を参照してください。大域ゾーンへのアクセスは制限されています。システムサービスおよび管理役割のみが大域ゾーンのプロセスを実行できます。
非大域ゾーンは「ラベル付けされたゾーン」と呼ばれます。ラベル付けされたゾーンにはそれぞれ固有のラベルがあります。ラベル付けされたゾーン内のすべてのオブジェクトのラベルは同じです。たとえば、ラベル付けされたゾーンで実行されるすべてのプロセスのラベルは同じです。ラベル付けされたゾーンの書き込み可能なすべてのファイルのラベルも同じです。複数のラベルでクリアされるユーザーは、ラベル付けされたゾーンに各ラベルでアクセスできます。
Trusted Extensions は、ゾーン用のラベル API のセットを定義します。次の API は、ラベル付けされたゾーンに関連付けられているラベル、およびゾーン内のパス名を取得します。
getpathbylabel()
getzoneidbylabel()
getzonelabelbyid()
getzonelabelbyname()
getzonerootbyid()
getzonerootbylabel()
getzonerootbyname()
これらの API の詳細は、「ゾーンのラベルへのアクセス」を参照してください。
ファイルのラベルは、ゾーンのラベル、またはファイルを所有するホストのラベルに基づきます。したがって、ファイルの再ラベル付けを行う場合、該当するラベル付けされたゾーンまたはラベル付けされたホストにファイルを移動する必要があります。ファイルの再ラベル付けのプロセスは、ファイルの「再格付け」とも呼ばれます。setflabel() ライブラリルーチンは、ファイルを移動することによってファイルの再ラベル付けを行います。ファイルの再ラベル付けのためには、プロセスが file_upgrade_sl 特権または file_downgrade_sl 特権を表明する必要があります。getlabel(2) および setflabel(3TSOL) のマニュアルページを参照してください。
特権の設定に関する詳細は、『Solaris セキュリティーサービス開発ガイド』の第 2 章「特権付きアプリケーションの開発」を参照してください。