HP-UX Reference (11i v2 07/12) - 3 Library Functions A-M (vol 6)
g
getauduser(3) getauduser(3)
NAME
getauduser - retrieve the accountable user for the current process
SYNOPSIS
#include <sys/audit.h>
int getauduser(char *user, char *stime, size_t usize, size_t
tsize);
DESCRIPTION
getauduser() retrieves the accountable user for the current process and saves the information into the
buffer pointed to by user. It also retrieves the time of authentication and saves it into the buffer pointed to
by stime, if the information is available. Caller must set usize and tsize to the size of the user and the stime
buffers. Note that the two buffers are always null terminated, even if it results in loss of some data.
Programs using this routine must be compiled with
-lsec.
Security Restrictions
This call requires the user be superuser or possess
SELFAUDIT privilege. See privileges(5) for details.
RETURN VALUE
getauduser() returns the following values:
n Successful completion. n is the length of the retrieved login name, excluding the null byte. If n
is less than usize, the login name is retrieved without truncation. Otherwise, usize -1 bytes of
login name are copied into user, and user is null terminated. The caller needs to retry
getauduser() with a larger buffer.
-1 Failure. errno is set to indicate the error.
ERRORS
If getauduser fails, errno is set to one of the following values:
[EPERM] The caller is not a superuser or a privileged process.
[EINVAL] The size of stime buffer is smaller than
MAX_TIME_LEN+1. See <sys/audit.h>.
[EILSEQ] Unrecognized audit tag.
EXAMPLES
char user[256], time[MAX_TIME_LEN+1];
int n;
if ((n=getauduser(user, time, sizeof(user), sizeof(time))) == -1) {
non_overflow_errors();
} else if (n >= sizeof(user)) {
overflow_error();
}
AUTHOR
getauduser() was developed by HP.
The return values and null padding semantics for this function are chosen such that a chance for buffer
overflows in a C program is minimized. These semantics were inspired by snprintf() of C99 and
strlcpy() and strlcat() as they appeared in OpenBSD.
SEE ALSO
getaudid(2), setaudid(2), setauduser(3), audit(5), privileges(5).
468 Hewlett-Packard Company − 1 − HP-UX 11i Version 2: December 2007 Update