Die Benutzer der Benutzerkennung EXAMPLE sollen als einziges Programm nur den unter der privilegierten Benutzerkennung TSOS katalogisierten Dateibearbeiter EDT laden und starten dürfen.
Über die Gruppensyntaxdatei $TSOS.SYS.SDF.GROUP.SYNTAX.EXAMPLE lässt sich die gewünschte Einschränkung verwirklichen. In ihr sind die Definitionen der Kommandos START-PROGRAM und LOAD-PROGRAM entsprechend zu verändern.
Das Kommando START-PROGRAM soll in START-EDITOR umbenannt werden und keine sichtbaren Operanden haben. Das Kommando START-EDITOR darf in der Syn-taxdatei-Hierarchie noch nicht definiert sein.
Das Kommando LOAD-PROGRAM soll seinen Namen behalten. Mit Ausnahme des Operanden FROM-FILE sollen seine Operanden ausgeblendet werden.
Ab BLSSERV V2.3 wird die Funktionalität von START- und LOAD-PROGRAM zusätzlich mit verbesserter Syntax über die neuen Kommandos START- und LOAD-EXECUTABLE-PROGRAM angeboten. In diesem Fall müssen die beiden neuen Kommandos gesperrt oder ihre Syntaxdefinition analog zu START- und LOAD-PROGRAM angepasst werden.
Damit die definierte Einschränkung nicht umgangen werden kann, werden die alten Kommandos EXECUTE und LOAD sowie die START-Kommandos anderer Programme gesperrt.
|
(1) | Unter der privilegierten Benutzerkennung TSOS wird eine Task gestartet. |
(2) | SDF-A wird geladen und gestartet. |
(3) | Die Gruppensyntaxdatei SYS.SDF.GROUP.SYNTAX.EXAMPLE wird eröffnet und dabei neu angelegt. Standardmäßig ist die aktivierte Systemsyntaxdatei als Referenzdatei zugewiesen. Die in der Referenzdatei stehenden Kommandodefinitionen können in der eröffneten Gruppensyntaxdatei verändert werden. |
(4) | Die Kommandos LOAD und EXECUTE werden gesperrt. |
(5) | Das Kommando START-PROGRAM wird ausgegeben. Standardmäßig hat die Ausgabe den Umfang der Stufe MINIMUM: |
START-PROGRAM(SRPG,SR,START-PROG) FROM :2OSH:$TSOS.SYSSDF.BLSSERV.023 (SYSTEM) FROM-FILE = STRUCTURE: *MODULE LIBRARY = *DBL-DEFAULT STRUCTURE: *LINK LINK = ELEMENT-OR-SYMBOL(ELEMENT,ELEM) = *ALL STRUCTURE: composed-name VERSION = *STD STRUCTURE: c-string VERSION = *STD PROGRAM-MODE = *DBL-DEFAULT RUN-MODE = *DBL-DEFAULT STRUCTURE: *ADVANCED ALTERNATE-LIBRARIES = *DBL-DEFAULT NAME-COLLISION = *DBL-DEFAULT UNRESOLVED-EXTRNS = *DBL-DEFAULT ERROR-EXIT = *DBL-DEFAULT MESSAGE-CONTROL = *DBL-DEFAULT LOAD-INFORMATION = *DBL-DEFAULT PROGRAM-MAP = *DBL-DEFAULT STRUCTURE: *SYSLST SYSLST-NUMBER = *STD STRUCTURE: *BOTH SYSLST-NUMBER = *STD SHARE-SCOPE = *DBL-DEFAULT STRUCTURE: *MEMORY-POOL SCOPE = *ALL IGNORE-ATTRIBUTES = *DBL-DEFAULT REP-FILE = *DBL-DEFAULT AUTOLINK = *DBL-DEFAULT PROGRAM-VERSION = *DBL-DEFAULT STRUCTURE: *PHASE LIBRARY = ELEMENT = VERSION = *STD CPU-LIMIT = *JOB-REST TEST-OPTIONS = *DBL-DEFAULT MONJV = *NONE RESIDENT-PAGES = *PARAMETERS STRUCTURE: *PARAMETERS MINIMUM = *STD MAXIMUM = *STD VIRTUAL-PAGES = *STD
|
(6) | Der Operand FROM-FILE des Kommandos START-PROGRAM wird in mittlerem Umfang ausgegeben. Die Ausgabe der Strukturen, die an den Werten MODULE und PHASE hängen, wird unterdrückt. |
(7) | Es wird auf den Operanden FROM-FILE des Kommandos START-PROGRAM positioniert. Dieser Operand wird aktuelles Objekt in der geöffneten Syntaxdatei. |
(8) | Der Operand, der aktuelles Objekt ist (FROM-FILE), erhält den Default-Wert „$EDT“. Der Operand wird an der Benutzeroberfäche des Kommandos ausgeblendet. Voraussetzung für das Ausblenden ist, dass der Operand einen Default-Wert erhält. |
(9) | Die übrigen Operanden des Kommandos START-PROGRAM werden ebenfalls ausgeblendet. Beim Positionieren ist es nicht erforderlich, den Kommandonamen anzugeben, da die in Arbeitsschritt 7 gemachte Angabe noch wirksam ist. |
(10) | Der ausgeblendete Operand RESIDENT-PAGES hat einen Default-Wert, an dem eine Struktur hängt. Die in dieser Struktur stehenden Operanden müssen ebenfalls ausgeblendet werden. |
|
(11) | Der Kopf des Kommandos START-PROGRAM wird mit dem zugehörigen Hilfetext ausgegeben. |
(12) | Es wird auf das Kommando START-PROGRAM positioniert. |
(13) | Der Name des Kommandos, das aktuelles Objekt ist (START-PROGRAM), wird in START-EDITOR geändert. Die Hilfetexte werden entsprechend des eingeschränkten Funktionsumfangs verändert. Falls in Ihrem System bereits ein Kommando START-EDITOR definiert wurde, wird die Anweisung abgewiesen. |
(14) | Das Kommando START-EDITOR wird ausgegeben (siehe unten). Die Ausgabe hat den Umfang der Stufe MINIMUM. Als Standardnamen hat das Kommando seinen früheren Namen START-PROGRAM sowie einige Kurznamen. Die Operanden der Strukturen FROM-FILE=*MODULE(...) und FROM-FILE=*PHASE(...) werden in SDF-A noch angezeigt, da sie mit PRESENCE=*NORMAL definiert sind. An der Benutzeroberfläche sind diese Operanden aber nicht mehr sichtbar und sie können auch nicht mehr eingegeben werden. |
|
(15) | Damit tatsächlich nur das Programm EDT gestartet werden kann, müssen alle anderen (noch funktionierenden) START-Kommandos gesperrt werden. Die START-Kommandos vieler Programme werden jedoch auch ohne Sperrung mit der Meldung
|
(16) | Das Kommando LOAD-PROGRAM wird ausgegeben. Die Ausgabe hat den Umfang der Stufe MINIMUM (siehe "Beispiel 4: Nur ein Programm (EDT) zulassen"). |
LOAD-PROGRAM(LDPG,LOAD-PROG) FROM :2OSH:$TSOS.SYSSDF.BLSSERV.023 (SYSTEM) FROM-FILE = STRUCTURE: *MODULE LIBRARY = *DBL-DEFAULT STRUCTURE: *LINK LINK = ELEMENT-OR-SYMBOL(ELEMENT,ELEM) = *ALL STRUCTURE: composed-name VERSION = *STD STRUCTURE: c-string VERSION = *STD PROGRAM-MODE = *DBL-DEFAULT RUN-MODE = *DBL-DEFAULT STRUCTURE: *ADVANCED ALTERNATE-LIBRARIES = *DBL-DEFAULT NAME-COLLISION = *DBL-DEFAULT UNRESOLVED-EXTRNS = *DBL-DEFAULT ERROR-EXIT = *DBL-DEFAULT MESSAGE-CONTROL = *DBL-DEFAULT LOAD-INFORMATION = *DBL-DEFAULT PROGRAM-MAP = *DBL-DEFAULT STRUCTURE: *SYSLST SYSLST-NUMBER = *STD STRUCTURE: *BOTH SYSLST-NUMBER = *STD SHARE-SCOPE = *DBL-DEFAULT STRUCTURE: *MEMORY-POOL SCOPE = *ALL IGNORE-ATTRIBUTES = *DBL-DEFAULT REP-FILE = *DBL-DEFAULT AUTOLINK = *DBL-DEFAULT PROGRAM-VERSION = *DBL-DEFAULT STRUCTURE: *PHASE LIBRARY = ELEMENT = VERSION = *STD CPU-LIMIT = *JOB-REST TEST-OPTIONS = *DBL-DEFAULT MONJV = *NONE RESIDENT-PAGES = *PARAMETERS STRUCTURE: *PARAMETERS MINIMUM = *STD MAXIMUM = *STD VIRTUAL-PAGES = *STD
|
(17) | Der Operand FROM-FILE des Kommandos LOAD-PROGRAM wird in mittlerem Umfang ausgegeben. Die Ausgabe der Strukturen, die an den Werten *MODULE und *PHASE hängen, wird unterdrückt. |
(18) | Es wird auf den Operanden FROM-FILE im Kommando LOAD-PROGRAM positioniert. Dieser Operand wird aktuelles Objekt in der eröffneten Syntaxdatei. |
(19) | Der Operand, der aktuelles Objekt ist (FROM-FILE), erhält den Default-Wert $EDT. Danach ist die Definition des ersten zu FROM-FILE gehörenden Operandenwerts (FILENAME) aktuelles Objekt. |
(20) | Für die Operandenwertdefinition, die aktuelles Objekt ist (FILENAME), werden die Werte $EDT und EDT als einzig zulässig definiert. Für den Eingabewert EDT wird definiert, dass SDF nicht ihn, sondern den Wert $EDT an die Implementierung übergibt. Danach ist die Definition des nächsten zu FROM-FILE gehörenden Operandenwerts (MODULE) aktuelles Objekt. |
(21) | Die Operandenwertdefinition, die aktuelles Objekt ist (MODULE), wird gelöscht. Achtung: Danach ist die Definition des Operandenwerts FILENAME aktuelles Objekt. |
(22) | Die Operandenwertdefinition PHASE des Operanden FROM-FILE im Kommando LOAD-PROGRAM wird gelöscht. Dabei ist es nicht erforderlich, den Kommandonamen anzugeben, da die Angabe in Arbeitsschritt 18 noch wirksam ist. |
(23) | Die übrigen Operanden des Kommandos LOAD-PROGRAM werden ausgeblendet. |
|
(24) | Das Kommando LOAD-PROGRAM wird ausgegeben. Die Ausgabe hat den Umfang der Stufe MAXIMUM. Es besitzt als einzigen an der Benutzeroberfläche sichtbaren Operanden den Operanden FROM-FILE. Dieser hat den Default-Wert $EDT. Die für ihn zugelassenen Werte sind $EDT und EDT. |
(25) | Die Datei SYS.SDF.GROUP.SYNTAX.EXAMPLE wird als mehrbenutzbar erklärt. Es ist nur Lesezugriff auf sie erlaubt. |
(26) | Die PROFILE-ID USER1 wird der Benutzerkennung EXAMPLE zugeordnet. |
(27) | Die Gruppensyntaxdatei SYS.SDF.GROUP.SYNTAX.EXAMPLE wird der PROFI-LE-ID USER1 zugewiesen. Diese Zuweisung wird permanent in der SDF-Parameterdatei abgespeichert. |
(28) | In der Datei $EXAMPLE.EDT steht das Programm SDF-A.Die privilegierte Benutzerkennung TSOS darf auf diese Datei zugreifen, weil das Kommando START-PROGRAM für TSOS nicht eingeschränkt ist. Im Folgenden wird gezeigt, dass ein Benutzer unter der Benutzerkennung EXAMPLE selbst dann nicht auf ein Programm namens EDT zugreifen kann, wenn unter seiner eigenen Benutzerkennung dieses Programm existiert. Es ist auf Grund der oben definierten Einschränkung tatsächlich nur das Laden von $EDT möglich. |
|
(29) | Unter der Benutzerkennung EXAMPLE wird eine Task gestartet. |
(30) | Die aktivierten Syntaxdateien werden angezeigt. Die zuvor von der privilegierten Benutzerkennung TSOS bearbeitete Gruppensyntaxdatei SYS.SDF.GROUP.SYNTAX.EXAMPLE ist aktiviert. |
(31) | Da das Kommando EXEC entfernt wurde, interpretiert SDF die Benutzereingabe als das SDF-P-Kommando EXEC-CMD und weist es wegen fehlerhafter Syntax ab. |
|
(32) | SDF akzeptiert im Kommando LOAD-PROGRAM den Operandenwert $SDF-A nicht. |
(33) | SDF übergibt an die Implementierung nicht den Wert EDT, sondern den Wert $EDT. Es wird nicht das in der Datei $EXAMPLE.EDT stehende Programm SDF-A (siehe Arbeitsschritt 28) geladen, sondern das Programm, das in der Datei $TSOS.EDT steht. |
(34) | SDF übergibt den Default-Wert $EDT des Operanden FROM-FILE an die Implementierung. Der EDT wird geladen. |
(35) | START-PROGRAM ist der Standardname des umbenannten Kommandos START-EDITOR. SDF erkennt das Kommando START-EDT und weist den Operandenwert $SDF-A als unzulässig zurück. |
(36) | Die Eingabe START-EDITOR bewirkt, dass der EDT geladen und gestartet wird. |
(37) | An seinem Standardnamen START-PROGRAM erkennt SDF das Kommando START-EDITOR. Der EDT wird geladen und gestartet. |