AU_OPEN(3)
π AU_OPEN(3) β Library Functions Manual, but make it cute π
β¨ NAME β¨
au_close, au_close_buffer, au_close_token, au_open, au_write β create and commit audit records, bestie. That's the whole vibe.
π LIBRARY π
Basic Security Module Library (libbsm, -lbsm) β link it, gorgeous.
π§Ύ SYNOPSIS π§Ύ
#include <bsm/libbsm.h>
int
au_open(void);
int
au_write(int d, token_t *tok);
int
au_close(int d, int keep, short event);
int
au_close_buffer(int d, short event, u_char *buffer, size_t *buflen);
int
au_close_token(token_t *tok, u_char *buffer, size_t *buflen);
π οΈ DESCRIPTION π οΈ
Okay so these interfaces let applications allocate audit records, construct a record using a series of tokens, and commit the audit record to the system event log. There's also an extension API to commit the record to an in-memory buffer instead of the system audit log β flexible icon behavior. π
au_open()β allocates a new audit record descriptor. Fresh descriptor, no cap.au_write()β adds a token to an allocated audit descriptor. When a token has been successfully added to a record, the caller no longer owns the token memory, and does not need to free it directly via a call toau_free_token(3)β do not free it yourself, bestie. πau_close()β used to commit an audit record to the system audit log, or abandon the record. Either way, all resources associated with the record will be released. Thekeepargument determines the behavior: a value ofAU_TO_WRITEcauses the record to be committed; a value ofAU_TO_NO_WRITEcauses it to be abandoned. When the audit record is committed, a BSM header will be inserted before tokens added to the record, using the event identifier passed viaevent, and a trailer added to the end. Committing a record to the system audit log requires privilege. privilege check, periodt. πau_close_buffer()β writes the resulting record to an in-memory buffer of size*buflen; it will write back the filled buffer length into the same variable. The argumenteventis the event identifier to use in the record header. π«Άau_close_token()β generates the BSM stream output for a single token,tok, in the passed bufferbuffer. The initial buffer size and resulting data size are passed via*buflen. Theau_close_token()function will free the token before returning. token cleanup slay. β¨
π― RETURN VALUES π―
au_open()β returns a non-negative audit record descriptor number on success, or a negative value on failure, along with error information inerrno.au_write(),au_close(),au_close_buffer(), andau_close_token()β return0on success, or a negative value on failure, along with error information inerrno.
π SEE ALSO π
π°οΈ HISTORY π°οΈ
The OpenBSM implementation was created by McAfee Research, the security division of McAfee Inc., under contract to Apple Computer, Inc., in 2004. It was subsequently adopted by the TrustedBSD Project as the foundation for the OpenBSM distribution. a whole origin story. πΈ
π AUTHORS π
This software was created by Robert Watson, Wayne Salamon, and Suresh Krishnaswamy for McAfee Research, the security research division of McAfee, Inc., under contract to Apple Computer, Inc. π
The Basic Security Module (BSM) interface to audit records and audit event stream format were defined by Sun Microsystems.
π BUGS π
Currently,au_open()does not reserve kernel resources necessary to commit the record to the trail; on systems supportingau_close(), the call will block until resources are available to commit the record. However, this leads to the possibility of an action being permitted without the record being guaranteed to go to disk. Ideally,au_open()would reserve resources necessary to commit any submitted record, releasing them onau_close().
mwah π this AU_OPEN(3) page is from Debian, dated March 4, 2006 β periodt, bestie. π«Ά
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- Copyright (c) 2006 Robert N. M. Watson
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms