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 5: Menge der benutzbaren Programme einschränken

&pagelevel(4)&pagelevel

Die Benutzer der Benutzerkennung EXAMPLE sollen nur Programme laden und starten dürfen, die unter der Benutzerkennung SDFUSR katalogisiert sind. Diese Programme stehen ausnahmslos in Dateien und nicht in Bibliotheken.

Über die Gruppensyntaxdatei $SDFUSR.SYS.SDF.GROUP.SYNTAX.EXAMPLE lässt sich die gewünschte Einschränkung verwirklichen. Sie soll die Versionsnummer EXAMPLE#5 erhalten. In ihr sind die Definitionen der Kommandos START-PROGRAM und LOAD-PROGRAM entsprechend zu verändern. Da die Benutzer der Benutzerkennung EXAMPLE keine Programme testen, soll beim Verändern der beiden Kommandodefinitionen der Operand TEST.OPTIONS gesperrt werden.

Hinweis

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.

Die Definitionen der alten Kommandos EXECUTE und LOAD lassen sich nicht in der gewünschten Art verändern. Würde man EXECUTE und LOAD nur für den Dialog- und Stapelbetrieb sperren, nicht aber für den Aufruf über den CMD-Makro, so ließe sich die Sperre leicht umgehen. Die Kommandos sind deshalb generell zu sperren.

Systemweit ist die Benutzerführung auf GUIDANCE=*EXPERT voreingestellt.
Für die Benutzerkennung EXAMPLE soll die Benutzerführung die Voreinstellung GUIDANCE=*NO haben. Unter der Benutzerkennung SDFUSR ist der EDT verfügbar.

/set-logon-parameters sdfusr,... ——————————————————————————————————————  (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)

                                                                                       

(1)

Unter der Benutzerkennung SDFUSR 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. Für die folgende Bearbeitung wird als Referenzdatei standardmäßig die aktivierte Systemsyntaxdatei zugewiesen.

//set-glob vers=example#5,guid=*n —————————————————————————————————————  (4)
//remove *com((load,exec)) ————————————————————————————————————————————  (5)
//show *com(start-prog),att-inf=*n,size=*max ——————————————————————————  (6)
START-PROGRAM(SRPG,SR,START-PROG)

   FROM :2OSH:$TSOS.SYSSDF.BLSSERV.023 (SYSTEM)
     Loads a program (load or object module) to the memory and starts it
//edit *com(start-prog) ———————————————————————————————————————————————  (7)
//mod-cmd help=(e('Loads a $SDFUSR-program to the memory and starts it.'),-
//d('Laedt ein $SDFUSR-Programm in den Speicher und startet es.')) ————  (8) 
//show *oper(from-f),siz=*med,att-inf=*n ——————————————————————————————  (9) 
FROM-FILE =

     filename or *MODULE() or *PHASE()
//show *oper(from-f),impl=*y,att-inf=*n ——————————————————————————————— (10)
ADD-OPERAND NAME=FROM-FILE,INTERNAL-NAME=FROMFI,STANDARD-NAME=          -

            FROM-FILE,HELP=(D(TEXT='Name der Datei, die das Lademodul -
  enthaelt 
oder Angaben zur Bindemodul- bzw. Lademodulbibliothek'),E(   -

            TEXT='name of the file containing the load module or        -
  specification of the object module/load module library')),            -

            RESULT-OPERAND-NAME=*POSITION(POSITION=1),                 -

            CONCATENATION-POS=1
//add-oper prefix,def='$sdfusr.',res-oper-n=*pos(1),conc-pos=1,pres=*int (11)

                                                                                       

(4)

Die Gruppensyntaxdatei SYS.SDF.GROUP.SYNTAX.EXAMPLE erhält die Versionsnummer EXAMPLE#5. Die Benutzerführung ist mit GUIDANCE=*NO voreingestellt.

(5)

Die Kommandos LOAD und EXECUTE werden generell gesperrt.

(6)

Die SDF-A-Anweisung, mit der das Kommando START-PROGRAM definiert ist, wird ausgegeben.

(7)

Es wird auf das Kommando START-PROGRAM positioniert, d.h. dieses Kommando wird aktuelles Objekt der eröffneten Gruppensyntaxdatei.

(8)

Der Hilfetext des Kommandos, das aktuelles Objekt ist, wird geändert. Danach wird der erste Operand dieses Kommandos (FROM-FILE) aktuelles Objekt.

(9)

Der Operand FROM-FILE des gerade bearbeiteten Kommandos START-PRO-GRAM wird in der mittleren Ausführlichkeitsstufe ausgegeben.

(10)

Die SDF-A-Anweisung, mit der der Operand FROM-FILE des Kommandos START-PROGRAM definiert ist, wird ausgegeben.

(11)

Der Operand PREFIX wird definiert. SDF-A fügt seine Definition nach dem aktuellen Objekt (FROM-FILE) in die Definition des Kommandos START-PROGRAM ein. An der Benutzeroberfläche des Kommandos START-PROGRAM ist er unsichtbar. Sein Default-Wert ist „$SDFUSR.“. Er hat bei der Übergabe an die Implementierung die gleiche Position wie der Operand FROM-FILE (siehe Arbeitsschritt 10) und steht bei der Verkettung mit ihm an erster Stelle.

//add-value *part-filename ———————————————————————————————————————————— (12)
//edit *oper(from-f) —————————————————————————————————————————————————— (13)
//mod-oper conc-pos=2,help=(e('specifies the name of the file holding the -
//load module.'),d('Name der Datei, die das Lademodul enthaelt.')) ———— (14)
//mod-value *filename(user-id=*n) ————————————————————————————————————— (15)
//remove *value ——————————————————————————————————————————————————————— (16)
//remove *value(from-f,phase) ————————————————————————————————————————— (17)
//show *oper(test-opt) ———————————————————————————————————————————————— (18)
TEST-OPTIONS = *NONE

//edit *oper(test-opt) ———————————————————————————————————————————————— (19)
//mod-oper pres=*intern ——————————————————————————————————————————————— (20)

                                                                                       

(12)

Für den Operanden PREFIX wird ein Operandenwert vom Typ PARTIAL-FILENAME definiert.

(13)

Es wird auf den Operanden FROM-FILE des gerade bearbeiteten Kommandos START-PROGRAM positioniert, d.h. dieser Operand wird aktuelles Objekt.

(14)

Der Operand, der aktuelles Objekt ist (FROM-FILE), soll bei einer Verkettung mit dem Operanden PREFIX an zweiter Stelle stehen. Die Hilfetexte für FROM-FILE werden verändert. Danach wird der erste Operandenwert (FILENAME) von FROM-FILE aktuelles Objekt.

(15)

Die Definition des Operandenwerts, der aktuelles Objekt ist (FILENAME), wird verändert. Die Angabe der Benutzerkennung als Teil des Dateinamens ist nicht mehr zulässig. Danach wird der Operandenwert MODULE aktuelles Objekt.

(16)

Die Definition des Operandenwerts, der aktuelles Objekt ist (MODULE), wird gelöscht. Die an ihm hängende Struktur wird ebenfalls gelöscht. Achtung: Danach ist die Definition des Operandenwerts FILENAME aktuelles Objekt.

(17)

Die Definition des zum Operanden FROM-FILE gehörenden Operandenwerts PHASE wird gelöscht.

(18)

Der Operand TEST-OPTIONS wird ausgegeben.

(19)

Es wird auf den Operanden TEST-OPTIONS des gerade bearbeiteten Kommandos START-PROGRAM positioniert, d.h. TEST-OPTIONS wird aktuelles Objekt.

(20)

Der Operand, der aktuelles Objekt ist (TEST-OPTIONS), wird an der Benutzeroberfläche des Kommandos START-PROGRAM ausgeblendet.

//show *com(load-prog),att-inf=*n,size=*max ——————————————————————————— (21)
LOAD-PROGRAM(LDPG,LOAD-PROG)

   FROM :2OSH:$TSOS.SYSSDF.BLSSERV.023 (SYSTEM)
    Loads a program (load or object module) to the memory
//edit *com(load-prog)
//mod-cmd help=(e('Loads a $SDFUSR-program to the memory.'),-
//d('Laedt ein $SDFUSR-Programm in den Speicher.'))
//show *oper(from-f),siz=*med,att-inf=*n
FROM-FILE =

     filename or *MODULE() or *PHASE()
//show *oper(from-f),impl=*y,att-inf=*n
ADD-OPERAND NAME=FROM-FILE,INTERNAL-NAME=FROMFI,STANDARD-NAME=         -

            FROM-FILE,HELP=(D(TEXT='Name der Datei, die das Lademodul  -
  enthaelt 
oder Angaben zur Bindemodul- bzw. Lademodulbibliothek'),E(  -

            TEXT='name of the file containing the load  module or      -
  specification of the object module/load module library')),            

            RESULT-OPERAND-NAME=*POSITION(POSITION=1),                 

            CONCATENATION-POS=1
//copy *oper(prefix,orig=*com(start-prog)) ———————————————————————————— (22)
//edit *oper(from-f)
//mod-oper conc-pos=2,help=(e('specifies the name of the file holding -
//the load module.'),d('Name der Datei, die in das Lademodul enthaelt.'))
//mod-value *filename(user-id=*n)
//remove *value
//remove *value(from-f,phase)
//show *oper(test-opt)
TEST-OPTIONS = *NONE

//edit *oper(test-opt)
//mod-oper pres=*intern
//end

                                                                                       

(21)

Die Definition des Kommandos LOAD-PROGRAM wird ausgegeben und in analoger Weise geändert wie zuvor das Kommando START-PROGRAM.

(22)

Der Operand PREFIX und sein Operandenwert werden für das Kommando LOAD-PROGRAM definiert. Dies geschieht nicht mit der ADD-Anweisung, sondern mit der COPY-Anweisung. Die in Arbeitsschritt 11 und 12 für START-PROGRAM erstellten Definitionen werden kopiert.

/mod-f-attr sys.sdf.group.syntax.example,access=*read,user-acc=*all ——— (23)
/start-prog demo —————————————————————————————————————————————————————— (24)
%  BLS0517 MODULE 'SDAMAIN' LOADED
%  SDA0001 'SDF-A' VERSION '04.1E10' STARTED
//open-syntax-file ....
 .
 .
//end
/exit-job
 .
 .
/set-logon-parameters tsos,... ———————————————————————————————————————— (25)
/mod-user example,profile-id=user1 ———————————————————————————————————— (26)
/mod-sdf-param scope=*permanent,syntax-file=*group($sdfusr.sys.sdf.group.-

/syntax.example,user1) ———————————————————————————————————————————————— (27)
% CMD0681 SYNTAX FILE '$SDFUSR.SYS.SDF.GROUP.SYNTAX.EXAMPLE' INSERTED IN

PARAMETER FILE '$.SYSPAR.SDF'

% CMD0718 GROUP SYNTAX FILE '$SDFUSR.SYS.SDF.GROUP.SYNTAX.EXAMPLE' HAS BEEN

ASSOCIATED WITH 'PROFILE-ID USER1' IN MEMORY TABLES

/exit-job
 .
 .
 .

                                                                                       

(23)

Die Datei SYS.SDF.GROUP.SYNTAX.EXAMPLE wird als mehrbenutzbar erklärt. Es ist nur Lesezugriff auf sie erlaubt.

(24)

Das unter der Benutzerkennung SDFUSR katalogisierte Programm DEMO wird geladen und gestartet. Es ist das Programm SDF-A.

(25)

Unter der privilegierten Benutzerkennung TSOS wird eine Task gestartet.

(26)

Die PROFILE-ID USER1 wird der Benutzerkennung EXAMPLE zugewiesen.

(27)

Die Gruppensyntaxdatei $SDFUSR.SYS.SDF.GROUP.SYNTAX.EXAMPLE wird der PROFILE-ID USER1 zugewiesen. Die Zuweisung wird permanent in der SDF-Parameterdatei abgespeichert.

/set-logon-parameters example,... ————————————————————————————————————— (28)
 .
 .
%CMD:show-sdf-options ————————————————————————————————————————————————— (29)
%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 : EXAMPLE#5
%  USER      : *NONE
%CURRENT SDF OPTIONS :

%  GUIDANCE           : *NO
%  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
%CMD:exec sdf-a ——————————————————————————————————————————————————————— (30)
%  SDP0222 OPERAND 'CMD' INVALID IN /EXEC-CMD, ERROR 'SDP0116'. IN SYSTEM
MODE: /HELP-MSG SDP0116

                                                                                       

(28)

Unter der Benutzerkennung EXAMPLE wird eine Task gestartet.

(29)

Die aktivierten Syntaxdateien werden angezeigt. Die Gruppensyntaxdatei $SDFUSR.SYS.SDF.GROUP.SYNTAX.EXAMPLE (Versionsnummer EXAMP-LE#5) ist aktiviert. Die Benutzerführung ist auf GUIDANCE=*NO eingestellt. SDF fordert deshalb zur Eingabe von Kommandos und Anweisungen mit „%CMD:“ bzw. „%STMT:“ auf.

(30)

Da das Kommando EXEC entfernt wurde, interpretiert SDF die Benutzereingabe als das SDF-P-Kommando EXEC-CMD und weist es wegen fehlerhafter Syntax ab.

%CMD:start-prog sdf-a ————————————————————————————————————————————————— (31)
%  BLS0514 ERROR WHEN OPENING FILE $SDFUSR.SDF-A . DMS ERROR '0D33'. IN
SYSTEM MODE /HELP-MSG DMS0D33

%  NRTT101 ABNORMAL JOBSTEP TERMINATION BLS0514
%CMD:help-msg 0d33
%  DMS0D33 PROGRAM ERROR: REQUESTED FILE NOT CATALOGED
%  ? The requested file has not been cataloged in the system.
%    For the file or job variable (JV) no catalog entry could be found.
%  ! Correct the error and try again.
%CMD:start-prog $sdfusr.demo —————————————————————————————————————————— (32)
%  CMD0051 INVALID OPERAND 'FROM-FILE'
%  CMD0072 ATTRIBUTE SPECIFIED IN FILE NAME '$SDFUSR.DEMO' NOT PERMITTED
%ENTER OPERANDS:

%$sdfusr.demo

demo —————————————————————————————————————————————————————————————————— (33)
%  BLS0517 MODULE 'SDAMAIN' LOADED ———————————————————————————————————— (34)
%  SDA0001 'SDF-A' VERSION '04.1E10' STARTED
%STMT:open-syntax-file user,,*crea ———————————————————————————————————— (35)

                                                                                       

(31)

SDF akzeptiert den Kommandonamen START-PROGRAM. An die Implementierung übergibt SDF aber den Dateinamen $SDFUSR.SDF-A, den es durch Verkettung gebildet hat. Diese Datei existiert nicht.

(32)

SDF akzeptiert den Dateinamen $SDFUSR.DEMO nicht, weil er verbotenerweise eine Benutzerkennung enthält.

(33)

SDF akzeptiert den Dateinamen DEMO. An die Implementierung übergibt SDF aber den Dateinamen $SDFUSR.DEMO, den es durch Verkettung gebildet hat.

(34)

Das Programm SDF-A, das unter der Benutzerkennung SDFUSR in der Datei DEMO steht (siehe Arbeitsschritt 24), wird geladen und gestartet.

(35)

Die Benutzersyntaxdatei USER wird geöffnet und dabei neu eingerichtet. Standardmäßig werden die aktivierte Systemsyntaxdatei und die aktivierte Gruppensyntaxdatei als Referenzdateien zugewiesen.

%STMT:show *com(start-prog),siz=*max —————————————————————————————————— (36)
START-PROGRAM(SRPG,SR,START-PROG)

   FROM SYS.SDF.GROUP.EXAMPLE (GROUP)
     Loads a $SDFUSR-program to the memory and starts it.
     FROM-FILE =
          filename_1..54_without-user-id-generation
          Specifies the name of the file holding the load module.
     CPU-LIMIT = JOB-REST
          JOB-REST or integer_1..32767
          specifies the maximum CPU time in seconds the program may use for
          execution
     MONJV = *NONE
          *NONE or filename_1..54_without-generation
          specifies the name of the job variable which is to monitor the
          program.
     RESIDENT-PAGES = *PARAMETERS
          *PARAMETERS()
          specifies the number of resident memory pages required for program
          execution
          STRUCTURE: *PARAMETERS
               MINIMUM = *STD
                    *STD or integer_0..32767
                    specifies the minimum number of resident memory pages
                    required
               MAXIMUM = *STD
                    *STD or integer_0..32767
                    specifies the maximum number of resident memory pages
                    required
     VIRTUAL-PAGES = *STD
          *STD or integer_0..32767
          specifies the total number of memory pages (both resident and
          pageable) required for program execution
%STMT:end
%CMD:exit-job

                                                                                       

(36)

Die Definition des Kommandos START-PROGRAM wird in der ausführlichsten Form ausgegeben. Die durchgeführten Änderungen sind sichtbar. Der Operand TEST-OPTIONS ist ausgeblendet.