Trusted Solaris 開発ガイド

サーバー領域の使用と機密ラベルの追加

AW_SERVER トークンは、トラステッドサーバーオプションを有効にし、呼び出しプロセスがサーバーであることを示します。トラステッドサーバーが有効な場合 auditwrite(3) ルーチンは自動的に header と return トークンを生成しますが、トラステッドサーバーが無効である場合には subject と slabel は自動的には生成しません (「最小限の監査レコードの作成」を参照)。トラステッドサーバーが有効な場合は、AW_SUBJECTAW_SLABEL トークンを明示的に渡して、この情報をレコードに含める必要があります。

この例は、トラステッドサーバーオプションを有効にし、レコードを書き込み、機密ラベルを含む別のレコードを書き込みます。続いて、トラステッドサーバーオプションを無効にし、違いがわかるように最終レコードを書き込みます。Confidential で動作しているプロセスは Secret よりも優位でないため、Secret 機密ラベルを変換するには sys_trans_label 特権が必要です。

bslabel_t				senslabel;

/* secret の機密ラベルを作成 */
 	stobsl("Secret", &senslabel, NEW_LABEL, &error);

/* トラステッドサーバーオプションをオン (有効) にする */
 	auditwrite(	AW_SERVER, AW_END);

/* レコードを監査トレールに書き込む */
 	auditwrite(	AW_EVENT, "AUE_second_signature",
 				AW_TEXT, "Some text",
 				AW_WRITE, AW_END);

/* レコードの機密ラベルを監査トレールに書き込む */
 	auditwrite(	AW_EVENT, "AUE_second_signature",
 				AW_TEXT, "Sensitivity label added",
 				AW_SLABEL, &senslabel,
 				AW_WRITE, AW_END);

/* トラステッドサーバーオプションをオフ (無効) にする */
 	auditwrite(AW_NOSERVER, AW_END);

/* 最終レコードを監査トレールに書き込む */
 	auditwrite(	AW_EVENT, "AUE_second_signature",
 				AW_TEXT, "Some more text",
 				AW_WRITE, AW_END);

表示用端末に、次のレコードが示されます。


header,38,2,second signature requested,,Wed Sep 11 12:46:41 1996 + 309940000 msec

text,Some text

return,success,0


header,38,2,second signature requested,,Wed Sep 11 12:46:41 1996 + 309940000 msec

text,Sensitivity label added 

slabel,S

return,success,0


header,112,2,second signature requested,,Wed Sep 11 12:46:41 1996 + 799939500 msec

text,Some more text

return,success,0

subject,zelda,zelda,staff,zelda,staff,420,286,0 0 phoenix

slabel,C

return,success,0