ウィンドウ、プロパティ、ピクセルマップオブジェクトには、ユーザー ID、クライアント ID、CMW ラベルがあります。グラフィックコンテキスト、フォント、カーソルには、クライアント ID しかありません。クライアントと X ウィンドウサーバー間の接続には、ユーザー ID、X ウィンドウサーバーID、CMW ラベルがあります。
ユーザー ID は、オブジェクトを作成したクライアントの ID です。クライアント ID は、オブジェクトを作成するクライアントが接続している接続番号に関連しています。
オブジェクトに対して何か操作を行う場合、任意アクセスポリシーにより、クライアントはそのオブジェクトを所有していなければなりません。クライアントのユーザー ID がオブジェクトの ID と等しい場合、クライアントはそのオブジェクトを所有しています。接続要求を行うには、クライアントのユーザー ID が X ウィンドウサーバーワークステーションの所有者のアクセス制御リスト (ACL) に存在していなければなりません。存在しない場合には、「プロセスのセキュリティ属性フラグの取得と設定」で説明しているように、クライアントはトラステッドパス属性を表明する必要があります。
必須アクセスポリシーでは、ウィンドウに名前をつけるときは同位書き込みと同位読み取り、属性に対しては下位書き込みとなります。CMW ラベルの機密ラベル部は、作成クライアントの機密ラベルに設定されます。CMW ラベルの情報ラベル部は、初めは ADMIN_LOW であり、クライアントがウィンドウに書き込むデータの情報ラベルに従って浮上します。
変更、作成、削除 - クライアントの機密ラベルは、オブジェクトの機密ラベルと同等でなければなりません。
名前、読み取り、取得 - クライアントの機密ラベルは、オブジェクトの機密ラベルよりも優位でなければなりません。
接続要求 - クライアントの機密ラベルが X ウィンドウサーバーワークステーションの所有者のセッション認可上限より劣位でなければなりません。そうでない場合には、「プロセスのセキュリティ属性フラグの取得と設定」で説明しているように、クライアントはトラステッドパス属性を表明する必要があります。
ウィンドウは、複数のクライアントで共有される情報が入った属性を所有できます。ウィンドウ属性は、アプリケーションが動作している機密ラベルで作成されます。これは、属性データに対するアクセスをアプリケーションの機密ラベルによって区別するためです。クライアントは、必須アクセス制限と任意アクセス制限による条件を満たしていれば属性を作成し、ウィンドウの属性にデータを格納し、属性からデータを取得することができます。多重インスタンス化されていない属性を指定するには /user/openwin/server/tsol/property.atoms を参照してください。
すべてのウィンドウには入力情報ラベルがあり、そのデフォルトは ADMIN_LOW です。トラステッドパスメニューを使用により、ユーザーは、ウィンドウの入力情報ラベルを設定できます。入力情報ラベルは、キーやボタンを押して離す操作によるデータ入力に割り当てられ、イベントの情報ラベルを浮上させます。
ルートウィンドウは、ウィンドウ階層の最上位にあります。ルートウィンドウは、どのクライアントにも属さない公開オブジェクトですが、保護すべきデータも含まれます。ルートウィンドウの属性は、ADMIN_LOW で保護されます。
クライアントには、少なくともルートウィンドウから派生した最上位クライアントウィンドウが 1 つあり、その最上位ウィンドウには入れ子になった別のウィンドウが含まれます。クライアントの最上位ウィンドウから派生したすべてのウィンドウは、同じ機密ラベルを持ちます。情報ラベルは、最上位ウィンドウから派生した各ウィンドウの情報ラベルをすべて結合したものに浮上します。クライアントの最上位ウィンドウから派生したサブウィンドウは、クライアントの最上位ウィンドウと同じ入力情報ラベルを持ちます。
メニューやある種のダイアログボックスのような、override-redirect ウィンドウは、入力フォーカスを別のクライアントから切り替え、不正な機密ラベルでのファイル入力を入力フォーカスが受け入れることを防止できません。override-redirect は作成クライアントに所有されており、ほかのクライアントがこのウィンドウを使用して別の機密ラベルでデータにアクセスすることはできません。
キーボード、ポインタ、サーバー制御を取得するには、クライアントは必須アクセス権と任意アクセス権を必要とします。フォーカスをリセットするには、クライアントはそのフォーカスを所有しているか、あるいは win_devices 特権を持っていなければなりません。
ポインタをワープするには、クライアントは、ポインタ制御と対象ウィンドウに対する必須アクセス権、および任意アクセス権を必要とします。明示的なユーザーアクションを含むイベントには、X 座標と Y 座標を取得できます。
選択マネージャは、情報が非トラステッドウィンドウ間で転送されるカット&ペーストやドラッグ&ドロップのような、ユーザーレベルのウィンドウ間データ移動を調整します。転送が試みられる場合、選択マネージャは、転送を捕獲し、転送を制御しているユーザーの承認を検証し、そのユーザーに確認とラベル付け情報を要求します。選択マネージャは、エンドユーザーが書き込みアプリケーションコードなしでデータ移動を試みる場合に常に表示されます。
管理者は、一部の転送形式に対し自動確認を設定できます。この場合、選択マネージャは表示されません。転送が必須アクセスポリシーと任意アクセスポリシーを満たす場合、データ転送は達成されます。ファイルマネージャとウィンドウマネージャ、それらの専用ドロップ領域に対する選択エージェントとしても動作します。多重インスタンス化された選択ターゲットを指定するには、/usr/openwin/server/tsol/selection.atoms を参照してください。どの選択ターゲットが自動的に承認されるか決定するには、/usr/dt/config/sel_config を参照してください。
ADMIN_LOW とラベル付けされたデフォルト資源は、クライアントでは作成できません。デフォルト資源を変更できるのは、ADMIN_LOW で動作しているか適切な特権を持つクライアントだけです。
ルートウィンドウの属性 - すべてのクライアントには読み取り権と作成権がありますが、書き込み権または変更権があるのは特権を持つクライアントだけです。情報ラベルの浮上はありません。「特権の必要な処理」を参照してください。
デフォルトカーソル - クライアントは、プロトコル要求で、自由にデフォルトカーソルを参照できます。
定義済みアトム - /usr/openwin/server/tsol/public.atoms ファイルには、定義済みアトムの読み取り専用リストが含まれています。
クライアントが選択マネージャを介さずにウィンドウ間でデータ移動を行うには、win_selection 特権が必要です。選択マネージャの詳細は、「選択マネージャ」を参照してください。
プロセス属性フラグの取得と設定の詳細は、第 2 章「プログラミングインタフェースの概要」を参照してください。