审计文件格式
用途
描述审计数据结构。
描述
/usr/include/sys/audit.h 文件包含审计系统命令,子例程和守护程序的结构和常量定义:
审计分级格式
审计 bin 的格式由 aud_bin 结构描述。 审计跟踪由一系列分箱组成,每个分箱必须以分箱头开头,以分箱尾结尾。 aud_bin 结构包含以下字段:
| 项 | 描述 |
|---|---|
| bin_magic | bin 的幻数 (0xf0f0)。 |
| bin_version | Bin (0) 的版本号。 |
| bin_tail | 指示 bin 是描述审计跟踪头还是尾部:
|
| bin_len | 货柜记录的 (未打包) 长度。 非零值指示货柜具有尾部记录。 |
| bin_plen | 货柜记录的当前长度 (可能已打包)。 |
| bin_time | 写头或尾的时间。 |
| bin_reserved1 | 当前未使用。 |
| bin_reserved2 | 当前未使用。 |
审计类格式
审计类的格式由 audit_class 结构描述,该结构包含以下字段:
| 项 | 描述 |
|---|---|
| ae_name | 指向审计类的名称的指针。 |
| ae_list | 指向此审计类的以 null 结束的审计事件名称列表的指针。 列表以空名称 (前导空字节或两个连续空字节) 结束。 注: 事件和类名限制为 15 个有效字符。
|
| ae_len | 事件列表的长度ae_list成员。 此长度包括终止的空字节数。 在 AUDIT_SET 操作上,调用者必须设置此成员以指示所指向的列表的实际长度 (以字节计)ae_list. 在 AUDIT_GET 或 AUDIT_LOCK 操作上, auditevents 子例程设置此成员以指示列表的实际大小。 |
审计对象格式
o_event 结构描述了审计对象的格式,其中包含以下字段:
| 项 | 描述 |
|---|---|
| o_type | 在命名空间方面,指定对象的类型。 目前,仅支持一个对象命名空间:
|
| o_name | 指定对象的名称。 |
| o_event | 指定访问对象时要生成的任何事件名称数组。 请注意,事件名称当前限制为 16 个字节,包括尾部空值。 此数组中事件名称的索引对应于访问方式。 有效索引在 audit.h 文件中定义,并包含以下内容:
注: C++ 编译器将生成一条警告,指示 o_event 既定义为结构,也定义为该结构中的字段。 虽然可以在 C++ 中使用 o_event 字段,但可以通过定义 O_EVENT_RENAME来绕过警告。 这会将 o_event 字段替换为 o_event_array。 o_event 是缺省字段。
|
审计记录格式
每条审计记录都由固定长度事件标识的列表组成,每个事件标识后面都可以跟着一个可变长度的尾部。 aud_rec 结构描述了审计记录的格式,其中包含用于标识事件的以下字段:
| 项 | 描述 |
|---|---|
| ah_magic | 审计记录的幻数。 |
| ah_length | 审计记录尾部的长度。 |
| ah_event[16] | 事件的名称和空终止符。 |
| ah_result | 指示事件是否描述成功操作。 此字段的值为:
|
aud_rec 结构还包含用于标识用户和进程的以下字段:
| 项 | 描述 |
|---|---|
| ah_ruid | 实际用户标识; 即,创建此记录的进程的用户的标识号。 |
| ah_luid | 创建了编写此记录的进程的用户的登录标识。 |
| ah_name[16] | 进程的程序名以及空终止符。 |
| ah_pid | 写入此记录的进程的进程标识。 |
| ah_ppid | 此进程的父进程的进程标识。 |
| ah_time | 写入此审计记录的时间 (以秒计)。 |
| ah_ntime | 从以下位置开始的纳秒偏移量ah_time. |
记录尾部跟在此头信息后面。