複数の制御コマンドを使用するか、制御コマンドを省略するか、あるいは AW_END ターミネータコマンドを含めない場合、コードがコンパイルおよび実行されて、監査トレールに auditwrite(3) ルーチンに対する無効な呼び出しが記録されます。プロセスの事前選択マスクが AUE_auditwrite イベントの失敗を監査する場合にのみ、このイベントがトレールに記録されます。
次の例は、AW_END ターミネータコマンドが省略された無効な auditwrite(3) ルーチンコールと、その結果生成された監査レコードを示しています。この最初のプログラムに示しているヘッダーファイルは、この章のこれ以降の例にも適用されます。
#include <bsm/auditwrite.h> #include <tsol/label.h> #include <sys/param.h> #include <bsm/libbsm.h> #include <tsol/priv.h> main() { /* AW_END のない無効な呼び出し。このような使い方はしないこと */ auditwrite(AW_EVENT, "AUE_second_signature", AW_WRITE); }
無効な呼び出しは syslog に記録され、その無効なレコードに情報が十分含まれる場合は監査トレールにも記録されます。この例では、無効な呼び出しは、次の情報とともに syslog にだけ記録されます。
header, 194,2,auditwrite(3) fail,,Fri Sep 06 10:11:33 1996, + 179952500 msec text, auditwrite(3) aborted: aw_errno = 6 = Command invalid, errno = 0 = no such device or address subject,zelda,zelda,staff,zelda,staff,1774,348,0 0 phoenix slabel,C return,failure,-1 |