Sous-routine auditproc

Objectif

Extrait ou définit l'état d'audit d'un processus.

Bibliothèque

Bibliothèque C standard (libc.a)

Syntaxe

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

Descriptif

La sous-routine auditproc interroge ou définit l'état d'audit d'un processus. L'état d'audit d'un processus comporte deux parties:

  • Liste des classes à auditer pour ce processus. Les classes sont définies par la sous-routine auditevents . Chaque classe inclut un ensemble d'événements d'audit. Lorsqu'un processus provoque un événement d'audit, cet événement peut être consigné dans la trace d'audit s'il est inclus dans une ou plusieurs des classes d'audit du processus.
  • Statut d'audit du processus. L'audit d'un processus peut être suspendu ou repris. Les fonctions qui génèrent un enregistrement d'audit peuvent d'abord vérifier si l'audit est suspendu. Si l'audit de processus est suspendu, aucun événement d'audit n'est consigné pour un processus. Pour plus d'informations, voir la sous-routine auditlog .

Paramètres

Article Descriptif
ProcessID ID du processus à affecter. Si ProcessID a pour valeur 0, la sous-routine auditproc affecte le processus en cours.
Commande Action à entreprendre. Définies dans le fichier audit.h , les valeurs valides sont les suivantes:
AUDIT_KLIST_EVENTS
Définit la liste des classes d'audit à auditer pour le processus, ainsi que la définition des classes d'audit par défaut de l'utilisateur dans le noyau. Le paramètre Argument est un pointeur vers une liste de noms de classe d'audit terminés par une valeur nulle. Le paramètre Longueur correspond à la longueur de cette liste, y compris les octets nuls.
AUDIT_QEVENTS
Renvoie la liste des classes d'audit définies pour le processus en cours si ProcessID a pour valeur 0. Sinon, elle renvoie la liste des classes d'audit définies pour l'ID de processus spécifié. Le paramètre Argument est un pointeur vers une mémoire tampon de caractères. Le paramètre Longueur indique la taille de cette mémoire tampon. En cas de retour, cette mémoire tampon contient une liste de noms de classe d'audit terminés par une valeur nulle. Un nom null met fin à la liste.
ÉVÉNEMENTS_AUDIT
Définit la liste des classes d'audit à auditer pour le processus. Le paramètre Argument est un pointeur vers une liste de noms de classe d'audit terminés par une valeur nulle. Le paramètre Longueur correspond à la longueur de cette liste, y compris les octets nuls.
AUDIT_QSTATUS
Renvoie le statut d'audit du processus en cours. Vous pouvez uniquement vérifier le statut du processus en cours. Si le paramètre ProcessID est différent de zéro, la valeur -1 est renvoyée et la variable globale errno prend la valeur EINVAL. Les paramètres Length et Argument sont ignorés. La valeur de retour AUDIT_SUSPEND indique que l'audit est suspendu. La valeur de retour AUDIT_RESUME indique un audit normal pour ce processus.
STATU_AUDIT_STATUS
Définit le statut d'audit du processus en cours. Le paramètre Length est ignoré et le paramètre ProcessID doit avoir la valeur zéro. Si Argument a pour valeur AUDIT_SUSPEND, le statut d'audit est défini pour interrompre l'audit d'événement pour ce processus. Si le paramètre Argument est AUDIT_RESUME, le statut d'audit est défini pour reprendre l'audit d'événement pour ce processus.
Argument Un pointeur de caractère pour la mémoire tampon de classe d'audit pour une valeur AUDIT_EVENT ou AUDIT_QEVENTS du paramètre Command ou un entier définissant le statut d'audit à définir pour une opération AUDIT_STATUS .
Length Taille de la mémoire tampon de caractères de la classe d'audit.

Valeurs renvoyées

La sous-routine auditproc renvoie les valeurs suivantes lorsqu'elle aboutit:

  • Statut d'audit précédent (AUDIT_SUSPEND ou AUDIT_RESUME), si l'appel a demandé ou défini le statut d'audit (le paramètre Commande a spécifié AUDIT_QSTATUS ou AUDIT_STATUS)
  • Valeur 0 si l'appel a demandé ou défini des événements d'audit (le paramètre Command a spécifié AUDIT_QEVENTS ou AUDIT_EVENTS)

Codes d'erreur

Si la sous-routine auditproc échoue si une ou plusieurs des conditions suivantes sont remplies:

Article Descriptif
EINVAL Une valeur non valide a été spécifiée pour le paramètre Commande .
EINVAL Le paramètre Commande est défini sur la valeur AUDIT_QSTATUS ou AUDIT_STATUS et la valeur pid est différente de zéro.
EINVAL Le paramètre Commande est défini sur la valeur AUDIT_STATUS et le paramètre Argument n'est pas défini sur AUDIT_SUSPEND ou AUDIT_RESUME.
ENOSPC Le paramètre Commande est AUDIT_QEVENTSet la taille de la mémoire tampon est insuffisante. Dans ce cas, le premier mot du paramètre Argument est défini sur la taille requise.
EFAULT Le paramètre Commande est AUDIT_QEVENTS ou AUDIT_EVENTS et le paramètre Argument pointe vers un emplacement en dehors de l'espace adresse alloué au processus.
ENOMEM Echec d'allocation de mémoire.
EPERM L'appelant ne dispose pas des droits d'accès de l'utilisateur root.