Die folgenden Beispiele zeigen die Anwendung der GUARDS-Kommandos zur Definition von Guards. Guard und Objekt werden über die Schnittstellen der jeweiligen Objektverwaltung einander zugeordnet. Dies wird exemplarisch für eine Datei am Ende des Beispiels gezeigt.
Beispiel 1: Einrichten eines Zugriffsschutzes
Aufgabenstellung
Der Zugriff auf Dateien des Projektes GUARDS soll durch das Guard GUARDPRO kontrolliert werden.
Das Team besteht aus vier Mitarbeitern mit den Benutzerkennungen GUARDS1, GUARDS2, GUARDS3 und GUARDS4.
Die Arbeitszeit aller Mitarbeiter geht an den Tagen Montag bis Freitag von 07:00 Uhr bis 19:00.
Der Mitarbeiter mit der Benutzerkennung GUARDS3 arbeitet als Teilzeitkraft an den Tagen Montag, Mittwoch und Donnerstag.
Der Mitarbeiter mit der Benutzerkennung GUARDS4 ist ein Mitarbeiter, dessen Vertrag am 1. Juli 2017 beginnt und am 30. September 2017 ausläuft.
Für Reviews sollen die Benutzergruppen ONE und TWO kurzfristig Zugriff erhalten. Der Review findet am 23./24. August 2017 und 2./3. September 2017 von 9:00 Uhr bis
15:00 Uhr statt.
Lösung
Es werden Zugriffsbedingungen für die Kennungen GUARDS1 und GUARDS2 in ein Guard mit dem Namen GUARDPRO eingetragen. Dieses Guard wird dabei automatisch erzeugt.
|
:N:$SECOSMAN.GUARDPRO User GUARDS1 has ADMISSION User GUARDS2 has ADMISSION ----------------------------------------------------------------------------- Guards selected: 1 End of display
Es werden die Zugriffsbedingungen für die Teilzeitkraft eingetragen:
|
:N:$SECOSMAN.GUARDPRO User GUARDS1 has ADMISSION User GUARDS2 has ADMISSION User GUARDS3 Weekday IN ( MO, WE, TH ) ----------------------------------------------------------------------------- Guards selected: 1 End of display
Es werden die Zugriffsbedingungen für den Mitarbeiter mit der Kennung GUARDS4 eingetragen, dessen Vertrag ausläuft:
|
:N:$SECOSMAN.GUARDPRO User GUARDS1 has ADMISSION User GUARDS2 has ADMISSION User GUARDS3 Weekday IN ( MO, WE, TH ) User GUARDS4 Date IN ( <2017-07-01,2017-09-30> ) ----------------------------------------------------------------------------- Guards selected: 1 End of display
Für alle Mitarbeiter wird die Arbeitszeit festgelegt:
|
:N:$SECOSMAN.GUARDPRO User GUARDS1 has ADMISSION User GUARDS2 has ADMISSION User GUARDS3 Weekday IN ( MO, WE, TH ) User GUARDS4 Date IN ( <2017-07-01,2017-09-30> ) Alluser Time IN ( <07:00,19:00> ) Weekday EX ( SA, SU ) ----------------------------------------------------------------------------- Guards selected: 1 End of display
Festlegen der Zugriffsbedingungen für die Gruppen ONE und TWO:
|
:N:$SECOSMAN.GUARDPRO User GUARDS1 has ADMISSION User GUARDS2 has ADMISSION User GUARDS3 Weekday IN ( MO, WE, TH ) User GUARDS4 Date IN ( <2017-07-01,2017-09-30> ) Group ONE Time IN ( <09:00,15:00> ) Date IN ( <2017-08-23,2017-08-24> , <2017-09-02,2017-09-03> ) Group TWO Time IN ( <09:00,15:00> ) Date IN ( <2017-08-23,2017-08-24> , <2017-09-02,2017-09-03> ) Alluser Time IN ( <07:00,19:00> ) Weekday EX ( SA, SU ) ----------------------------------------------------------------------------- Guards selected: 1 End of display
Beispiel 2: Modifizieren der Zugriffsbedingungen
Aufgabenstellung
Der Mitarbeiter mit der Benutzerkennung GUARDS1 geht von 15. Oktober 2017 bis 15. November 2017 in Urlaub.
Der Mitarbeiter mit der Benutzerkennung GUARDS3 arbeitet statt Montag, Mittwoch und Donnerstag jetzt Montag, Dienstag und Mittwoch.
Das Review am 2./3. September wird verschoben. Es findet am 9./10. September statt.
Lösung
|
:N:$SECOSMAN.GUARDPRO User GUARDS1 Date EX ( <2017-10-15,2017-11-15> ) User GUARDS2 has ADMISSION User GUARDS3 Weekday IN ( MO, WE, TH ) User GUARDS4 Date IN ( <2017-07-01,2017-09-30> ) Group ONE Time IN ( <09:00,15:00> ) Date IN ( <2017-08-23,2017-08-24> , <2017-09-09,2017-09-10> ) Group TWO Time IN ( <09:00,15:00> ) Date IN ( <2017-08-23,2017-08-24> , <2017-09-09,2017-09-10> ) Alluser Time IN ( <07:00,19:00> ) Weekday EX ( SA, SU ) ----------------------------------------------------------------------------- Guards selected: 1 End of display
Beispiel 3: Löschen einer Zugriffsbedingung
Aufgabenstellung
Der Mitarbeiter mit der Benutzerkennung GUARDS2 wechselt die Firma. Seine Benutzerkennung soll aus dem Guard entfernt werden.
Lösung
|
:N:$SECOSMAN.GUARDPRO User GUARDS1 Date EX ( <2017-10-15,2017-11-15> ) User GUARDS3 Weekday IN ( MO, WE, TH ) User GUARDS4 Date IN ( <2017-07-01,2017-09-30> ) Group ONE Time IN ( <09:00,15:00> ) Date IN ( <2017-08-23,2017-08-24> , <2017-09-09,2017-09-10> ) Group TWO Time IN ( <09:00,15:00> ) Date IN ( <2017-08-23,2017-08-24> , <2017-09-09,2017-09-10> ) Alluser Time IN ( <07:00,19:00> ) Weekday EX ( SA, SU ) ----------------------------------------------------------------------------- Guards selected: 1 End of display
Beispiel 4: Verknüpfung einer Datei mit dem Guard GUARDPRO
Aufgabenstellung
Die Datei SECOS soll mit dem Guard GUARDPRO verknüpft werden, damit für Zugriffe die Zugriffsbedingungen des Guards gelten.
Lösung
|
00001266 :N:$SECOSMAN.SECOS ------------------------------- SECURITY ------------------------------ READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO AUDIT = NONE DESTROY = YES EXPIR-DATE = 2017-11-17 SP-REL-LOCK= NO EXPIR-TIME = 00:00:00 GUARD-READ = $SECOSMAN.GUARDPRO GUARD-WRIT = $SECOSMAN.GUARDPRO GUARD-EXEC = NONE :N: PUBLIC: 1 FILE RES= 1266 FREE= 2 REL= 0 PAGES
Beispiel 5: Lösen der Verknüpfung Guard - Datei
Aufgabenstellung
Die Datei SECOS soll nicht mehr mit den Zugriffsbedingungen des Guards GUARDPRO geschützt werden. Dazu wird die Verknüpfung gelöst. Nachdem der GUARDS-Schutz entfernt wurde, gelten die in der Hierarchie niedrigeren Zugriffsschutzmechanismen.
Lösung
|
00001266 :N:$SECOSMAN.SECOS ------------------------------- SECURITY ------------------------------ READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO AUDIT = NONE DESTROY = YES EXPIR-DATE = 2017-11-17 SP-REL-LOCK= NO EXPIR-TIME = 00:00:00 :N: PUBLIC: 1 FILE RES= 1266 FREE= 2 REL= 0 PAGES
Beispiel 6: Einrichtung eines benutzerspezifischen Standardschutzes
Aufgabenstellung
Der Benutzer USER1 möchte, dass alle Dateien, deren Namen mit ’FILE‘ beginnen, so angelegt werden, dass der Benutzer USER2 Schreibzugriff darauf hat.
Es ist kein pubsetglobaler Standardschutz aktiv.
Lösung
USER 1 richtet ein Bedingungsguard WRGUA1 mit den Zugriffsbedingungen für USER2 ein:
|
Anschließend legt er ein Attributguard ATTR1 an, in dem er als Standardschutzattribut festlegt, dass das Schreibrecht über das Bedingungsguard WRGUA gesteuert werden soll:
|
Schließlich definiert er einen Regelbehälter DEF1 für Default Protection mit einer Standardschutzregel. Diese Regel besagt, dass die Standardschutzattribute für alle Dateien, die mit ’FILE’ beginnen, im Attributguard ATTR1 festgelegt sind:
|
Zur Kontolle gibt USER1 Informationen über alle Guards und den Regelbehälter DEF1 aus. Voraussetzung: Zu Beginn dieser Beispielsitzung waren keine Guards unter der Kennung USER1 vorhanden.
|
Guard name Scope Type Creation Date LastMod Date ------------------------------------------------------------------------------ :DEL1:$USER1.ATTR1 USR DEFPATTR 2017-04-20/07:48:09 2017-04-20/08:04:01 Guard fuer die Standardschutzattribute :DEL1:$USER1.DEF1 USR DEFAULTP 2017-04-20/07:52:36 2017-04-20/08:11:11 Default-Protection-Regelbehaelter :DEL1:$USER1.WRGUA1 USR STDAC 2017-04-20/07:48:46 2017-04-20/07:49:17 Guardschutz zum Schreiben ------------------------------------------------------------------------------ Guards selected: 3 End of display
|
------------------------------------------------------------------------------ RULE CONTAINER :DEL1:$USER1.DEF1 DEFAULT PROTECTION ------------------------------------------------------------------------------ RULE1 OBJECT = FILE* ATTRIBUTES = $USER1.ATTR1 USER-IDS = *ANY-USER-ID ------------------------------------------------------------------------------ RULE CONTAINER SELECTED: 1 END OF DISPLAY
Da der Name des Regelbehälters nicht den Namenskonventionen für aktive Regelbehälter entspricht, dient er nur zur Vorbereitung der Standardschutzregel. Für eine Datei mit dem Namen FILE1 (entspricht dem Muster FILE*) ist noch kein Standardschutz aktiv, wie folgendes Kommando zeigt:
/show-object-protection-default file1
DEF3316 NO DEFAULT PROTECTION ACTIVE
Um den Standardschutz zu aktivieren, benennt USER1 den inaktiven Regelbehälter DEF1 um:
|
Guard name Scope Type Creation Date LastMod Date ------------------------------------------------------------------------------ :DEL1:$USER1.ATTR1 USR DEFPATTR 2017-04-20/07:48:09 2017-04-20/08:04:01 Guard fuer die Standardschutzattribute :DEL1:$USER1.SYS.UDF USR DEFAULTP 2017-04-20/07:52:36 2017-04-20/08:17:27 Default-Protection-Regelbehaelter :DEL1:$USER1.WRGUA1 USR STDAC 2017-04-20/07:48:46 2017-04-20/07:49:17 Guardschutz zum Schreiben ------------------------------------------------------------------------------ Guards selected: 3 End of display
USER1 lässt sich den Inhalt des jetzt aktiven Regelbehälters anzeigen:
|
------------------------------------------------------------------------------ RULE CONTAINER :DEL1:$USER1.SYS.UDF USR ACTIVE DEFAULT PROTECTION ------------------------------------------------------------------------------ RULE1 OBJECT = FILE* ATTRIBUTES = $USER1.ATTR1 USER-IDS = *ANY-USER-ID ------------------------------------------------------------------------------ RULE CONTAINER SELECTED: 1 END OF DISPLAY
Anschließend überprüft USER1 noch einmal, welche Schutzattribute die Datei FILE1 beim Anlegen erhalten würde:
|
------------------------------------------------------------------------------ DEFAULTS FOR FILE :DEL1:$USER1.FILE1 ------------------------------------------------------------------------------ % SCOPE: CREATE-OBJECT % SCOPE: MODIFY-OBJECT-ATTR % --------------------------- % -------------------------- ACCESS % *SYSTEM-STD % *SYSTEM-STD USER-ACCESS % *SYSTEM-STD % *SYSTEM-STD BASIC-ACL % *SYSTEM-STD % *SYSTEM-STD GUARDS % READ = % READ = % WRITE = $USER1.WRGUA1 % WRITE = $USER1.WRGUA1 % EXEC = % EXEC = READ-PASSWORD % *SYSTEM-STD % *SYSTEM-STD WRITE-PASSWORD % *SYSTEM-STD % *SYSTEM-STD EXEC-PASSWORD % *SYSTEM-STD % *SYSTEM-STD DESTROY-BY-DELETE % *SYSTEM-STD % *SYSTEM-STD SPACE-RELEASE-LOCK % *SYSTEM-STD % *SYSTEM-STD EXPIRATION-DATE % *SYSTEM-STD % *SYSTEM-STD FREE-FOR-DELETION % *SYSTEM-STD % *SYSTEM-STD ------------------------------------------------------------------------------ END OF DISPLAY
Der gewünschte Standardschutz ist aktiv. USER1 legt die Datei FILE1 an:
|
00000003 :DEL1:$USER1.FILE1 ------------------------------- SECURITY ------------------------------- READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = NONE DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = NONE SP-REL-LOCK= NO GUARD-READ = NONE GUARD-WRIT = $USER1.WRGUA1 GUARD-EXEC = NONE :DEL1: PUBLIC: 1 FILE RES= 3 FREE= 3 REL= 3 PAGES
Wie die Ausgabe des Kommandos /SHOW-FILE-ATTRIBUTES zeigt, wurde das Schutzattribut für GUARD-WRIT aus dem Attributguard ATTR1 übernommen.
Anschließend möchte USER1 eine Datei FILE2 erzeugen. Auch dieser Name entspricht dem Muster in der Standardschutzregel:
|
------------------------------------------------------------------------------ DEFAULTS FOR FILE :DEL1:$USER1.FILE2 ------------------------------------------------------------------------------ % SCOPE: CREATE-OBJECT % SCOPE: MODIFY-OBJECT-ATTR % --------------------------- % -------------------------- ACCESS % *SYSTEM-STD % *SYSTEM-STD USER-ACCESS % *SYSTEM-STD % *SYSTEM-STD BASIC-ACL % *SYSTEM-STD % *SYSTEM-STD GUARDS % READ = % READ = % WRITE = $USER1.WRGUA1 % WRITE = $USER1.WRGUA1 % EXEC = % EXEC = READ-PASSWORD % *SYSTEM-STD % *SYSTEM-STD WRITE-PASSWORD % *SYSTEM-STD % *SYSTEM-STD EXEC-PASSWORD % *SYSTEM-STD % *SYSTEM-STD DESTROY-BY-DELETE % *SYSTEM-STD % *SYSTEM-STD SPACE-RELEASE-LOCK % *SYSTEM-STD % *SYSTEM-STD EXPIRATION-DATE % *SYSTEM-STD % *SYSTEM-STD FREE-FOR-DELETION % *SYSTEM-STD % *SYSTEM-STD ------------------------------------------------------------------------------ END OF DISPLAY
USER1 möchte diese Datei jedoch mit den herkömmlichen Standardschutz-Attributen einrichten:
|
00000003 :DEL1:$USER1.FILE2 ------------------------------- SECURITY ------------------------------- READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = NONE DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = NONE SP-REL-LOCK= NO :DEL1: PUBLIC: 1 FILE RES= 3 FREE= 3 REL= 3 PAGES
Alle Schutzattribute haben Systemstandard.
Beispiel 7: Festlegen von Miteigentümern
Aufgabenstellung
USER1 möchte, dass USER2 das Recht hat, unter seiner Kennung (USER1) Dateien anzulegen und zu verwalten, wenn deren Name die Zeichenfolge ’TEST’ enthält.
Lösung
USER1 definiert ein Bedingungsguard COND1, das USER2 zeitlich unbegrenzten Zugriff gewährt:
|
Dann definiert USER1 einen Regelbehälter COO1 mit einer Miteigentümerregel. Diese gibt an, dass die Zugriffsbedingungen für Miteigentümer der Dateien, deren Name dem Muster ’*TEST*’ entspricht, im Bedingungsguard COND1 festgelegt sind:
|
Zur Kontolle gibt USER1 Informationen über alle Guards und den Regelbehälter COO1 aus. Voraussetzung: Zu Beginn dieser Beispielsitzung waren keine Guards unter der Kennung USER1 vorhanden.
|
Guard name Scope Type Creation Date LastMod Date ------------------------------------------------------------------------------ :DEL1:$USER1.COND1 USR STDAC 2017-04-19/10:35:47 2017-04-19/10:36:33 Zugriffsbedingungen fuer Coowner :DEL1:$USER1.COO1 USR COOWNERP 2017-04-19/10:37:26 2017-04-19/10:38:53 Coowner-Regelbehaelter ------------------------------------------------------------------------------ Guards selected: 2 End of display /show-coowner-protection-rule coo1 ------------------------------------------------------------------------------ RULE CONTAINER :DEL1:$USER1.COO1 COOWNER PROTECTION ------------------------------------------------------------------------------ RULE1 OBJECT = *TEST* CONDITIONS = $USER1.COND1 TSOS-ACCESS = SYSTEM-STD ------------------------------------------------------------------------------ RULE CONTAINER SELECTED: 1 END OF DISPLAY
Da der Name des Regelbehälters nicht den Namenskonventionen für aktive Regelbehälter entspricht, dient er nur zur Vorbereitung der Standardschutzregel. USER2 hat noch keine Miteigentümerberechtigung für Dateien unter der Kennung USER1, wie der Aufruf des folgenden Kommandos unter der Kennung USER2 zeigt:
/show-coowner-admission-rule $user1.*
COO3316 NO COOWNER PROTECTION ACTIVE
Um den Miteigentümerschutz zu aktivieren, benennt USER1 den inaktiven Regelbehälter COO1 um:
|
Guard name Scope Type Creation Date LastMod Date ------------------------------------------------------------------------------ :DEL1:$USER1.COND1 USR STDAC 2017-04-19/10:35:47 2017-04-19/10:36:33 Zugriffsbedingungen fuer Coowner :DEL1:$USER1.SYS.UCF USR COOWNERP 2017-04-19/10:37:26 2017-04-19/11:29:53 Coowner-Regelbehaelter ------------------------------------------------------------------------------ Guards selected: 2 End of display
USER1 lässt sich den Inhalt des jetzt aktiven Regelbehälters anzeigen:
|
------------------------------------------------------------------------------ RULE CONTAINER :DEL1:$USER1.SYS.UCF ACTIVE COOWNER PROTECTION ------------------------------------------------------------------------------ RULE1 OBJECT = *TEST* CONDITIONS = $USER1.COND1 TSOS-ACCESS = SYSTEM-STD ------------------------------------------------------------------------------ RULE CONTAINER SELECTED: 1 END OF DISPLAY
USER2 überprüft, welche Regeln ihn zum Miteigentümer von Dateien der Kennung USER1 machen:
|
------------------------------------------------------------------------------ COOWNER RULES FOR FILE :DEL1:$USER1.* ------------------------------------------------------------------------------ RULE1 OBJECT = *TEST* CONDITIONS = $USER1.COND1 ------------------------------------------------------------------------------ RULES SELECTED: 1 END OF DISPLAY
Jetzt kann USER2 die Datei TESTTEST unter $USER1 anlegen:
|
0000003 :DEL1:$USER1.TESTTEST :DEL1: PUBLIC: 1 FILE RES= 3 FREE= 3 REL= 3 PAGES