AW_SERVER トークンは、トラステッドサーバーオプションを有効にし、呼び出しプロセスがサーバーであることを示します。トラステッドサーバーが有効な場合 auditwrite(3) ルーチンは自動的に header と return トークンを生成しますが、トラステッドサーバーが無効である場合には subject と slabel は自動的には生成しません (「最小限の監査レコードの作成」を参照)。トラステッドサーバーが有効な場合は、AW_SUBJECT と AW_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 |