审计文件格式

用途

描述审计数据结构。

描述

/usr/include/sys/audit.h 文件包含审计系统命令,子例程和守护程序的结构和常量定义:

审计分级格式

审计 bin 的格式由 aud_bin 结构描述。 审计跟踪由一系列分箱组成,每个分箱必须以分箱头开头,以分箱尾结尾。 aud_bin 结构包含以下字段:

描述
bin_magic bin 的幻数 (0xf0f0)。
bin_version Bin (0) 的版本号。
bin_tail 指示 bin 是描述审计跟踪头还是尾部:
0
标识 bin 头。
1
标识货柜端 (尾部)。
2
标识跟踪结束。
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_GETAUDIT_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_arrayo_event 是缺省字段。

审计记录格式

每条审计记录都由固定长度事件标识的列表组成,每个事件标识后面都可以跟着一个可变长度的尾部。 aud_rec 结构描述了审计记录的格式,其中包含用于标识事件的以下字段:

描述
ah_magic 审计记录的幻数。
ah_length 审计记录尾部的长度。
ah_event[16] 事件的名称和空终止符。
ah_result 指示事件是否描述成功操作。 此字段的值为:
0
指示成功完成。
1
指示失败。
>1
描述故障的 errno 值。

aud_rec 结构还包含用于标识用户和进程的以下字段:

描述
ah_ruid 实际用户标识; 即,创建此记录的进程的用户的标识号。
ah_luid 创建了编写此记录的进程的用户的登录标识。
ah_name[16] 进程的程序名以及空终止符。
ah_pid 写入此记录的进程的进程标识。
ah_ppid 此进程的父进程的进程标识。
ah_time 写入此审计记录的时间 (以秒计)。
ah_ntime 从以下位置开始的纳秒偏移量ah_time.

记录尾部跟在此头信息后面。