Mit dieser Funktion werden Schutzattribut-Standardwerte in ein Attributguard eingetragen. Gibt es das Attributguard noch nicht, wird es implizit angelegt, wobei es den Guardtyp DEF-PATTR erhält. Im Guard-Verwaltungsteil wird der SCOPE auf *USER-ID gesetzt.
Gibt es das Attributguard bereits, weil es mit dem Kommando /CREATE-GUARD oder dem Makro CREGUA angelegt wurde, bleibt der SCOPE unverändert.
Die Funktion kann nur auf ein nicht vorhandenes oder leeres Attributguard angewendet werden. Im anderen Fall wird sie abgewiesen. Die Modifikation von Attributen in einem Attributguard muss mit der Funktion MODATTR durchgeführt werden.
Ein Anwender kann nur Attributguards für seine eigene Benutzerkennung einrichten. Ein Guard-Administrator darf Attributguards unter fremden Benutzerkennungen einrichten.
Generell gelten die spezifizierten Schutzattributwerte sowohl für den Attributbereich *CREATE-OBJECT als auch für *MODIFY-OBJECT-ATTR. Folgende Abweichungen sind dabei zu beachten:
ACCESS
Der spezifizierte Wert wird nur in den Attributbereich *MODIFY-OBJECT-ATTR eingetragen. Im Bereich *CREATE-OBJECT wird der entsprechende Wert auf *SYSSTD gesetzt. Damit wird verhindert, dass ein neu eingerichtetes Objekt standardmäßig mit dem Attribut ACCESS=READ versehen wird, bevor es überhaupt mit Daten versehen werden konnte. Sollte dieses Verhalten jedoch explizit vom Anwender gewünscht sein, muss der Attributwert explizit mit dem Kommando /MODIFY-DEFAULT-PROTECTION-ATTR modifiziert werden.
EXPIRATION-DATE
Da das Schutzattribut beim Neuanlegen eines Objektes nicht wirkt, wird der spezifizierte Wert nur in den Attributbereich *MODIFY-OBJECT-ATTR eingetragen. Im Attributbereich *CREATE-OBJECT wird der Wert auf *SYSSTD gesetzt.
FREE-FOR-DELETION
Der spezifizierte Wert wird nur in den Attributbereich *MODIFY-OBJECT-ATTR eingetragen. Im Attributbereich *CREATE-OBJECT wird der Wert auf *SYSSTD gesetzt. So soll verhindert werden, dass durch den Standardwert für FREE-FOR-DELETION ein Kennwortschutz unterlaufen wird, den eine bestehende Anwendung für Dateien vorsieht, die sie neu anlegt.
Bedeutung des Operandenwertes *SYSSTD
Der Wert *SYSSTD steht stellvertretend für einen in der hierarchisch höheren Instanz vorgegebenen Attributwert.
Die hierarchisch höhere Instanz ist
der pubsetglobale Regelbehälter,
wenn ein Attributguard aus einem benutzerspezifischen Regelbehälter heraus ausgewertet wirddie herkömmliche Systemvoreinstellung,
wenn ein Attributguard aus einem pubsetglobalen Regelbehälter heraus ausgewertet wird oder wenn es keinen pubsetglobalen Regelbehälter gibt.
Die folgende Tabelle zeigt, wie die spezifizierten Werte den beiden Attributbereichen zugeordnet werden:
Attribut | Attributbereich | |
*CREATE-OBJECT | *MOD-OBJECT-ATTR | |
ACCESS | *SYSTEM-STD | spezifizierter Wert |
USER-ACCESS | spezifizierter Wert | spezifizierter Wert |
BASIC-ACL | spezifizierter Wert | spezifizierter Wert |
GUARDS | spezifizierter Wert | spezifizierter Wert |
WRITE-PASSWORD | spezifizierter Wert | spezifizierter Wert |
READ-PASSWORD | spezifizierter Wert | spezifizierter Wert |
EXEC-PASSWORD | spezifizierter Wert | spezifizierter Wert |
DESTROY-BY-DELETE | spezifizierter Wert | spezifizierter Wert |
SPACE-RELEASE-LOCK | spezifizierter Wert | spezifizierter Wert |
EXPIRATION-DATE | *SYSTEM-STD | spezifizierter Wert |
FREE-FOR-DELETION | *SYSTEM-STD | spezifizierter Wert |
Anmerkung
Der Attributbereich *MOD-OBJECT-ATTR ist nur für Dateien relevant, da die Objektverwaltung für Jobvariablen (JVS) bei der Modifikation von JV-Attributen keinen Standardschutz unterstützt.
Makro | Operanden |
ADDATTR | MF =C / D / L / M / E ,PREFIX = D / <name 1> ,MACID =EFJ / <name 3> ,PARAM =<name 1..8> ,ERRMSG = *NO / *YES / <var: bit:1> ,ATTRGUA = ’ ’ / <c-string 1..24: filename 1..24 without-gen-vers> / <var: char:24> ,ACCESS =*SYSSTD / *READ / *WRITE / <var: enum-of _access_s:1> ,SHARE = *SYSSTD / *OWNER / *ALL / *SPECIAL / <var: enum-of _user_access_s:1> ,DESTROY = *SYSSTD / *NO / *YES / <var: enum-of _destroy_s:1> ,SPRLOCK =*SYSSTD / *NO / *YES / <var: enum-of _relspace_lock_s:1> ,DELDATE =structure(3): (1) valtype: *SYSSTD / *NONE / *DATEABS / *DATEREL / <var: enum-of _free_for_deletion_s:1> (2) dateabs: ’ ’ / <c-string 8..10> / <var: char:10> ,EXDATE = structure(3): (1) valtype: *SYSSTD / *TODAY / *TOMORROW / *DATEABS / *DATEREL / <var: enum-of _expiration_date_s:1> (2) dateabs: ’ ’ / <c-string 8..10> / <var: char:10> ,WRPASS = structure(2): (1) valtype: *SYSSTD / *NONE / *VALCODE / <var: enum-of _write_pwd_s:1> |
ADDATTR | ,RDPASS= structure(2): (1) valtype: *SYSSTD / *NONE / *VALCODE / <var: enum-of _read_pwd_s:1> ,EXPASS=structure(2): (1) valtype: *SYSSTD / *NONE / *VALCODE / <var: enum-of _read_pwd_s:1> (2) code: 0 / <integer -2147483648..2147483647> / <var: int:4> ,BASACL =structure(10): (1) valtype: *SYSSTD / *NONE / *BASVAL / <var: enum-of _basic_acl_s:1> ,GUARDS =structure(4): (1) valtype: *SYSSTD / *NONE / *GUAVAL /<var: enum-of _guards_s:1> |
Die Beschreibung der Parameter MF, PREFIX, MACID, PARAM finden Sie im Handbuch „Makroaufrufe an den Ablaufteil“ [16].
ERRMSG
Meldungsausgabe
Der Anwender kann angeben, ob aufgetretene Fehler als Meldung angezeigt werden.
=*NO
Es werden keine Meldungen ausgegeben.
=*YES
Es werden Meldungen ausgegeben.
ATTRGUA
Name des Attributguards
Dieser Operand bezeichnet den Namen des Attributguards vom Typ DEFPATTR, in dem Standardwerte für Schutzattribute spezifiziert werden. Das Guard wird neu eingerichtet, sofern es noch nicht erzeugt worden ist.
Der Operand muss mit einem Wert versehen werden. Es dürfen nur Großbuchstaben verwendet werden!
ACCESS
Zugriffsart
Gibt an, welche Art von Zugriff auf das Objekt erlaubt ist.
=*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
=*READ
Es sind nur lesende und ausführende Objektzugriffe erlaubt.
Der spezifizierte Wert gilt nur für den Attributbereich *MODIFY-OBJECT-ATTR. Für den Bereich *CREATE-OBJECT gilt grundsätzlich die Voreinstellung *SYSTEM-STD. Damit wird verhindert, dass neu einzurichtende Objekte standardmäßig mit einem Schreibschutz versehen werden, bevor sie erstmalig mit Daten versehen wurden. Ist dieses Verhalten jedoch explizit vom Anwender gewünscht, muss der Attributwert explizit mit der Funktion MODATTR modifiziert werden.
=*WRITE
Lesende, schreibende und ausführende Objektzugriffe sind erlaubt.
Der spezifizierte Wert gilt nur für den Attributbereich *MODIFY-OBJECT-ATTR. Für den Bereich *CREATE-OBJECT gilt grundsätzlich die Voreinstellung *SYSSTD.
SHARE
Mehrbenutzbarkeit
Gibt an, ob fremde Benutzerkennungen auf das Objekt zugreifen dürfen.
=*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
=*OWNER
Der Zugriff auf das Objekt ist nur unter der eigenen Benutzerkennung möglich, aber unter jeder Katalogkennung, unter der die (namentlich) gleiche Benutzerkennung eingerichtet ist (d.h. nicht nur unter der Katalogkennung, unter der das Objekt eingerichtet wurde). Miteigentümer haben ebenfalls Zugriff.
=*ALL
Der Zugriff auf das Objekt ist auch unter fremden Benutzerkennungen möglich.
=*SPECIAL
Das Objekt ist für alle Benutzerkennungen einschließlich der Kennungen mit dem Privileg HARDWARE-MAINTENANCE zugänglich. Zugriffe der Wartungskennung sind generell nur möglich, wenn SHARE=*SPECIAL gilt.
DESTROY
Durchlöschen nicht mehr benötigter Daten (nur für Dateien)
Zur Erhöhung des Datenschutzes kann der Benutzer im Katalogeintrag festlegen, dass nicht mehr benötigte Daten mit X’00’ (binär Null) überschrieben werden.
Bei Plattendateien wirkt sich das auf Löschoperationen und Speicherplatzfreigabe aus (siehe Kommando /MODIFY-FILE-ATTRIBUTES und /DELETE-FILE).
Bei Banddateien wirkt sich das auf das Überschreiben von Restdaten bei EOF-\und\EOV-Verarbeitung aus (siehe Operand DESTROY-OLD-CONTENTS im Kommando /ADD-FILE-LINK).
=*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
=*YES
Diese Einstellung wirkt auch, wenn im Kommando /DELETE-FILE, Operand OPTI-ON eine andere Vereinbarung getroffen wird.
Bei Plattendateien wird freigegebener Speicherplatz automatisch mit binär Null
(X’00’) überschrieben.
Bei Banddateien wird der Bandinhalt nach dem Dateiende mit binär Null (X’00’) überschrieben. Im Kommando /ADD-FILE-LINK muss das Löschen der Restdaten für den aktuellen Verarbeitungslauf nicht explizit angegeben werden.
=*NO
Bei dieser Einstellung wirkt eine im Kommando /DELETE-FILE getroffene Vereinbarung (Operand OPTION).
Bei Plattendateien wird der Speicherplatz unverändert freigegeben, wenn nicht im Kommando /DELETE-FILE der Operand OPTION=DESTROY-ALL angegeben wird.
Bei Banddateien werden die auf dem Band folgenden Restdaten nicht überschrieben, wenn im Kommando /ADD-FILE-LINK für den aktuellen Verarbeitungslauf nicht DESTROY-OLD-CONTENTS=*YES vereinbart wird.
SPRLOCK
Speicherplatzfreigabe (nur für Dateien)
Gibt an, ob die Freigabe von Speicherplatz mit dem Kommando /MODIFY-FILE-ATTRI-BUTES bzw. FILE-Makro ignoriert werden soll.
=*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
=*NO
Speicherplatz kann freigegeben werden.
=*YES
Speicherplatz kann nicht freigegeben werden.
DELDATE
Freigabedatum
Legt fest, ab wann das Objekt ohne Berücksichtigung der Schutzattribute gelöscht werden darf.
valtype:
Spezifikationstyp
Angabe, wie der Attributwert spezifiziert ist
*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
*NONE
Löschen nur unter Berücksichtigung der Schutzattribute möglich.
*DATEABS
Absolute Datumsangabe in Form einer Zeichenkette, ab wann ohne Berücksichtigung der Schutzattribute gelöscht werden darf.
*DATEREL
Relative Datumsangabe in Form einer Integerzahl, ab wann ohne Berücksichtigung der Schutzattribute gelöscht werden darf.
dateabs:
Datum
Die Schutzfrist wird in Form eines absoluten Datums angegeben. Das Objekt kann ab dem angegebenen Datum ohne Berücksichtigung der Schutzattribute gelöscht werden.
daterel:
Anzahl von Tagen
Die Schutzfrist wird in Form eines relativen Datums angegeben. Das Objekt kann nach der angegebenen Anzahl von Tagen ohne Berücksichtigung der Schutzattribute gelöscht werden.
EXDATE
Schutzfrist (nur für Dateien)
Bis zu dem angegebenen Datum kann die Datei nicht verändert oder gelöscht werden. Eine Schutzfrist kann nur vergeben werden, wenn die Datei bereits eröffnet wurde, das heißt, ein CREATION-DATE besitzt. Da das Schutzattribut beim Anlegen einer Datei
nicht wirkt, gilt der spezifizierte Wert auch nur für den Attributbereich *MODIFY-OB-JECT-ATTR. Für den Attributbereich *CREATE-OBJECT gilt grundsätzlich die Voreinstellung *SYSSTD
valtype:
Spezifikationstyp
Angabe, wie der Attributwert spezifiziert ist
*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
*TODAY
Es wird keine Schutzfrist vergeben bzw. eine bestehende Schutzfrist wird aufgehoben, indem sie auf das aktuelle Tagesdatum gesetzt wird.
*TOMORROW
Als Schutzfrist wird das Datum des nächsten Tages vergeben.
*DATEABS
Absolute Datumsangabe in Form einer Zeichenkette
*DATEREL
Relative Datumsangabe in Form einer Integerzahl
dateabs:
Datum
Die Schutzfrist wird in Form eines absoluten Datums angegeben. Das Objekt bleibt bis zum angegebenen Datum (ausschließlich) geschützt.
daterel:
Anzahl von Tagen
Die Schutzfrist wird in Form eines relativen Datums angegeben. Die Datei bleibt für die angegebene Anzahl von Tagen geschützt.
WRPASS
Schreibkennwort
Kennwort zum Schutz vor unberechtigtem Schreiben.
valtype:
Spezifikationstyp
Angabe, wie der Attributwert spezifiziert ist
*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
*NONE
Es wird kein Schreibkennwort vergeben.
*VALCODE
Es ist ein Schreibkennwort spezifiziert.
code:
Kennwort
Angabe des Kennwortes in Form einer Zahl.
RDPASS
Lesekennwort
Kennwort zum Schutz vor unberechtigtem Lesen.
valtype:
Spezifikationstyp
Angabe, wie der Attributwert spezifiziert ist
*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
*NONE
Es wird kein Lesekennwort vergeben.
*VALCODE
Es ist ein Lesekennwort spezifiziert.
code:
Kennwort
Angabe des Kennwortes in Form einer Zahl.
EXPASS
Ausführkennwort
Kennwort zum Schutz vor unberechtigtem Ausführen.
valtype:
Spezifikationstyp
Angabe, wie der Attributwert spezifiziert ist
*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
*NONE
Es wird kein Ausführkennwort vergeben.
*VALCODE
Es ist ein Ausführkennwort spezifiziert.
code:
Kennwort
Angabe des Kennwortes in Form einer Zahl.
BASACL
BASIC-ACL-Schutz
Aktiviert den Zugriffsschutz über BASIC-ACL.
valtype:
Indikator
Der Indikator zeigt an, wie der BASIC-ACL-Schutz spezifiziert ist.
*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
*NONE
Es wird kein BASIC-ACL-Schutz verwendet.
*BASVAL
Es wird ein BASIC-ACL-Schutz aktiviert.
ownerr:
Leseberechtigung für den Eigentümer.
*NO
Eigentümer hat keine Leseberechtigung.
*YES
Eigentümer hat Leseberechtigung.
ownerw:
Schreibberechtigung für den Eigentümer.
*NO
Eigentümer hat keine Schreibberechtigung.
*YES
Eigentümer hat Schreibberechtigung.
ownerx:
Ausführberechtigung für den Eigentümer.
*NO
Eigentümer hat keine Ausführberechtigung.
*YES
Eigentümer hat Ausführberechtigung.
groupr:
Leseberechtigung für Gruppenmitglieder.
*NO
Gruppenmitglieder haben keine Leseberechtigung.
*YES
Gruppenmitglieder haben Leseberechtigung.
groupw:
Schreibberechtigung für Gruppenmitglieder.
*NO
Gruppenmitglieder haben keine Schreibberechtigung.
*YES
Gruppenmitglieder haben Schreibberechtigung.
groupx:
Ausführberechtigung für Gruppenmitglieder.
*NO
Gruppenmitglieder haben keine Ausführberechtigung.
*YES
Gruppenmitglieder haben Ausführberechtigung.
otherr:
Leseberechtigung für alle anderen.
*NO
Alle anderen haben keine Leseberechtigung.
*YES
Alle anderen haben Leseberechtigung.
otherw:
Schreibberechtigung für alle anderen.
*NO
Alle anderen haben keine Schreibberechtigung.
*YES
Alle anderen haben Schreibberechtigung.
otherx:
Ausführberechtigung für alle anderen.
*NO
Alle anderen haben keine Ausführberechtigung.
*YES
Alle anderen haben Ausführberechtigung.
GUARDS
Guards-Schutz
Aktiviert den Zugriffsschutz über GUARDS.
valtype:
Indikator
Der Indikator zeigt an, wie der GUARDS-Schutz spezifiziert ist.
*SYSSTD
Der Attributwert wird durch die hierarchisch höhere Instanz festgelegt (siehe „Bedeutung des Operandenwertes *SYSSTD").
*NONE
Es wird kein GUARDS-Schutz verwendet.
*GUAVAL
Es wird ein GUARDS-Schutz verwendet.
readgua:
Leseguard
Name des Guards für den Leseschutz.
writgua:
Schreibguard
Name des Guards für den Schreibschutz.
execgua:
Ausführguard
Name des Guards für den Ausführschutz.
Makro-Returncode
SC2 | SC1 | Maincode | Erläuterung |
X’00’ | X’00’ | X’0000’ | class A: CMD0001 |
X’01’ | X’3100’ | class B: DEF3100 | |
X’00’ | ungültige Parameteradresse | ||
X’00’ | X’20’ | X’3200’ | class C: DEF3200 |
X’00’ | X’40’ | X’3302’ | class D: DEF3302 |
X’00’ | X’40’ | X’3306’ | class D: DEF3306 |
X’00’ | X’40’ | X’3308’ | class D: DEF3308 |
X’00’ | X’40’ | X’3309’ | class D: DEF3309 |
X’00’ | X’40’ | X’3313’ | class D: DEF3313 |
X’00’ | X’40’ | X’3314’ | class D: DEF3314 |
X’00’ | X’40’ | X’3315’ | class D: DEF3315 |
X’00’ | X’40’ | X’3350’ | class D: DEF3350 |
X’00’ | X’80’ | X’3900’ | class E: DEF3900 |
X’00’ | X’80’ | X’3901’ | class E: DEF3901 |
X’00’ | X’80’ | X’3902’ | class E: DEF3902 |
Die genaue Fehlerursache kann durch Aufruf des Kommandos /HELP-MSG mit der in der Tabelle angegebenen Fehlernummer ermittelt werden, z.B. /HELP-MSG DEF3902.