名前 | 形式 | 機能説明 | 戻り値 | エラー | 関連項目
#include <tsol/pattr.h>int getpattr(pattr_type_t type, pattr_flag_t *value);
プロセス属性フラグとは、プロセスがもつ追加属性を表す一連のフラグです。すべてのフラグには共通インタフェースとして getpattr() と setpattr() システム呼び出しがありますが、フラグには個別にアクセスできます。同じように、各フラグには独自の保護ポリシーがありますが、すべてのフラグが同じ保護メカニズムを使用します。フラグには 7 つのタイプがあり、type 引数で指定します。フラグは <tsol/pattr.h> に指定されています。type の値は次のとおりです。
トラステッドパスフラグ
特権デバッグフラグ
ネットワークトークン・マッピングプロセス・フラグ
ラベルビューフラグ
ラベル変換フラグ
ディスクレスブート関与フラグ
選択エージェント部分フラグ
トラステッド印刷システムメンバーフラグ それぞれのプロセス属性フラグの意味は次のとおりです。
この 1 ビットのフラグは、プロセスがトラステッドパスプロセスであることを表します。このフラグの表示や消去はできますが、設定はできません。つまり、setpattr(PAF_TRUSTED_PATH,1) は必ず失敗します。プロセスは、トラステッドパスフラグをその親プロセスから継承します。init プロセスは、トラステッドパスフラグをシステムから受け取ります。ユーザーセッションを作成する login などは、ユーザーセッションを開始する前にこのフラグを消去します。 setpattr(PAF_TRUSTED_PATH, 1);
この 1 ビットのフラグは、プロセスが特権デバッグモードにいることを表します。特権デバッグモードとは、特権の必要性がログされるが、強制はされないプロセス操作モードです。このフラグの表示や消去はできますが、このフラグの設定はトラステッドパスプロセスしかできません。
この 1 ビットのフラグは、設定されていると、プロセスがネットワークトークン・マッピングプロセスであることを表します。ネットワークトークン・マッピングプロセスは、ネットワークトークン・マッピングから除外されます。このフラグの表示や消去はできますが、このフラグの設定はトラステッドパスプロセスしかできません。
この 2 ビットのフラグはプロセス別ラベル変換をサポートします。これらのフラグの表示や変更は制約なしに行うことができます。
この 15 ビットのフラグは、label_encodings ファイルの GFI FLAGS= オプションをサポートします。これらのフラグの表示や変更ができるのはトラステッドパスプロセスだけです。
この 1 ビットのフラグは、プロセスがディスクレスブートに関与していることを表します。このフラグの表示や消去はできますが、このフラグの設定はトラステッドパスプロセスしかできません。
この 1 ビットのフラグは、プロセスが「カット & ペースト」選択エージェントの一部であることを表します。このフラグの表示や消去はできますが、このフラグの設定はトラステッドパスプロセスしかできません。
この 1 ビットのフラグは、プロセスが Trusted Printing System (トラステッド印刷システム) のメンバーであることを表します。このフラグの表示や消去はできますが、このフラグの設定はトラステッドパスプロセスしかできません。
つまり、フラグ関連の保護ポリシーは次のように適用されます。ラベル変換フラグを除き、プロセス属性フラグの表示や消去はどのプロセスでもできますが、ラベル変換フラグの表示や消去は、トラステッドパス属性をもつプロセスしかできません。ラベルビューフラグの設定はどのプロセスでもできますが、その他のフラグの設定はトラステッドパス属性をもつプロセスしかできません。
getpattr() は、呼び出し元プロセスの type プロセスフラグを value で表される pattr_flag_t 変数にコピーします。フラグの幅を示す低位の n ビットだけがコピーされます。上位のビットは消去されます。
setpattr() は、value の低位 n ビットを呼び出し元プロセスの type プロセスフラグにコピーします。n は選択されたプロセスフラグの幅です。
次の条件のどれかが該当する場合、getpattr() は異常終了します。
value 引数が不正なアドレスを指しています。
type 引数がリストされた type 定数ではありません。
呼び出し元プロセスが、type フラグの表示に必須のトラステッドパスプロセスではありません。
次の条件のどれかが該当する場合、setpattr() は異常終了します。
value 引数が不正なアドレスを指しています。
type 引数がリストされた type 定数ではありません。
呼び出し元プロセスが、type フラグの変更に必須のトラステッドパスプロセスではありません。