AU_TO(3BSM) Security and Auditing Library Functions AU_TO(3BSM)

NAME


au_to, au_to_arg, au_to_arg32, au_to_arg64, au_to_attr, au_to_cmd,
au_to_data, au_to_groups, au_to_in_addr, au_to_ipc, au_to_iport,
au_to_me, au_to_newgroups, au_to_opaque, au_to_path, au_to_process,
au_to_process_ex, au_to_return, au_to_return32, au_to_return64,
au_to_socket, au_to_subject, au_to_subject_ex, au_to_text - create audit
record tokens

SYNOPSIS


cc [ flag... ] file... -lbsm -lsocket -lnsl [ library... ]
#include <sys/types.h>
#include <sys/vnode.h>
#include <netinet/in.h>
#include <bsm/libbsm.h>

token_t *au_to_arg(char n, char *text, uint32_t v);


token_t *au_to_arg32(char n, char *text, uint32_t v);


token_t *au_to_arg64(char n, char *text, uint64_t v);


token_t *au_to_attr(struct vattr *attr);


token_t *au_to_cmd(uint_t argc, char **argv, char **envp);


token_t *au_to_data(char unit_print, char unit_type, char unit_count,
char *p);


token_t *au_to_groups(int *groups);


token_t *au_to_in_addr(struct in_addr *internet_addr);


token_t *au_to_ipc(char type, int id);


token_t *au_to_iport(u_short_t iport);


token_t *au_to_me(void);


token_t *au_to_newgroups(int n, gid_t *groups);


token_t *au_to_opaque(char *data, short bytes);


token_t *au_to_path(char *path);


token_t *au_to_process(au_id_t auid, uid_t euid, gid_t egid,
uid_t ruid, gid_t rgid, pid_t pid, au_asid_t sid, au_tid_t *tid);


token_t *au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid,
uid_t ruid, gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid);


token_t *au_to_return(char number, uin32t_t value);


token_t *au_to_return32(char number, uin32t_t value);


token_t *au_to_return64(char number, uin64t_t value);


token_t *au_to_socket(struct oldsocket *so);


token_t *au_to_subject(au_id_t auid, uid_t euid, gid_t egid,
uid_t ruid, gid_t rgid, pid_t pid, au_asid_t sid, au_tid_t *tid);


token_t *au_to_subject_ex(au_id_t auid, uid_t euid, gid_t egid,
uid_t ruid, gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid);


token_t *au_to_text(char *text);


DESCRIPTION


The au_to_arg(), au_to_arg32(), and au_to_arg64() functions format the
data in v into an "argument token". The n argument indicates the argument
number. The text argument is a null-terminated string describing the
argument.


The au_to_attr() function formats the data pointed to by attr into a
"vnode attribute token".


The au_to_cmd() function formats the data pointed to by argv into a
"command token". A command token reflects a command and its parameters as
entered. For example, the pfexec(1) utility uses au_to_cmd() to record
the command and arguments it reads from the command line.


The au_to_data() function formats the data pointed to by p into an
"arbitrary data token". The unit_print parameter determines the preferred
display base of the data and is one of AUP_BINARY, AUP_OCTAL,
AUP_DECIMAL, AUP_HEX, or AUP_STRING. The unit_type parameter defines
the basic unit of data and is one of AUR_BYTE, AUR_CHAR, AUR_SHORT,
AUR_INT, or AUR_LONG. The unit_count parameter specifies the number of
basic data units to be used and must be positive.


The au_to_groups() function formats the array of 16 integers pointed to
by groups into a "groups token". The au_to_newgroups() function (see
below) should be used in place of this function.


The au_to_in_addr() function formats the data pointed to by internet_addr
into an "internet address token".


The au_to_ipc() function formats the data in the id parameter into an
"interprocess communications ID token".


The au_to_iport() function formats the data pointed to by iport into an
"ip port address token".


The au_to_me() function collects audit information from the current
process and creates a "subject token" by calling au_to_subject().


The au_to_newgroups() function formats the array of n integers pointed
to by groups into a "newgroups token". This function should be used in
place of au_to_groups().


The au_to_opaque() function formats the bytes bytes pointed to by data
into an "opaque token". The value of size must be positive.


The au_to_path() function formats the path name pointed to by path into a
``path token.''


The au_to_process() function formats an auid (audit user ID), an euid
(effective user ID), an egid (effective group ID), a ruid (real user ID),
a rgid (real group ID), a pid (process ID), an sid (audit session ID),
and a tid (audit terminal ID containing an IPv4 IP address), into a
"process token". A process token should be used when the process is the
object of an action (ie. when the process is the receiver of a signal).
The au_to_process_ex() function (see below) should be used in place of
this function.


The au_to_process_ex() function formats an auid (audit user ID), an euid
(effective user ID), an egid (effective group ID), a ruid (real user ID),
a rgid (real group ID), a pid (process ID), an sid (audit session ID),
and a tid (audit terminal ID containing an IPv4 or IPv6 IP address), into
a "process token". A process token should be used when the process is
the object of an action (that is, when the process is the receiver of a
signal). This function should be used in place of au_to_process().


The au_to_return(), au_to_return32(), and au_to_return64() functions
format an error number number and a return value value into a "return
value token".


The au_to_socket() function format the data pointed to by so into a
``socket token.''


The au_to_subject() function formats an auid (audit user ID), an euid
(effective user ID), an egid (effective group ID), a ruid (real user ID),
an rgid (real group ID), a pid (process ID), an sid (audit session ID),
an tid (audit terminal ID containing an IPv4 IP address), into a "subject
token". The au_to_subject_ex() function (see below) should be used in
place of this function.


The au_to_subject_ex() function formats an auid (audit user ID), an euid
(effective user ID), an egid (effective group ID), a ruid (real user ID),
an rgid (real group ID), a pid (process ID), an sid (audit session ID),
an tid (audit terminal ID containing an IPv4 or IPv6 IP address), into a
"subject token". This function should be used in place of
au_to_subject().


The au_to_text() function formats the null-terminated string pointed to
by text into a "text token".

RETURN VALUES


These functions return NULL if memory cannot be allocated to put the
resultant token into, or if an error in the input is detected.

ATTRIBUTES


See attributes(7) for a description of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Stable |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+

SEE ALSO


au_open(3BSM), attributes(7)

March 6, 2017 AU_TO(3BSM)