監査ファイル・フォーマット

目的

監査データ構造を記述します。

説明

/usr/include/sys/audit.h ファイルには、監査システム・コマンド、サブルーチン、およびデーモンの構造体と定数の定義が入っています。

監査ビンの形式

監査ビンのフォーマットは、 aud_bin 構造体によって記述されます。 監査証跡は一連のビンで構成され、各ビンの先頭はビン・ヘッドで、末尾はビン・テールでなければなりません。 aud_bin 構造体には、以下のフィールドが含まれます。

項目 説明
bin_magic ビンのマジック・ナンバー (0xf0f0)。
bin_version 保管箱のバージョン番号 (0)。
bin_tail ビンが監査証跡のヘッドまたはテールのどちらを記述しているかを示します。
0
ビン・ヘッダーを識別します。
1
ビンの終わり (テール) を識別します。
2
証跡の終わりを識別します。
bin_len ビンのレコードの (アンパックされた) 長さ。 ゼロ以外の値は、ビンにテール・レコードがあることを示します。
bin_plen ビンのレコードの現在の長さ (パックされている可能性があります)。
bin_time 頭部または尾部が書き込まれた時刻。
bin_reserved1 現在は未使用。
bin_reserved2 現在は未使用。

監査クラスの形式

監査クラスのフォーマットは、以下のフィールドを含む audit_class 構造体によって記述されます。

項目 説明
ae_name 監査クラスの名前へのポインターです。
ae_list この監査クラスのヌル終了の監査イベント名のリストへのポインター。 リストは、ヌル名 (先行ヌル・バイトまたは 2 つの連続したヌル・バイト) で終了します。
注: イベント名およびクラス名は、有効文字数が 15 文字に制限されています。
ae_len イベント・リストの長さ。ae_listメンバー。 この長さには、終了ヌル・バイトが含まれます。 AUDIT_SET 操作では、呼び出し側は、リストの実際の長さ (バイト単位) を示すようにこのメンバーを設定する必要があります。ae_list. AUDIT_GET または AUDIT_LOCK 操作の場合、 auditevents サブルーチンは、リストの実際のサイズを示すようにこのメンバーを設定します。

監査オブジェクトの形式

監査オブジェクトのフォーマットは、 o_event 構造体によって記述されます。この構造体には、以下のフィールドが含まれます。

項目 説明
o_type 命名スペースに関して、オブジェクトのタイプを指定します。 現在、以下の 1 つのオブジェクト命名スペースのみがサポートされています。
AUDIT_FILE (ファイル)
ファイル・システムの命名スペースを示します。
o_name オブジェクトの名前を指定します。
o_event オブジェクトへのアクセス時に生成されるイベント名の配列を指定します。 イベント名は、末尾のヌルを含めて、現在 16 バイトに制限されていることに注意してください。 この配列内のイベント名の索引は、アクセス・モードに対応しています。 有効な索引は audit.h ファイルに定義されており、以下のものが含まれています。
  • AUDIT_READ (AUDIT_READ)
  • 「AUDIT_WRITE」
  • 「AUDIT_EXEC」
注: C++ コンパイラーは、 o_event が構造体とその構造体内のフィールドの両方として定義されていることを示す警告を生成します。 o_event フィールドは C++ 内で使用できますが、 O_EVENT_RENAMEを定義することによって警告をバイパスできます。 これにより、 o_event フィールドが o_event_arrayに置き換えられます。 o_event はデフォルト・フィールドです。

監査レコード・フォーマット

各監査レコードは、固定長イベント ID のリストで構成され、各 ID の後に可変長テールを続けることができます。 監査レコードのフォーマットは、 aud_rec 構造体によって記述されます。この構造体には、イベントを識別するための以下のフィールドが含まれています。

項目 説明
ah_magic 監査レコードのマジック・ナンバー。
ah_length 監査レコードの末尾の部分の長さ。
ah_event[16] イベントの名前と NULL 終端子。
ah_result イベントが正常な操作を記述しているかどうかを示します。 このフィールドの値は、以下のとおりです。
0
正常終了したことを示します。
1
障害を示します。
>1
障害を記述する errno 値。

aud_rec 構造体には、ユーザーとプロセスを識別するための以下のフィールドも含まれています。

項目 説明
ah_ruid 実ユーザー ID。これは、このレコードを書き込んだプロセスを作成したユーザーの ID 番号です。
ah_luid このレコードを書き込んだプロセスを作成したユーザーのログイン ID。
ah_name[16] NULL 終止符を伴う、プロセスのプログラム名。
ah_pid このレコードを書き込んだプロセスのプロセス ID。
ah_ppid このプロセスの親プロセスのプロセス ID。
ah_time この監査レコードが書き込まれた時間 (秒)。
ah_ntime 次の値からのナノ秒のオフセットah_time.

レコード・テールは、このヘッダー情報の後に続きます。