Trusted X11 API を使用するには、次のヘッダーファイルが必要です。
#include <X11/extensions/Xtsol.h> |
Trusted X11 の例は、-lXtsol および -ltsol ライブラリオプションによってコンパイルされます。
X11 ラベルクリッピング API を使用するには、次のヘッダーファイルが必要です。
#include <Dt/label_clipping.h> |
ラベルクリッピングの例は、-lDtTsol および -ltsol ライブラリオプションによってコンパイルされます。
次の節で、Trusted X11 インタフェースおよび X11 ラベルクリッピングインタフェースのデータ型および宣言を示します。
X11 のデータ型
属性へのアクセス
ウィンドウラベルへのアクセスと設定
ウィンドウユーザー ID へのアクセスと設定
ウィンドウプロパティーラベルへのアクセスと設定
ウィンドウプロパティーユーザー ID へのアクセスと設定
ワークステーション所有者 ID へのアクセスと設定
X ウィンドウサーバーの認可上限と最下位ラベルの設定
トラステッドパスウィンドウでの作業
スクリーンストライプの高さへのアクセスと設定
ウィンドウの多インスタンス化情報の設定
X11 ラベルクリッピングインタフェースでの作業
次のデータ型が X11/extensions/Xtsol.h で定義されていて、Trusted Extensions X ウィンドウシステム API に使用されます。
X11 のオブジェクト型 – ResourceType 定義は、処理されるリソースの型を示します。値は IsWindow、IsPixmap、または IsColormap です。
ResourceType は、認可上限を表す型定義です。インタフェースは型 m_label_t の構造体をパラメータとして受け入れ、同じ型の構造体に認可上限を返します。
X11 のオブジェクト属性 – XTsolResAttributes 構造体には、次のリソース属性が含まれます。
typedef struct _XTsolResAttributes { CARD32 ouid; /* 所有者ユーザー ID */ CARD32 uid; /* ウィンドウのユーザー ID */ m_label_t *sl; /* 機密ラベル */ } XTsolResAttributes;
X11 のプロパティー属性 – XTsolPropAttributes 構造体には、次のプロパティー属性が含まれます。
typedef struct _XTsolPropAttributes { CARD32 uid; /* プロパティーのユーザー ID */ m_label_t *sl; /* 機密ラベル */ } XTsolPropAttributes;
X11 のクライアント属性 – XTsolClientAttributes 構造体には、次のクライアント属性が含まれます。
typedef struct _XTsolClientAttributes { int trustflag; /* クライアントが信頼できるとマークされている場合は真 */ uid_t uid; /* クライアントを起動した所有者ユーザー ID */ gid_t gid; /* グループ ID */ pid_t pid; /* プロセス ID */ u_long sessionid; /* セッション ID */ au_id_t auditid; /* 監査 ID */ u_long iaddr; /* クライアントを実行するホストのインターネットアドレス */ } XTsolClientAttributes;
リソース、プロパティー、およびクライアント属性にアクセスするために、次のルーチンが使用されます。
このルーチンは、winattrp のウィンドウ ID のリソース属性を返します。XTSOLgetResAttributes(3XTSOL) のマニュアルページを参照してください。
このルーチンは、propattrp のウィンドウ ID によって決まるプロパティーのプロパティー属性を返します。XTSOLgetPropAttributes(3XTSOL) のマニュアルページを参照してください。
このルーチンは clientattrp のクライアント属性を返します。XTSOLgetClientAttributes(3XTSOL) のマニュアルページを参照してください。
ウィンドウの機密ラベルを取得および設定するために、XTSOLgetResLabel() および XTSOLsetResLabel() ルーチンが使用されます。
このルーチンはウィンドウの機密ラベルを取得します。XTSOLgetResLabel(3XTSOL) のマニュアルページを参照してください。
このルーチンはウィンドウの機密ラベルを設定します。XTSOLsetResLabel(3XTSOL) のマニュアルページを参照してください。
ウィンドウのユーザー ID を取得および設定するために、XTSOLgetResUID() および XTSOLsetResUID() ルーチンが使用されます。
このルーチンはウィンドウのユーザー ID を取得します。XTSOLgetResUID(3XTSOL) のマニュアルページを参照してください。
このルーチンはウィンドウのユーザー ID を設定します。XTSOLsetResUID(3XTSOL) のマニュアルページを参照してください。
ウィンドウ ID によって決まるプロパティーの機密ラベルを取得および設定するために、XTSOLgetPropLabel() および XTSOLsetPropLabel() ルーチンが使用されます。
このルーチンは、ウィンドウ ID によって決まるプロパティーの機密ラベルを取得します。XTSOLgetPropLabel(3XTSOL) のマニュアルページを参照してください。
このルーチンは、ウィンドウ ID によって決まるプロパティーの機密ラベルを設定します。XTSOLsetPropLabel(3XTSOL) のマニュアルページを参照してください。
ウィンドウ ID によって決まるプロパティーのユーザー ID を取得および設定するために、XTSOLgetPropUID() および XTSOLsetPropUID() ルーチンが使用されます。
このルーチンは、ウィンドウ ID によって決まるプロパティーのユーザー ID を取得します。XTSOLgetPropUID(3XTSOL) のマニュアルページを参照してください。
このルーチンは、ウィンドウ ID によって決まるプロパティーのユーザー ID を設定します。XTSOLsetPropUID(3XTSOL) のマニュアルページを参照してください。
ワークステーションサーバーの所有者のユーザー ID を取得および設定するために、XTSOLgetWorkstationOwner() および XTSOLsetWorkstationOwner() ルーチンが使用されます。
XTSOLsetWorkstationOwner() ルーチンはウィンドウマネージャーによってのみ使用されます。
このルーチンは、ワークステーションサーバーの所有者のユーザー ID を取得します。XTSOLgetWorkstationOwner(3XTSOL) のマニュアルページを参照してください。
このルーチンは、ワークステーションサーバーの所有者のユーザー ID を設定します。XTSOLsetWorkstationOwner(3XTSOL) のマニュアルページを参照してください。
X ウィンドウサーバーにセッション高位認可上限およびセッション最下位ラベルを設定するために、XTSOLsetSessionHI() および XTSOLsetSessionLO() ルーチンを使用します。セッション高位認可上限は、ラベルビルダー GUI から選択でき、ユーザーの範囲内である必要があります。セッション最下位ラベルは、マルチレベルセッションの場合のユーザーの最下位ラベルと同じです。
これらのインタフェースはウィンドウマネージャーによってのみ使用されます。
セッションの高位認可上限は、ログイン時のワークステーション所有者の認可上限から設定されます。セッションの高位認可上限は、所有者の認可上限およびマシンモニターのラベル範囲の上限のほうが優位です。これが変更されると、ウィンドウサーバーの認可上限より高位の機密ラベルで実行されるクライアントからの接続要求は、特権がなければ拒否されます。XTSOLsetSessionHI(3XTSOL) のマニュアルページを参照してください。
セッションの最下位ラベルは、ログイン時のワークステーション所有者の最下位ラベルから設定されます。セッションの最下位ラベルは、管理のために設定されるユーザーの最下位ラベルおよびマシンモニターのラベル範囲の下限より高位です。この設定を変更すると、ウィンドウサーバーの機密ラベルより下位の機密ラベルで実行されるクライアントからの接続要求は、特権がなければ拒否されます。XTSOLsetSessionLO(3XTSOL) のマニュアルページを参照してください。。
指定したウィンドウをトラステッドパスウィンドウにするため、および、指定したウインドウがトラステッドパスウィンドウであるかどうかを検査するために、XTSOLMakeTPWindow() および XTSOLIsWindowTrusted() ルーチンが使用されます。
このルーチンは、指定したウィンドウをトラステッドパスウィンドウにします。XTSOLMakeTPWindow(3XTSOL) のマニュアルページを参照してください。
このルーチンは、指定したウィンドウがトラステッドパスウィンドウであるかどうかを検査します。XTSOLIsWindowTrusted(3XTSOL) のマニュアルページを参照してください。
スクリーンストライプの高さを取得および設定するために、XTSOLgetSSHeight() および XTSOLsetSSHeight() ルーチンが使用されます。
これらのインタフェースはウィンドウマネージャーによってのみ使用されます。
このルーチンはスクリーンストライプの高さを取得します。XTSOLgetSSHeight(3XTSOL) のマニュアルページを参照してください。
このルーチンはスクリーンストライプの高さを設定します。スクリーンストライプがなくなったり、非常に大きなスクリーンストライプになったりしないように注意してください。XTSOLsetSSHeight(3XTSOL) のマニュアルページを参照してください。
XTSOLsetPolyInstInfo() ルーチンは、クライアントとは異なる機密ラベルで、クライアントがプロパティーからプロパティー情報を取得できるようにします。最初の呼び出しで、必要な機密ラベルとユーザー ID を指定し、enabled プロパティーを True に設定します。次に、XTSOLgetPropAttributes()、 XTSOLgetPropLabel()、または XTSOLgetPropUID() を呼び出します。終了するには、enabled プロパティーを False に設定して XTSOLsetPolyInstInfo() ルーチンを再び呼び出します。XTSOLsetPolyInstInfo(3XTSOL) のマニュアルページを参照してください。
label_to_str() ルーチンは、機密ラベルまたは認可上限を文字列に変換します。label_to_str(3TSOL) のマニュアルページを参照してください。