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)

tribblix@gmail.com :: GitHub :: Privacy