auditlog 子例程
用途
将审计记录附加到审计跟踪文件。
库
标准 C 库 (libc.a)
语法
#include <sys/audit.h>
int auditlog ( Event, Result, Buffer, BufferSize)
char *Event;
int Result;
char *Buffer;
int BufferSize;
char *Event;
int Result;
char *Buffer;
int BufferSize;
描述
auditlog 子例程生成审计记录。 如果已启用系统审计,未暂挂进程审计,并且 Event 参数位于当前进程的一个或多个审计类中,那么内核审计日志记录组件将追加指定 Event 的记录。
审计记录器通过将 Event 和 Result 参数添加到审计头,并将生成的信息作为审计尾部包含在 Buffer 参数中,来生成审计记录。
参数
| 项 | 描述 |
|---|---|
| 事件 | 要生成的审计事件的名称。 此参数应该是审计事件的名称。 审计事件名称将截断为 15 个字符加空。 |
| 结果 | 描述此事件的结果。 有效值在 sys/audit.h 文件中定义,并包含以下内容:
Result 参数的其他非零值将转换为 AUDIT_FAIL 值。 |
| 缓冲区 | 指向包含审计记录尾部的缓冲区。 此缓冲区中信息的格式取决于事件名称。 |
| BufferSize | 指定 Buffer 参数的大小,包括终止 null。 |
返回值
成功完成后, auditlog 子例程返回值 0。 如果auditlog失败,则返回值为-1,并设置errno全局变量来指示错误。
auditlog 子例程不返回任何由于不适当地定制审计子系统配置文件或用户编写的代码而导致未能写入记录的指示。 配置中的意外遗漏和排版错误是导致此类故障的潜在原因。
错误代码
如果下列任何一项为 true ,那么 auditlog 子例程将失败:
| 项 | 描述 |
|---|---|
| Efault | 事件 或 缓冲区 参数指向进程的地址空间外部。 |
| EINVAL | 审计系统已中断或未初始化。 |
| EINVAL | 审计记录的长度大于 32 千字节。 |
| EPERM | 该进程没有 root 用户权限。 |
| ENOMEM | 分配内存失败。 |