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:
0
Gibt den Fachheader an.
1
Gibt das Ende des Fachs (Nachsatz) an
2
Gibt das Ende der Spur an.
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:
AUDIT_DATEI
Gibt den Namensbereich des Dateisystems an.
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:
  • AUDIT_READ
  • AUDIT_WRITE (AUDIT_WRITE)
  • AUDIT_EXEC
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:
0
Erfolgreiche Ausführung.
1
Zeigt einen Fehler an.
>1
Ein errno -Wert, der den Fehler beschreibt.

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.