auditlog 子例程

用途

将审计记录附加到审计跟踪文件。

标准 C 库 (libc.a)

语法

#include <sys/audit.h>
int auditlog ( Event Result Buffer BufferSize)
char *Event;
int Result;
char *Buffer;
int BufferSize;

描述

auditlog 子例程生成审计记录。 如果已启用系统审计,未暂挂进程审计,并且 Event 参数位于当前进程的一个或多个审计类中,那么内核审计日志记录组件将追加指定 Event 的记录。

审计记录器通过将 EventResult 参数添加到审计头,并将生成的信息作为审计尾部包含在 Buffer 参数中,来生成审计记录。

参数

描述
事件 要生成的审计事件的名称。 此参数应该是审计事件的名称。 审计事件名称将截断为 15 个字符加空。
结果 描述此事件的结果。 有效值在 sys/audit.h 文件中定义,并包含以下内容:
AUDIT_OK
事件成功。
AUDIT_FAIL
事件失败。
AUDIT_FAIL_ACCESS
由于任何访问控制拒绝,事件失败。
AUDIT_FAIL_DAC
由于自主访问控制拒绝,事件失败。
AUDIT_FAIL_PRIV
由于特权控制拒绝,事件失败。
AUDIT_FAIL_AUTH
由于认证拒绝,事件失败。

Result 参数的其他非零值将转换为 AUDIT_FAIL 值。

缓冲区 指向包含审计记录尾部的缓冲区。 此缓冲区中信息的格式取决于事件名称。
BufferSize 指定 Buffer 参数的大小,包括终止 null。

返回值

成功完成后, auditlog 子例程返回值 0。 如果auditlog失败,则返回值为-1,并设置errno全局变量来指示错误。

auditlog 子例程不返回任何由于不适当地定制审计子系统配置文件或用户编写的代码而导致未能写入记录的指示。 配置中的意外遗漏和排版错误是导致此类故障的潜在原因。

错误代码

如果下列任何一项为 true ,那么 auditlog 子例程将失败:

描述
Efault 事件缓冲区 参数指向进程的地址空间外部。
EINVAL 审计系统已中断或未初始化。
EINVAL 审计记录的长度大于 32 千字节。
EPERM 该进程没有 root 用户权限。
ENOMEM 分配内存失败。