auditobj, Subroutine
Zweck
Ruft den Überwachungsmodus eines Systemdatenobjekts ab oder legt ihn fest.
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
#include <sys/audit.h>
Beschreibung
Die Subroutine auditobj fragt die zu generierenden Prüfereignisse ab oder legt sie fest, indem sie auf ausgewählte Objekte zugreift. Für jedes Objekt im Namensbereich des Dateisystems kann das für jeden Zugriffsmodus generierte Ereignis angegeben werden. Mit der Subroutine auditobj kann ein Administrator neue Prüfereignisse im System für Zugriffe auf angegebene Objekte definieren. Diese Ereignisse werden wie systemdefinierte Ereignisse behandelt.
Die Systemprotokollierung muss nicht aktiviert sein, damit die Objektprotokollierungsereignisse festgelegt oder abgefragt werden können. Die Subroutine audit kann mit dem AUDIT_RESET -Befehl angewiesen werden, die Definitionen von Objektprüfereignissen zu löschen.
Parameter
| Element | Beschreibung |
|---|---|
| Befehl | Gibt an, ob die Objektprüfereignislisten gelesen oder geschrieben werden sollen Die gültigen Werte, die in der Datei sys/audit.h für den Parameter Befehl definiert sind, sind:
|
| Objektereignisse | Gibt das Array von o_event -Strukturen für die Operation AUDIT_SET oder nach der Operation AUDIT_GET oder AUDIT_LOCK an. Die Struktur o_event ist in der Datei sys/audit.h definiert und enthält die folgenden Member:
Hinweis: Der C + + -Compiler generiert eine Warnung, die angibt, dass o_event sowohl als Struktur als auch als Feld in dieser Struktur definiert ist. Obwohl das Feld o_event in C++ verwendet werden kann, kann die Warnung umgangen werden, indem O_EVENT_RENAMEdefiniert wird. Dadurch wird das Feld o_event durch o_event_arrayersetzt. o_event ist das Standardfeld.
|
| ObjSize | Bei einer AUDIT_SET -Operation gibt der Parameter ObjSize die Anzahl der Objektprüfereignisdefinitionen in dem Array an, auf das der Parameter Obj_Events verweist. Bei einer AUDIT_GET -oder AUDIT_LOCK -Operation gibt der -ParameterObjSize die Größe des Puffers an, auf den der Parameter Objekt_Ereignisse verweist. |
Rückgabewerte
Wenn die Subroutine auditobj erfolgreich ausgeführt wird, wird die Anzahl der Ereignisdefinitionen für die Objektprüfung zurückgegeben, wenn der Parameter Befehl auf AUDIT_GET oder AUDIT_LOCKgesetzt ist. Der Wert 0 wird zurückgegeben, wenn der Parameter Befehl auf AUDIT_SETgesetzt ist. Wenn dieser Aufruf fehlschlägt, wird der Wert -1 zurückgegeben und die globale Variable errno gesetzt, um den Fehler anzuzeigen.
Fehlercodes
Die Subroutine auditobj schlägt fehl, wenn eine der folgenden Bedingungen zutrifft:
| Element | Beschreibung |
|---|---|
| EFAULT | Der Parameter Obj_Events verweist außerhalb des Adressraums des Prozesses. |
| EFAULT | Der Parameter Befehl ist AUDIT_SETund einer oder mehrere dero_namezeigt außerhalb des Adressraums des Prozesses. |
| EFAULT | Der Parameter Befehl ist AUDIT_GET oder AUDIT_LOCKund die Puffergröße des Parameters Obj_Events ist nicht groß genug, um die ganze Zahl aufzunehmen. |
| EINVAL | Der Wert des Parameters Befehl ist nicht AUDIT_SET, AUDIT_GET oder AUDIT_LOCK. |
| EINVAL | Der Parameter Befehl ist AUDIT_SETund der Wert eines oder mehrerer dero_typeist nicht AUDIT_FILE. |
| EINVAL | Ein Ereignisname war länger als 15 signifikante Zeichen. |
| ENOENT | Der Parameter Befehl ist AUDIT_SETund das übergeordnete Verzeichnis eines der Dateisystemobjekte ist nicht vorhanden. |
| ENOSPC | Der Wert des Parameters Befehl ist AUDIT_GET oder AUDIT_LOCKund die Größe des Puffers, wie durch den Parameter ObjSize angegeben, ist nicht groß genug, um die Liste der Ereignisstrukturen und Namen aufzunehmen. In diesem Fall wird das erste Wort des Puffers auf die erforderliche Puffergröße gesetzt. |
| ENOMEM | Hauptspeicherzuordnung fehlgeschlagen. |
| EBUSY | Ein anderer Prozess hat die Subroutine auditobj mit AUDIT_LOCKaufgerufen. |
| EPERM | Der Aufrufende hat keine Rootberechtigung. |