Prüfdateiformat
Zweck
Beschreibt die Prüfdatenstrukturen.
Beschreibung
Die Datei /usr/include/sys/audit.h enthält Struktur-und Konstantendefinitionen für die Prüfsystembefehle, Subroutinen und Dämonen:
Format des Prüffachs
Das Format des Prüfbins wird durch die Struktur aud_bin beschrieben. Ein Prüfprotokoll besteht aus einer Folge von Klassen, von denen jede mit einem Klassenkopf beginnen und mit einem Klassenende enden muss. Die Struktur aud_bin enthält die folgenden Felder:
| Element | Beschreibung |
|---|---|
| bin_magic | Der Dateitypanzeiger für die Klasse (0xf0f0). |
| bin_version | Die Versionsnummer für das Fach (0). |
| bin_tail | Gibt an, ob das Fach den Prüfprotokollkopf oder -nachsatz beschreibt:
|
| bin_len | Die (ungepackte) Länge der Datensätze des Behälters. Ein Wert ungleich null gibt an, dass das Fach einen Nachsatz hat. |
| bin_plen | Die aktuelle Länge des Fachdatensatzes (möglicherweise gepackt). |
| bin_time | Die Zeit, zu der der Kopf oder Schwanz geschrieben wurde |
| bin_reserved1 | Derzeit nicht verwendet. |
| bin_reserved2 | Derzeit nicht verwendet. |
Prüfklassenformat
Das Format der Prüfklasse wird von der Struktur audit_class beschrieben, die die folgenden Felder enthält:
| Element | Beschreibung |
|---|---|
| ae_name | Ein Zeiger auf den Namen der Prüfklasse. |
| ae_list | Ein Zeiger auf eine Liste mit auf null endenden Prüfereignisnamen für diese Prüfklasse. Die Liste wird durch einen Nullnamen beendet (ein führendes Nullbyte oder zwei aufeinanderfolgende Nullbyte). Hinweis: Ereignis-und Klassennamen sind auf 15 signifikante Zeichen begrenzt.
|
| ae_len | Die Länge der Ereignisliste in derae_listMitglied. Diese Länge schließt die abschließenden Nullbytes ein. Bei einer AUDIT_SET -Operation muss der Aufrufende dieses Member festlegen, um die tatsächliche Länge der Liste (in Byte) anzugeben, auf die verwiesen wird.ae_listBei einer Operation AUDIT_GET oder AUDIT_LOCK legt die Subroutine auditevents dieses Member fest, um die tatsächliche Größe der Liste anzugeben. |
Audit-Objektformat
Das Format des Prüfobjekts wird von der Struktur o_event beschrieben, die die folgenden Felder enthält:
| Element | Beschreibung |
|---|---|
| o_type | Gibt den Typ des Objekts in Form eines Namensbereichs an. Derzeit wird nur ein Objektbenennungsbereich unterstützt:
|
| o_name | Gibt den Namen des Objekts an |
| o_event | Gibt ein Array von Ereignisnamen an, die generiert werden, wenn auf das Objekt zugegriffen wird. Beachten Sie, dass Ereignisnamen derzeit auf 16 Byte beschränkt sind, einschließlich der abschließenden Null. Der Index eines Ereignisnamens in diesem Array entspricht einem Zugriffsmodus. Gültige Indizes sind in der Datei audit.h definiert und umfassen Folgendes:
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.
|
Prüfsatzformat
Jeder Prüfsatz besteht aus einer Liste von Ereignis-IDs fester Länge, auf die jeweils ein Nachsatz variabler Länge folgen kann. Das Format des Prüfsatzes wird durch die Struktur aud_rec beschrieben, die die folgenden Felder zum Identifizieren des Ereignisses enthält.
| Element | Beschreibung |
|---|---|
| ah_magic | Dateitypanzeiger für Prüfsatz. |
| ah_length | Die Länge des Endabschnitts des Prüfsatzes. |
| ah_event[16] | Der Name des Ereignisses und ein Nullabschlusszeichen. |
| ah_result | Gibt an, ob das Ereignis eine erfolgreiche Operation beschreibt. Die Werte für dieses Feld sind:
|
Die aud_rec -Struktur enthält außerdem die folgenden Felder zur Identifizierung des Benutzers und des Prozesses:
| Element | Beschreibung |
|---|---|
| ah_ruid | Die reale Benutzer-ID, d. h. die ID-Nummer des Benutzers, der den Prozess erstellt hat, der diesen Datensatz geschrieben hat. |
| ah_luid | Die Anmelde-ID des Benutzers, der den Prozess erstellt hat, der diesen Datensatz geschrieben hat. |
| ah_name[16] | Der Programmname des Prozesses zusammen mit einem Nullabschlusszeichen. |
| ah_pid | Die Prozess-ID des Prozesses, der diesen Datensatz geschrieben hat. |
| ah_ppid | Die Prozess-ID des übergeordneten Elements dieses Prozesses. |
| ah_time | Die Zeit in Sekunden, zu der dieser Prüfsatz geschrieben wurde. |
| ah_ntime | Der Offset in Nanosekunden vonah_time. |
Der Datensatznachsatz folgt diesen Headerinformationen.