Anwendungsbereich: | SECURITY-ADMINISTRATION |
Privilegierung: | SECURITY-ADMINISTRATION |
Mit dem Kommando /MODIFY-SAT-FILTER-CONDITIONS kann eine bestehende Filterdefinition (/ADD-FILTER-CONDITIONS) geändert werden.
MODIFY-SAT-FILTER-CONDITIONS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NAME = <name 1..8> Name des Filters.
SELECT = *PARAMETERS(...)
Definiert, welche der bestehenden Bedingungen geändert werden sollen.
EVENT-NAME = *UNCHANGED / *ALL / list-poss(50): <name 3..3>(...) ´
Art und Resultat der Ereignisse, die die Filterbedingung erfüllen.
EVENT-NAME = *ALL
Alle von SAT registrierbaren Ereignisse erfüllen die Filterbedingung.
EVENT-NAME = list-poss(50): <name 3..3>(...)Expliziter Name eines Ereignisses. Der Name des Ereignisses muss der „Tabelle der Objektereignisse“ entnommen sein.
SELECT-SWITCH =
Spezifiziert, ob das Ereignis hinzugefügt oder entfernt werden soll.
SELECT-SWITCH = *ON(...)
Ereignis und Ergebnis werden zu der Filterdefinition hinzugefügt.
RESULT = *ALL / *SUCCESS / *FAILURE
Spezifiziert, welches Ergebnis das Ereignis haben muss.
SELECT-SWITCH = *OFF
Das Ereignis wird aus der Filterdefinition entfernt.
USER-IDENTIFICATION = *UNCHANGED / *ALL / list-poss(50): <name 1..8>(...)
Gibt an, welche Benutzerkennungen die Filterbedingung erfüllen.
USER-IDENTIFICATION = *ALL
Jede Benutzerkennung erfüllt die Filterbedingung.
USER-IDENTIFICATION = list-poss(50): <name 1..8>(...)
Nur Ereignisse, die die angegebenen Benutzerkennungen betreffen, erfüllen die Filterbedingung. Die Benutzerkennungen müssen zum Zeitpunkt der Definition der Filterbedingung dem System nicht bekannt sein.
SELECT-SWITCH =
Spezifiziert, ob die Benutzerkennung hinzugefügt oder entfernt werden soll.
SELECT-SWITCH = *ON
Die Kennung wird zur Filterdefinition hinzugefügt.
SELECT-SWITCH = *OFF
Die Kennung wird aus der Filterdefinition entfernt.
FIELD-NAME = *UNCHANGED / *ALL / list-poss(50): <name 3..7>(...)
Spezifiziert, welches Datenfeld eines Ereignisses geprüft werden soll. Die Tabelle der möglichen Feldnamen findet sich in der „Tabellen der protokollierbaren Information je Objektereignis (1)“.
FIELD-NAME = *ALL
Alle Datenfelder eines Ereignisses erfüllen die Filterbedingung.
FIELD-NAME = list-poss(50): <name 3..7>(...)
Es wird ein Datenfeld spezifiziert.
SELECT-SWITCH =
Ereignisse werden der Definition hinzugefügt oder aus ihr entfernt, wenn die zugehörige Information einen mit dem Operanden VALUE festgelegten Wert hat. Die Tabelle der Feldnamen und der dort ausgegebenen Information findet sich in der „Tabellen der protokollierbaren Information je Objektereignis (1)“. <text> hängt vom protokollierten Datenfeld ab.
SELECT-SWITCH = *ON(...)
Fügt zu prüfende Informationen der Filterdefinition hinzu.
VALUE = *ALL
Jede Information erfüllt die Filterbedingung.
VALUE = *MATCH(...)
Angabe eines Musters für die Information. Die Bedingung ist gültig, wenn der Vergleichswert in dieses Muster passt. Die Muster-Angabe ist nur für Feldnamen erlaubt, deren Werte eine Zeichenkette darstellen (<c-string>, <filename>, <name>).
PATTERN = <text>
Muster-Angabe im Format c-string 1..255, wobei analog zum SDF-Datentyp <c-string with-wild (n)> Teile der Zeichenfolge durch Platzhalter (wild-cards) ersetzt werden können.
Die zur Verfügung stehenden Wildcard-Zeichen sind:
* | Ersetzt eine beliebige, auch leere Zeichenfolge. |
/ | Ersetzt genau ein beliebiges Zeichen. |
\ | Entwertet Platzhalter (* / < > : ,) in einer Zeichenfolge (z.B. ab\*c bezeichnet die Zeichenfolge „ab*c“). |
<sx:sy> | Ersetzt eine Zeichenfolge für die gilt:
|
| |
<s1,... > | Ersetzt alle Zeichenfolgen, auf die eine der mit s angegebenen Zeichenkombinationen zutrifft. s kann auch eine leere Zeichenfolge sein. Jede Zeichenfolge s kann auch eine Bereichsangabe <sx:sy> sein. |
VALUE = *NOT-MATCH(...)
Angabe eines Musters für die Information. Die Bedingung ist gültig, wenn der Vergleichswert nicht in dieses Muster passt. Die Muster-Angabe ist nur für Feldnamen erlaubt, deren Werte eine Zeichenkette darstellen (<c-string>, <filename>, <name>).
PATTERN = <text>
Musterangabe wie bei VALUE=*MATCH.
VALUE = list-poss(10):<text>
Die explizit angegebene Information für das Feld erfüllt die Filterbedingung.
VALUE = list-poss(10): <integer 0..2147483647>(...)
Die explizit in Form eines Zahlenwertes angegebene Information für das Feld erfüllt die Filterbedingung. Diese Angabe ist nur für Feldnamen erlaubt, deren Werte vom Typ <integer> sind.
UNIT = *BYTES / *KB / *MB / *GB
Angabe der Maßeinheit, in der die mit dem Operanden VALUE vorgenommene Wertangabe zu interpretieren ist. Diese Angabe ist nur für die Feldnamen filpos, curlim2 und maxlim2 erlaubt.
Dabei gilt Folgendes:
Falls implizit oder explizit UNIT=*BYTES festgelegt ist, muss der Wert ein Vielfaches von 512 sein.
Der Maximalwert von 240-512 (=1 099 511 627 264) Bytes darf auch nicht überschritten werden, wenn UNIT=*KB / *MB / *GB angegeben ist. Damit ergeben sich abhängig von der UNIT-Angabe folgende Maximalwerte:
UNIT=
Maximalwert bei VALUE
entspricht in Bytes
*BYTES
231-1 = 2 147 483 647
231-1 = 2 147 483 647
*KB
230-1 = 1 073 741 823
240-210 = 1 099 511 626 752
*MB
220-1 = 1 048 575
240-220 = 1 099 510 579 200
*GB
210-1 = 1 023
240-230 = 1 098 437 885 952
SELECT-SWITCH = *OFF(...)
Entfernt Ereignisse aus der Filterdefinition.
VALUE = *ALL
Jede Information wird aus der Filterdefinition entfernt.
VALUE = *MATCH(...)
Angabe eines Musters für die Information. Die Bedingung ist gültig, wenn der Vergleichswert in dieses Muster passt. Die Muster-Angabe ist nur für Feldnamen erlaubt, deren Werte eine Zeichenkette darstellen (<c-string>, <filename>, <name>).
PATTERN = <text>
Muster-Angabe im Format c-string 1..255, wobei analog zum SDF-Datentyp <c-string with-wild (n)> Teile der Zeichenfolge durch Platzhalter (wild-cards) ersetzt werden können.
Die zur Verfügung stehenden Wildcard-Zeichen sind:
* | Ersetzt eine beliebige, auch leere Zeichenfolge. |
/ | Ersetzt genau ein beliebiges Zeichen. |
\ | Entwertet Platzhalter (* / < > : ,) in einer Zeichenfolge (z.B. ab\*c bezeichnet die Zeichenfolge „ab*c“). |
<sx:sy> | Ersetzt eine Zeichenfolge für die gilt:
|
| |
<s1,... > | Ersetzt alle Zeichenfolgen, auf die eine der mit s angegebenen Zeichenkombinationen zutrifft. s kann auch eine leere Zeichenfolge sein. Jede Zeichenfolge s kann auch eine Bereichsangabe <sx:sy> sein. |
VALUE = *NOT-MATCH(...)
Angabe eines Musters für die Information. Die Bedingung ist gültig, wenn der Vergleichswert nicht in dieses Muster passt. Die Muster-Angabe ist nur für Feldnamen erlaubt, deren Werte eine Zeichenkette darstellen (<c-string>, <filename>, <name>).
PATTERN = <text>
Musterangabe wie bei VALUE=*MATCH.
VALUE = list-poss(10): <text>
Die explizit angegebene Information für das Feld wird aus der Filterdefinition entfernt.
VALUE = list-poss(10): <integer 0..2147483647>(...)
Die explizit in Form eines Zahlenwertes angegebene Information für das Feld wird aus der Filterdefinition entfernt. Diese Angabe ist nur für Feldnamen erlaubt, deren Werte vom Typ <integer> sind.
UNIT = *BYTES / *KB / *MB / *GB
Angabe der Maßeinheit, in der die mit dem Operanden VALUE vorgenommene Wertangabe zu interpretieren ist. Diese Angabe ist nur für die Feldnamen filpos, curlim2 und maxlim2 erlaubt.
Dabei gilt Folgendes:
Falls implizit oder explizit UNIT=*BYTES festgelegt ist, muss der Wert ein Vielfaches von 512 sein.
Der Maximalwert von 240-512 (=1 099 511 627 264) Bytes darf auch nicht überschritten werden, wenn UNIT=*KB / *MB / *GB angegeben ist. Damit ergeben sich abhängig von der UNIT-Angabe folgende Maximalwerte:
UNIT=
Maximalwert bei VALUE
entspricht in Bytes
*BYTES
231-1 = 2 147 483 647
231-1 = 2 147 483 647
*KB
230-1 = 1 073 741 823
240-210 = 1 099 511 626 752
*MB
220-1 = 1 048 575
240-220 = 1 099 510 579 200
*GB
210-1 = 1 023
240-230 = 1 098 437 885 952
TRIGGER-ACTION = *UNCHANGED / *LOGGING(...)
Gibt an, welche Aktion ausgeführt werden soll, wenn die mit dem Operanden SELECT festgelegte Bedingung erfüllt ist.
TRIGGER-ACTION = *LOGGING(...)
Angabe, ob ein Ereignis protokolliert werden soll.
RECORDING = *YES
Das Ereignis wird protokolliert.
RECORDING = *NO
Das Ereignis wird nicht protokolliert, sofern keine andere Filterbedingung die Protokollierung verlangt.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Kommando erfolgreich ausgeführt | |
32 | SAT 0000 | Nicht behebbarer Fehler | |
64 | SAT1000 | Benutzer für Kommando nicht privilegiert | |
64 | SAT1020 | Ereignis in Ereignisliste bereits vorhanden | |
64 | SAT1022 | Feld bereits in Feldliste vorhanden | |
64 | SAT1023 | Feld hat doppelte Werte | |
64 | SAT1029 | Ereignis unbekannt | |
64 | SAT1030 | Benutzer in Benutzerliste bereits vorhanden | |
64 | SAT1031 | Filter unbekannt | |
64 | SAT1035 | Wert ist kein Vielfaches von 512 oder zu groß | |
64 | SAT1050 | Kommando nur erlaubt, wenn Logging-Funktion aktiviert | |
128 | SAT1010 | Anderes Kommando wird derzeit ausgeführt | |
128 | SAT1080 | Wechsel in Vorbereitung |
Hinweise
Bei der Verwendung von Mustern für Werte eines Feldes wird nicht geprüft, ob es zu Überschneidungen kommt.
Identische Musterangaben für einen Wert eines Feldes werden ersetzt.
Beispiele
Eine Filterbedingung sei folgendermaßen definiert:
/add-sat-filter-conditions name=filter1, ... -
/ field-name=filname(value=*match('*abc*')), ...Das Kommando
/modify-sat-filter-conditions name=filter1, ... -/ field-name=filname( -/ select-switch=*on(value=*not-match('*abc*'))), ...überschreibt das Vergleichsmuster. Die Wirkung ist so, als ob die Bedingung auf folgende Weise festgelegt worden wäre:
/add-sat-filter-conditions name=filter1, ... -/ field-name=filname(value=*not-match('*abc*')), ...Sowohl die Angabe SELECT-SWITCH=*OFF(VALUE=*MATCH('*ABC*')) als auch SELECT-SWITCH=*OFF(VALUE=*NOT-MATCH('*ABC*')) entfernen *MATCH('*ABC*') aus der Werteliste.
Die Angabe eines festen Wertes hat keinen Einfluss auf eine Musterangabe.
Beispielsweise hat ein /MODIFY-SAT-FILTER-CONDITIONS-Kommando mit der Angabe VALUE='XABCY' keinen Einfluss auf eine Filterbedingung, die mit VALUE=*MATCH('*ABC*')) festgelegt wurde. Der Wert ’XABCY’ ist bereits in der Musterangabe ’*ABC*’ enthalten, die Bedingung VALUE=’XABCY’ ist also automatisch erfüllt, wenn *MATCH=’*ABC*’ erfüllt ist.
Auf eine Filterbedingung, die mit VALUE=*NOT-MATCH('*ABC*')) festgelegt wurde, hat die Angabe VALUE=’XABCY’ jedoch Einfluss. In diesem Fall gilt die Bedingung für alle Werte, die nicht in das Muster ’*ABC*’ passen, und zusätzlich für den Wert ’XABCY’.
SELECT-SWITCH=*OFF entfernt die angegebenen Objekte aus einer Liste, die mit SELECT-SWITCH=*ON oder einem entsprechenden /ADD-SAT-FILTER-CONDITIONS-Kommando definiert wurde. Falls *ALL gültig ist, wird das Objekt in eine Negativliste aufgenommen.
Die Angaben zum Operanden SELECT-SWITCH (in allen Fällen) werden nur berücksichtigt, wenn dadurch Bedingungen entstehen. Wurde beispielsweise mit dem Kommando /ADD-SAT-FILTER-CONDITIONS für einen Filter USER-ID=*ALL festgelegt, so hat die Angabe USER-ID=HUGO(SELECT-SWITCH=*ON) im Kommando /MODIFY-SAT-FILTER-CONDITIONS keine Wirkung. Die Angabe USER-ID=HUGO(SELECT-SWITCH=*OFF) bewirkt einen Eintrag dieses Wertes in eine Negativliste.
Ist für einen Feldwert ein Muster gültig, kann durch SELECT-SWITCH= *OFF(VALUE=wert) keine Teilmenge aus dem Muster herausgelöst werden: Wenn z.B. eine Filterbedingung mit SELECT-SWITCH=*ON(VALUE=*MATCH('*ABC*')) oder einem entsprechenden /ADD-SAT-FILTER-CONDITIONS-Kommando festgelegt wurde, ist ein /MODIFY-SAT-FILTER-CONDITIONS-Kommando mit der Angabe SELECT-SWITCH=*OFF(VALUE= 'SYSABC') wirkungslos. Der gewünschte Effekt kann jedoch durch die Definition einer zweiten Filterbedingung erzielt werden:
Beispiel
Eine Filterbedingung sei auf folgende Weise definiert:
/add-sat-filter-conditions name=filter1, -/ field-name=filname(value=*match('*abc*')), -/ trigger-action=*logging(recording=*no), ...Das folgende Kommando hat keine Wirkung:
/modify-sat-filter-conditions name=filter1, ... -/ field-name=filname( -/ select-switch=*off(value=:cati:$tsos.sysabc))Die Definition einer zweiten Filterbedingung
/add-sat-filter-conditions name=filter2, -/ field-name=filname(value=:cati:$tsos.sysabc), .../ trigger-action=*logging(recording=*yes)bewirkt folgendes:
Auf Protokollsätze, die die Datei :CATI:$TSOS.SYSABC betreffen, treffen beide Filterbedingungen zu. Da eine der beiden Bedingungen (FILTER2) die Protokollierung verlangt, werden die Sätze aufgezeichnet. Protokollsätze, die andere Dateien betreffen, deren Name „ABC“ enthält, werden nicht aufgezeichnet. Auf sie trifft nur die Bedingung FILTER1 zu, die die Protokollierung ausschließt.
Für die Auswertung einer Filterbedingung mit UNIT-Angabe ist grundsätzlich nur der Wert von Belang, der sich aus der Multiplikation der VALUE- und der UNIT-Angabe ergibt, nicht jedoch wie dieser Wert zustande kommt.
Beispiele
Die folgenden Angaben werden als gleichwertig betrachtet, da jede denselben Wert von 3145728 Bytes darstellt:
VALUE=3145728(UNIT=*BYTES) VALUE=3072(UNIT=*KB) VALUE=3(UNIT=*MB)
Ein MODIFY-SAT-FILTER-CONDITIONS-Kommando mit der Angabe
FIELD-NAME=*FILPOS(SELECT-SWITCH=*ON(VALUE=(3072(UNIT=*KB),3(UNIT=*MB))))wird daher mit folgender Meldung zurückgewiesen:SAT1023 FIELD 'FILPOS' CONTAINS DUPLICATE VALUES. COMMAND REJECTEDEine Filterbedingung, die mit der Angabe
VALUE=3145728(UNIT=*BYTES)in einem ADD-SAT-FILTER-CONDITIONS-Kommando gesetzt wurde, kann mit der AngabeVALUE=3(UNIT=*MB)in einem MODIFY-SAT-FILTER-CONDITIONS-Kommando wieder aus der Filtertabelle entfernt werden.Eine Filterbedingung mit der Angabe
FIELD-NAME=*FILPOS(SELECT-SWITCH=*ON(VALUE=3072(UNIT=*KB)))trifft zu, wenn der zu protokollierende Satz
FILPOS=6144enthält. Grund: Die Angabe im Satz stellt ein Vielfaches von 512 Bytes dar (siehe „filpos in Tabelle der protokollierbaren Informationen (Feldnamen)“) und 6144*512 Bytes = 3145728 Bytes = 3072 KB.
Posix-filenames und Kerberos-Namen werden von SAT ohne Einschränkung protokolliert. Bei der Definition von SAT-Filtern wird die Groß- und Kleinschreibung bei folgenden SAT-Feldern unterstützt: AUDITID, HOMEDIR, LINKNAM, NEWPATH, PATHNAM, PRINCCL, PRINCSV, SHELL, SYMBDEV. Die Felder können mit Ausnahme von SYMBDEV allerdings nur in einer Länge von max. 255 Bytes angegeben werden. Events mit längeren Feldinhalten können durch die Angabe von Wildcards selektiert werden. Für die Angabe eines Einzelnamens (ohne Wildcards) werden Sonderzeichen zugelassen, wie sie für posix-filenames bzw. für Kerberos-Namen erlaubt sind.
Siehe auch allgemeine Hinweise zu den SAT-Kommandos "Funktionelle Übersicht".
Beispiele
Die Zugriffe auf die Dateien :A:$TSOS.SYSABC und :B:$SYS.SYSXXX sollen nur dann aufgezeichnet werden, wenn sie von den Benutzern PAUL und HUGO erfolgen. Zur Definition des dazu erforderlichen Filters werden zwei Kommandos benötigt:
Zunächst muss eine Filterbedingung festgelegt werden, mit der alle Zugriffe auf die beiden Dateien von der Protokollierung ausgeschlossen werden.
/add-sat-filter-conditions name=filter1,select=*parameters( -/ event-name=*all,user-identification=*all, -/ field-name=filname(value=(:a:$tsos.sysabc,:b:$sys.sysxxx))), -/ trigger-action=*logging(*recording = *no)Anschließend muss die Filterbedingung so modifiziert werden, dass sie auf die Benutzer PAUL und HUGO nicht zutrifft, deren Zugriffe somit protokolliert werden.
/modify-sat-filter-conditions name=filter1, select=*parameters( -/ user-id=(paul(select-switch=*off),hugo(select-switch=*off)))Zugriffe auf Dateien, sollen nur aufgezeichnet werden, wenn im Dateinamen die Zeichenfolge „SYS“ oder „ABC“ vorkommt. Außerdem sollen Zugriffe auf die Datei :A:$TSOS.SRMLNK aufgezeichnet werden.
Folgende Bedingung schließt die Zugriffe auf die Dateien, deren Name nicht „SYS“ enthält, von der Protokollierung aus:
/add-sat-filter-conditions name=f1,select=parameters( -/ event-name=*all,user-identification= *all, -/ field-name=filname(value=*not-match(pattern='*sys*'))), -/ trigger-action=*logging(recording=*no)Somit würden nur noch Zugriffe auf Dateien aufgezeichnet, deren Name die Zeichenfolge „SYS“ enthält.
Eine zweite Bedingung verlangt die Protokollierung für die Datei :A:$TSOS.SRMLNK.
/add-sat-filter-conditions name=f2, select=parameters( -/ field=filname(value=:a:$tsos.srmlnk)), -/ trigger-action = *logging (recording = *yes)Diese Bedingung wird modifiziert, so dass sie auch für Dateien gilt, deren Name „ABC“ enthält:
/modify-sat-filter-conditions name=f2, select=parameters( -/ field-name=filname(select-switch=*on(value=*match('*abc*'))))Für Dateien, deren Name nicht „SYS“, aber „ABC“ enthält, treffen beide Filterbedingungen zu. Da in einer dieser Bedingungen die Protokollierung verlangt wird, wird der Zugriff protokolliert.