Die Einrichtung des Zugriffs-/Zugangschutzes umfasst drei Schritte:
Einrichten von Guards (siehe "GUARDS-Verwaltung")
Die Festlegung der Zugriffsbedingungen
Die Verknüpfung von Guards mit den zu schützenden Objekten
(siehe "Zugriffs- und Zugangsschutz einrichten").
Festlegen der Zugriffsbedingungen
Zugriffsbedingungen werden mit dem Kommando /ADD-ACCESS-CONDITIONS festgelegt, mit dem Kommando /MODIFY-ACCESS-CONDITIONS geändert, mit dem Kommando /SHOW-ACCESS-CONDITIONS angezeigt und mit dem Kommando /REMOVE-ACCESS-CONDITIONS wieder entfernt.
Mit dem Kommando /SHOW-ACCESS-ADMISSION erhält ein Benutzer Auskunft über die Bedingungen, die er erfüllen muss, damit ihm der Zugriff auf ein bestimmtes Objekt erlaubt ist.
Die Zugriffsbedingungen können unter folgenden Gesichtspunkten festgelegt werden:
Ein Zugriff soll generell gestattet oder verboten sein.
Ein Zugriff soll nur unter bestimmten Umständen gestattet sein:
Zeitraum (Uhrzeit, Datum, Wochentag) – es kann eine Liste von zulässigen Zeiträumen oder der Ausschluss bestimmter Zeiträume angegeben werden. Die Zeiträume sind untereinander mit dem logischen ODER verknüpft.
Privileg (nur mit bestimmten Privilegien darf der Zugriff erfolgen) – es kann eine Liste von zulässigen Privilegien oder der Ausschluss bestimmter Privilegien angegeben werden. Die Privilegien in der Liste sind mit dem logischen ODER verknüpft.
Programm (der Zugriff darf nur über ein bestimmtes Programm erfolgen, wobei geprüft wird, ob das Programm geladen ist und auch die Kontrolle übernommen hat). Die Programmnamen in der Liste sind mit dem logischen ODER verknüpft.
Diese Zugriffsbedingungen können für verschiedene Subjekttypen
(USER/GROUP/OTHERS/ALL-USERS) in unterschiedlichen Ausprägungen festgelegt werden. Weitergehende Erläuterungen zur Auswertelogik für die Subjekttypen siehe Abschnitt „Zugriffsbedingungen definieren".
Verknüpfen mit den zu schützenden Objekten
Um ein Objekt mit Hilfe von Guards vor unberechtigtem Zugriff/Zugang zu schützen, muss eine Verknüpfung zwischen dem zu schützenden Objekt und den Guards hergestellt werden, in denen die entsprechenden Zugriffsbedingungen definiert sind. Das bedeutet: der
Objekteigentümer gibt der für sein Objekt zuständigen Objektverwaltung bekannt, in welchen Guards die Zugriffsbedingungen hinterlegt sind. Die Kommandos und Programmschnittstellen, die von den verschiedenen Objektverwaltungen zur Verknüpfung ihrer Objekte mit Guards angeboten werden, sind in den Abschnitten „Schutz von ...“ ab "Zugriffs- und Zugangsschutz einrichten" dargestellt.
Da eine Verknüpfung nur den jeweiligen Objektverwaltungen bekannt ist, nicht aber in den Guards hinterlegt wird, kann ein Guard zum Schutz mehrerer unterschiedlicher Objekttypen (wie Datei, Bibliothekselement, Jobvariable usw.) verwendet werden.
Eine Verknüpfung kann nur vom Eigentümer oder Miteigentümer des Objekts hergestellt oder gelöst werden, nicht aber vom Eigentümer des Guards (sofern die beiden Eigentümer nicht identisch sind).
ACHTUNG!
Da ein Objekt und die mit ihm verknüpften Guards verschiedene Eigentümer haben können, ist besonders sorgfältig darauf zu achten, dass beim Löschen von Guards auch deren Verknüpfungen mit ihren Schutzobjekten von den jeweiligen Objekteigentümern aufgelöst werden. Zum Beispiel bei einer Datei durch:
/MODIFY-FILE-ATTRIBUTES <filename>, PROTECTION=(GUARDS=*NONE)
.
Solange eine Verknüpfung mit einem bereits gelöschten Guard nicht gelöst ist, ist ein Zugriff auf das verknüpfte Objekt auch für den Objekteigentümer nicht möglich.
Schutz von Dateien, Jobvariablen und Bibliothekselementen
Bei Verwendung von Guards werden von DVS, JVS und LMS nur Zugriffe gestattet, die explizit erlaubt sind. Im Gegensatz zu SHARE/ACCESS schließen Guards beim Schreibrecht nicht auch das Leserecht ein.
Für Dateien wird der zum Schutz zu verwendende Guard-Name mit dem Operanden PROTECTION der Kommandos /CREATE-FILE bzw. /MODIFY-FILE-ATTRIBUTES festgelegt. Weitere Hinweise zur Einrichtung des Zugriffsschutzes für Dateien finden Sie im Handbuch „Einführung in das DVS“ [6].
Für Bibliothekselemente wird der zum Schutz zu verwendende Guard-Name mit den LMS-Anweisungen //CREATE-ELEMENT bzw. //MODIFY-ELEMENT-PROTECTION festgelegt. Weitere Hinweise zur Einrichtung des Zugriffsschutzes für Bibliothekselemente finden Sie im Handbuch „LMS“ [23].
Für Jobvariablen wird der zum Schutz zu verwendende Guard-Name mit dem Operanden PROTECTION der Kommandos /CREATE-JV bzw. /MODIFY-JV-ATTRIBUTES festgelegt. Weitere Hinweise zur Einrichtung des Zugriffsschutzes für Jobvariablen finden Sie im Handbuch „JV“ [32].
Schutz von Storage-Klassen
Für Storage-Klassen wird der zum Schutz zu verwendende Guard-Name mit dem Operanden PROTECTION der Kommandos /CREATE-STORAGE-CLASS bzw. /MODIFY-STORAGE-CLASS festgelegt. Weitere Hinweise zur Einrichtung des Zugriffsschutzes für Storage-Klassen finden Sie im Handbuch „SMS“ [33].
Schutz von HSMS-Management-Klassen
Für HSMS-Management-Klassen wird der zum Schutz zu verwendende Guard-Name mit dem Operanden PROTECTION der HSMS-Anweisungen //CREATE-MANAGEMENT-CLASS bzw. //MODIFY-MANAGEMENT-CLASS festgelegt. Weitere Hinweise zur Einrichtung des Zugriffsschutzes für HSMS-Management-Klassen finden Sie im Handbuch „HS-MS“ [13].
Gruppenzuordnung
Beim Zugriff auf Dateien und Jobvariablen, die durch BACL geschützt sind, können bestimmte Benutzer so behandelt werden, als ob sie Gruppenmitglieder wären. Diese Gruppenzuordnung wird im Operanden BASIC-ACL-ACCESS der Kommandos ADD-USER-GROUP und MODIFY-USER-GROUP festgelegt.
Schutz von Zugangsklassen
Der Zugang zu einer Benutzerkennung kann je nach Zugangsart durch ein separates Guard geregelt werden. Die Zuordnung der Guards erfolgt mit den folgenden Operanden der Kommandos SET-LOGON-PROTECTION und MODIFY-LOGON-PROTECTION:
DIALOG-ACCESS
BATCH-ACCESS
POSIX-RLOGIN-ACCESS
POSIX-REMOTE-ACCESS
NET-DIALOG-ACCESS
Insbesondere können persönliche Benutzerkennungen (siehe Abschnitt „Persönliche Identifizierung") durch Guards geschützt werden.
Zugangsschutz mit Terminal-Sets
Beim Zugangsschutz mit Terminal-Sets kann der Zugang zusätzlich über ein Guard geregelt werden. Dieses wird mit dem Operanden GUARD-NAME der Kommandos CREATE-TERMINAL-SET bzw. MODIFY-TERMINAL-SET festgelegt.