subrutina auditproc

Finalidad

Obtiene o establece el estado de auditoría de un proceso.

Biblioteca

Biblioteca C estándar (libc.a)

Sintaxis

#include <sys/audit.h>
int auditproc (ProcessIDCommandArgumentLength)
int  ProcessID;
int  Command;
char *  Argument;
int  Length;

Descripción

La subrutina auditproc consulta o establece el estado de auditoría de un proceso. Hay dos partes en el estado de auditoría de un proceso:

  • La lista de clases que se auditarán para este proceso. Las clases se definen mediante la subrutina auditevents . Cada clase incluye un conjunto de sucesos de auditoría. Cuando un proceso provoca un suceso de auditoría, dicho suceso se puede registrar en el seguimiento de auditoría si se incluye en una o más de las clases de auditoría del proceso.
  • Estado de auditoría del proceso. La auditoría de un proceso puede suspenderse o reanudarse. Las funciones que generan un registro de auditoría pueden comprobar primero si la auditoría está suspendida. Si la auditoría de proceso está suspendida, no se registran sucesos de auditoría para un proceso. Para obtener más información, consulte la subrutina auditlog .

Parámetros

Elemento Descripción
ProcessID El ID de proceso del proceso que se verá afectado. Si ProcessID es 0, la subrutina auditproc afecta al proceso actual.
Mandato La acción que debe llevarse a cabo. Definidos en el archivo audit.h , los valores válidos son:
AUDIT_KLIST_EVENTS
Establece la lista de clases de auditoría que se auditarán para el proceso y también establece la definición de clases de auditoría predeterminada del usuario dentro del kernel. El parámetro Argument es un puntero a una lista de nombres de clase de auditoría terminados en nulo. El parámetro Longitud es la longitud de esta lista, incluidos los bytes nulos.
AUDIT_QEVENTS
Devuelve la lista de clases de auditoría definidas para el proceso actual si ProcessID es 0. De lo contrario, devuelve la lista de clases de auditoría definidas para el ID de proceso especificado. El parámetro Argumento es un puntero a un almacenamiento intermedio de caracteres. El parámetro Longitud especifica el tamaño de este almacenamiento intermedio. Cuando se devuelve, este almacenamiento intermedio contiene una lista de nombres de clase de auditoría terminados en nulo. Un nombre nulo termina la lista.
AUDIT_EVENTS
Establece la lista de clases de auditoría que se auditarán para el proceso. El parámetro Argument es un puntero a una lista de nombres de clase de auditoría terminados en nulo. El parámetro Longitud es la longitud de esta lista, incluidos los bytes nulos.
AUDIT_QSTATUS
Devuelve el estado de auditoría del proceso actual. Sólo puede comprobar el estado del proceso actual. Si el parámetro ProcessID es distinto de cero, se devuelve -1 y la variable global errno se establece en EINVAL. Los parámetros Length y Argument se ignoran. Un valor de retorno de AUDIT_SUSPEND indica que la auditoría está suspendida. Un valor de retorno de AUDIT_RESUME indica una auditoría normal para este proceso.
ESTADO_AUDITORÍA
Establece el estado de auditoría del proceso actual. El parámetro Longitud se ignora y el parámetro ProcessID debe ser cero. Si Argumento es AUDIT_SUSPEND, el estado de auditoría se establece para suspender la auditoría de sucesos para este proceso. Si el parámetro Argumento es AUDIT_RESUME, el estado de auditoría se establece para reanudar la auditoría de sucesos para este proceso.
Argumento Puntero de caracteres para el almacenamiento intermedio de clase de auditoría para un valor AUDIT_EVENT o AUDIT_QEVENTS del parámetro Mandato o un entero que define el estado de auditoría que se establecerá para una operación AUDIT_STATUS .
longitud Tamaño del almacenamiento intermedio de caracteres de clase de auditoría.

Valores de retorno

La subrutina auditproc devuelve los valores siguientes cuando se completa correctamente:

  • El estado de auditoría anterior (AUDIT_SUSPEND o AUDIT_RESUME), si la llamada ha consultado o establecido el estado de auditoría (el parámetro Mandato ha especificado AUDIT_QSTATUS o AUDIT_STATUS)
  • Un valor de 0 si la llamada ha consultado o establecido sucesos de auditoría (el parámetro Mandato ha especificado AUDIT_QEVENTS o AUDIT_EVENTS)

Códigos de error

Si la subrutina auditproc falla si se cumple una o más de las siguientes condiciones:

Elemento Descripción
EINVAL Se ha especificado un valor no válido para el parámetro Mandato .
EINVAL El parámetro Mandato se establece en el valor AUDIT_QSTATUS o AUDIT_STATUS y el valor pid es distinto de cero.
EINVAl El parámetro Mandato se establece en el valor AUDIT_STATUS y el parámetro Argument no se establece en AUDIT_SUSPEND o AUDIT_RESUME.
ENOSPC El parámetro Mandato es AUDIT_QEVENTSy el tamaño del almacenamiento intermedio es insuficiente. En este caso, la primera palabra del parámetro Argument se establece en el tamaño necesario.
EFAULT El parámetro Mandato es AUDIT_QEVENTS o AUDIT_EVENTS y el parámetro Argument apunta a una ubicación fuera del espacio de direcciones asignado del proceso.
ENOMEM Ha fallado la asignación de memoria.
EPERM El llamante no tiene autorización de usuario root.