Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Beispiel 4: Nur ein Programm (EDT) zulassen

&pagelevel(4)&pagelevel

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.

/set-logon-parameters tsos,... ————————————————————————————————————————  (1)
 .
 .
/start-sdf-a ——————————————————————————————————————————————————————————  (2)
%  BLS0517 MODULE 'SDAMAIN' LOADED
%  SDA0001 'SDF-A' VERSION '04.1E10' STARTED
//open-syntax-file sys.sdf.group.syntax.example,*group,*crea ——————————  (3)
//remove *command((load,exec)) ————————————————————————————————————————  (4)
//show *command(start-prog) ———————————————————————————————————————————  (5)

                                                                                       

(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
                                                                                       

//show *operand(from-f,orig=*com(start-prog)),siz=*med,att-inf=*n —————  (6)
FROM-FILE =

     filename or *MODULE() or *PHASE()
//edit *oper(from-f,orig=*com(start-prog)) ————————————————————————————  (7)
//mod-oper def='$edt',pres=*intern ————————————————————————————————————  (8)
//edit *oper(cpu-lim) —————————————————————————————————————————————————  (9)
//mod-oper pres=*intern
//edit *oper(test-opt)
//mod-oper pres=*intern
//edit *oper(monjv)
//mod-oper pres=*intern
//edit *oper(resid-p)
//mod-oper pres=*intern
//edit *oper(resid-p,par,min) ————————————————————————————————————————— (10)
//mod-oper pres=*intern
//edit *oper(resid-p,par,max)
//mod-oper pres=*intern
//edit *oper(virt-p)
//mod-oper pres=*intern

                                                                                       

(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.

//show *com(start-prog),att-inf=*n,size=*max —————————————————————————— (11)
START-PROGRAM(SRPG,SR,START-PROG)

     Loads a program (load or object module) to the memory and starts it
//edit *com(start-prog) ——————————————————————————————————————————————— (12)
//mod-cmd start-editor,help=(e('Loads the EDT to the memory and starts -
//it.'),d('Laedt den EDT in den Speicher und startet ihn.')) —————————— (13)
//show *com(start-editor) ————————————————————————————————————————————— (14)

                                                                                       

(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.

START-EDITOR(SRPG,SR,START-PROG,START-PROGRAM)

FROM SYS.SDF.GROUP.EXAMPLE (GROUP)

LIBRARY = *STD

STRUCTURE: *LINK

LINK =

ELEMENT = *ALL

STRUCTURE: filename

VERSION = *STD

STRUCTURE: c-string

VERSION = *STD

PROGRAM-MODE = *24

RUN-MODE = *STD

STRUCTURE: *ADVANCED

ALTERNATE-LIBRARIES = *NO

NAME-COLLISION = *STD

UNRESOLVED-EXTRNS = *STD

ERROR-EXIT = X'FFFFFFFF'

MESSAGE-CONTROL = *INFORMATION

LOAD-INFORMATION = *DEFINITIONS

PROGRAM-MAP = *NO

STRUCTURE: *SYSLST                                   

SYSLST-NUMBER = *STD

STRUCTURE: *BOTH

SYSLST-NUMBER = STD

SHARE-SCOPE = *SYSTEM-MEMORY

STRUCTURE: *MEMORY-POOL

SCOPE = *ALL

IGNORE-ATTRIBUTES = *NONE

REP-FILE = *NONE

AUTOLINK = *YES

LIBRARY =

ELEMENT =

VERSION = *STD

//remove *com((start-archive,start-binder,start-hsms,...)) ———————————— (15)

//show *com(load-prog) ———————————————————————————————————————————————— (16)

                                                                                       

(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

% CMD0185 OPERAND NAME 'FROM-FILE' COULD NOT BE IDENTIFIEDabgewiesen.

(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
                                                                                       

//show *oper(from-f,orig=*com(load-prog)),siz=*med,att-inf=*n ————————— (17)
FROM-FILE =

     filename or *MODULE() or *PHASE()
//edit *oper(from-f,orig=*com(load-prog)) ————————————————————————————— (18)
//mod-oper def='$edt' ————————————————————————————————————————————————— (19)
//mod-value value=('$edt','edt'(outp='$edt')) ————————————————————————— (20)
//remove *value ——————————————————————————————————————————————————————— (21)
//remove *value(from-f,phase) ————————————————————————————————————————— (22)
//edit *oper(cpu-lim) ————————————————————————————————————————————————— (23)
//mod-oper pres=*intern
//edit *oper(test-opt)
//mod-oper pres=*intern
//edit *oper(monjv)
//mod-oper pres=*intern
//edit *oper(resid-p)
//mod-oper pres=*intern
//edit *oper(resid-p,par,min)
//mod-oper pres=*intern
//edit *oper(resid-p,par,max)
//mod-oper pres=*intern

                                                                                       

(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.

//edit *oper(virt-p)
//mod-oper pres=*intern
//show *com(load-prog),att-info=*y,siz=*max ——————————————————————————— (24)
LOAD-PROGRAM(LDPG,LOAD-PROG)

   FROM SYS.SDF.GROUP.EXAMPLE (GROUP)
     loads a program (load or  object module) to the memory
     FROM-FILE = $EDT
          $EDT or EDT
          name of the file containing the load  module or details of the
          object module/load module library
//end
/mod-f-attr sys.sdf.group.syntax.example,access=*read,user-acc=*all ——— (25)
/mod-user example,profile-id=user1 ———————————————————————————————————— (26)
/mod-sdf-parameters scope=*permanent,syntax-file=*group-
/(sys.sdf.group.syntax.example,user1) ————————————————————————————————— (27)
%  CMD0681 SYNTAX FILE '$.SYS.SDF.GROUP.SYNTAX.EXAMPLE' INSERTED IN
PARAMETER FILE '$.SYSPAR.SDF'

%  CMD0718 GROUP SYNTAX FILE '$.SYS.SDF.GROUP.SYNTAX.EXAMPLE' HAS BEEN
ASSOCIATED WITH 'PROFILE-ID USER1' IN MEMORY TABLES

/start-prog $example.edt —————————————————————————————————————————————— (28)
%  BLS0517 MODULE 'SDAMAIN' LOADED
%  SDA0001 'SDF-A' VERSION '04.1E10' STARTED
//end
/exit-job

                                                                                       

(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.

/set-logon-parameters example,... ————————————————————————————————————— (29)
/show-sdf-options ————————————————————————————————————————————————————— (30)
%SYNTAX FILES CURRENTLY ACTIVATED :

%  SYSTEM    : :2OSH:$TSOS.SYSSDF.SDF.045
%              VERSION : SESD04.5A300
%  SUBSYSTEM : :2OSH:$TSOS.SYSSDF.ACO.022
%              VERSION : SESD02.2A00
%  SUBSYSTEM : :2OSH:$TSOS.SYSSDF.ACS.140
%              VERSION : SESD14.0B100
 .
 .
%  SUBSYSTEM : :2OSH:$TSOS.SYSSDF.SDF-A.041
%              VERSION : SESD04.1E10
%  SUBSYSTEM : :2OSH:$TSOS.SYSSDF.TASKDATE.140
%              VERSION : SESD14.0A100
%  GROUP     : 2OSH:$.SYS.SDF.GROUP.SYNTAX.EXAMPLE
%              VERSION : UNDEFINED
%  USER      : *NONE
%CURRENT SDF OPTIONS :

%  GUIDANCE           : *EXPERT
%  LOGGING            : *INPUT-FORM
%  CONTINUATION       : *NEW-MODE
%  UTILITY-INTERFACE  : *NEW-MODE
%  PROCEDURE-DIALOGUE : *NO
%  MENU-LOGGING       : *NO
%  MODE               : *EXECUTION
%     CHECK-PRIVILEGES   : *YES
%  DEFAULT-PROGRAM-NAME : *NONE
%  FUNCTION-KEYS      : *STYLE-GUIDE-MODE
%  INPUT-HISTORY      : *ON
%     NUMBER-OF-INPUTS   : 20
%     PASSWORD-PROTECTION: *YES
/exec $sdf-a —————————————————————————————————————————————————————————— (31)
%  SDP0222 OPERAND 'CMD' INVALID IN /EXEC-CMD, ERROR 'SDP0116'. IN SYSTEM
MODE: /HELP-MSG SDP0116

                                                                                       

(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.

/load-program $sdf-a —————————————————————————————————————————————————— (32)
%  CMD0051 INVALID OPERAND 'FROM-FILE'
%  CMD0063 OPERAND VALUE '$SDF-A' NOT A MEMBER OF THE SINGLE VALUE LIST OF
 SCOPE '$EDT OR EDT'
/load-program edt ————————————————————————————————————————————————————— (33)
%  BLS0500 PROGRAM 'EDT', VERSION '16.6A' OF '1996-06-04' LOADED
%  BLS0552 COPYRIGHT (C) FUJITSU SIEMENS COMPUTERS GMBH 1996. ALL RIGHTS
RESERVED

/load-program ————————————————————————————————————————————————————————— (34)
%  BLS0500 PROGRAM 'EDT', VERSION '16.6A' OF '1996-06-04' LOADED
%  BLS0552 COPYRIGHT (C) FUJITSU SIEMENS COMPUTERS GMBH 1996. ALL RIGHTS
RESERVED

/start-program $sdf-a ————————————————————————————————————————————————— (35)
%  CMD0376 SPECIFICATION OF POSITIONAL OPERANDS UP FROM POSITION '1' NOT
 PERMITTED
/start-editor ————————————————————————————————————————————————————————— (36)
%  BLS0500 PROGRAM 'EDT', VERSION '16.5A' OF '1994-09-02' LOADED
 .
 .
halt

%  EDT8000 EDT TERMINATED
/start-program ———————————————————————————————————————————————————————— (37)
%  BLS0500 PROGRAM 'EDT', VERSION '16.6A' OF '1996-06-04' LOADED
.

 .
halt

%  EDT8000 EDT TERMINATED
/exit-job

                                                                                       

(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.