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 3: Dateischutz durch vierstellige Kennwörter erzwingen

&pagelevel(4)&pagelevel

Die Benutzer der Benutzerkennungen EXAMPLE und EXAMP1 sollen aus Gründen des Datenschutzes gezwungen werden, ihre Dateien mit vier Byte langen Kennwörtern zu schützen. Das lässt sich erreichen, indem entsprechende Einschränkungen in einer Gruppensyntaxdatei definiert werden, die diesen Benutzerkennungen zugeordnet wird.

Die Definitionen der Kommandos CREATE-FILE, CREATE-FILE-GROUP, MODIFY-FILE-ATTRIBUTES und MODIFY-FILE-GROUP-ATTRIBUTES sind in der Gruppensyntaxdatei entsprechend zu verändern. Die Definitionen der alten Kommandos CATALOG und FILE lassen sich nicht so verändern. Diese Kommandos müssen deshalb gesperrt werden. Da sie jedoch mit dem Makro CMD aufgerufen werden können, hätte ein generelles Sperren unvorhersehbare Folgen. Außerdem sollen sie für den Stapelbetrieb weiterhin zugelassen sein. Die Kommandos werden deshalb lediglich für den Dialogbetrieb gesperrt.

/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)
//edit *command(catalog) ——————————————————————————————————————————————  (4)
//modify-cmd dial-allow=*n,dial-proc-allow=*n —————————————————————————  (5)
//edit *command(file) —————————————————————————————————————————————————  (6)
//modify-cmd dial-allow=*n,dial-proc-allow=*n

                                                                                       

(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.Würde man keine Referenzdatei zuweisen, so müsste die folgende Bearbeitung etwas anders durchgeführt werden.

(4)

Es wird auf das Kommando CATALOG positioniert, d.h. dieses Kommando wird aktuelles Objekt.

(5)

Das Kommando, das aktuelles Objekt ist (CATALOG), wird für den Dialogbetrieb gesperrt. Auch innerhalb von Prozeduren, die im Dialogbetrieb ablaufen, ist es nicht zugelassen.

(6)

Das Kommando FILE wird aktuelles Objekt und anschließend für den Dialogbetrieb gesperrt.

//show *oper(prot,orig=*com(create-file)),siz=*max ————————————————————  (7)
PROTECTION = *STD

     *STD or *PARAMETERS()
     Specifies the protection attributes of the file
     STRUCTURE: *PARAMETERS
          PROTECTION-ATTR = *BY-DEF-PROT-OR-STD
            .
            .
            .
          WRITE-PASSWORD =
              *BY-PROT-ATTR-OR-NONE or *NONE or c-string_1..4 or
              x-string_1..8 or integer_-2147483648..2147483647 or
              *SECRET -default-: *BY-PROT-ATTR-OR-NONE
              Specifies the password for protection against unauthorized
               write access
          READ-PASSWORD =
              *BY-PROT-ATTR-OR-NONE or *NONE or c-string_1..4 or
              x-string_1..8 or integer_-2147483648..2147483647 or
              *SECRET -default-: *BY-PROT-ATTR-OR-NONE
              Specifies the password for protection against unauthorized
               read access
          EXEC-PASSWORD =
              *BY-PROT-ATTR-OR-NONE or *NONE or c-string_1..4 or
              x-string_1..8 or integer_-2147483648..2147483647 or
              *SECRET -default-: *BY-PROT-ATTR-OR-NONE
              Specifies the password for protection against unauthorized
               execution
          DESTROY-BY-DELETE = *BY-PROTECTION-ATTR
              *BY-PROTECTION-ATTR or *NO or *YES
            .
            .
            .
//edit *oper(prot,orig=*com(create-file)) —————————————————————————————  (8)
//modify-oper default='PARAMETERS' ————————————————————————————————————  (9)

                                                                                       

(7)

Der Operand PROTECTION des Kommandos CREATE-FILE wird in der ausführlichsten Form ausgegeben.

(8)

Es wird auf den Operanden PROTECTION des Kommandos CREATE-FILE positioniert, d.h. dieser Operand wird aktuelles Objekt der eröffneten Gruppensyntaxdatei SYS.SDF.GROUP.SYNTAX.EXAMPLE.

(9)

Der Operand, der aktuelles Objekt ist, soll den Default-Wert PARAMETERS haben. STD ist nicht mehr Default-Wert des Operanden PROTECTION. Anschließend wird der erste für PROTECTION definierte Operandenwert aktuelles Objekt. Das ist die Eingabealternative STD.

//remove *value ——————————————————————————————————————————————————————— (10)
//edit *oper(write-pass) —————————————————————————————————————————————— (11)
//modify-oper default=*n,struct-impl=*y ——————————————————————————————— (12)
//remove *value ——————————————————————————————————————————————————————— (13)
//edit *value(write-pass,*c-string) ——————————————————————————————————— (14)
//modify-value *c-string(short-l=4,long-l=4) —————————————————————————— (15)

                                                                                       

(10)

Die Definition des Operandenwerts, der aktuelles Objekt ist (*STD), wird gelöscht.

(11)

Es wird auf den Operanden WRITE-PASSWORD des Kommandos CREATE-FILE positioniert, d.h. dieser Operand wird aktuelles Objekt der eröffneten Gruppensyntaxdatei SYS.SDF.GROUP.SYNTAX.EXAMPLE. Der Operand WRITE-PASS-WORD steht in einer Struktur. Da sein Name kommandoglobal eindeutig ist, brauchen der Name des übergeordneten Operanden PROTECTION und der Struktureinleiter PARAMETERS nicht angegeben zu werden. Die explizite Angabe von CREATE-FILE ist nicht erforderlich, da SDF-A auf Grund der vorherigen Anweisungen standardmäßig das Kommando CREATE-FILE nimmt.

(12)

Der Operand, der aktuelles Objekt ist, soll keinen Default-Wert haben. Der bisherige Default-Wert *BY-PROT-ATTR-OR-NONE (entspricht *NONE, wenn mit SECOS keine andere Default-Protection vereinbart ist) ist nun nicht mehr Default-Wert des Operanden WRITE-PASSWORD. Wird bei der Kommandoeingabe jetzt der Operand WRITE-PASSWORD angegeben, dann wird implizit die Struktur PARAME-TERS ausgewählt. Anschließend wird der erste für WRITE-PASSWORD definierte Operandenwert aktuelles Objekt. Das ist die Eingabealternative vom Typ NONE.

(13)

Die Definition des Operandenwerts, der aktuelles Objekt ist (*BY-PROT-ATTR-OR-NONE), wird gelöscht.

(14)

Es wird auf die Eingabealternative vom Typ C-STRING des Operanden WRITE-PASSWORD im Kommando CREATE-FILE positioniert, d.h. dieser Operandenwert wird in der bearbeiteten Gruppensyntaxdatei SYS.SDF.GROUP.SYNTAX.EXAMP-LE aktuelles Objekt. Der Operand WRITE-PASSWORD steht in einer Struktur. Da sein Name kommandoglobal eindeutig ist, brauchen der Name des übergeordneten Operanden PROTECTION und der Struktureinleiter PARAMETERS nicht angegeben zu werden. Die explizite Angabe von CREATE-FILE ist nicht erforderlich, da SDF-A auf Grund der vorherigen Anweisungen standardmäßig das Kommando CREATE-FILE nimmt.

(15)

Für den Operandenwert, der aktuelles Objekt ist, wird definiert, dass er vom Typ C-STRING ist und sowohl seine Mindestlänge als auch seine Maximallänge vier Byte ist. Anschließend wird der nächste für WRITE-PASSWORD definierte Operandenwert aktuelles Objekt. Das ist die Eingabealternative vom Typ X-STRING.

//modify-value *x-string(short-l=4,long-l=4) —————————————————————————— (16)
//remove *value ——————————————————————————————————————————————————————— (17)
//edit *oper(read-pass) ——————————————————————————————————————————————— (18)
//modify-oper default=*n,struct-impl=*y
//remove *value
//edit *value(read-pass,*c-string)
//modify-value *c-string(4,4)
//modify-value *x-string(4,4)
//remove *value
//edit *oper(exec-pass) ——————————————————————————————————————————————— (19)
//modify-oper default=*n,struct-impl=*y
//remove *value
//edit *value(exec-pass,*c-string)
//modify-value *c-string(4,4)
//modify-value *x-string(4,4)
//remove *value

                                                                                       

(16)

Für den Operandenwert, der aktuelles Objekt ist, wird definiert, dass er vom Typ X-STRING ist und sowohl seine Mindestlänge als auch seine Maximallänge vier Byte (acht Zeichen in X-String-Notation) ist. Anschließend wird der nächste für WRITE-PASSWORD definierte Operandenwert aktuelles Objekt. Das ist die Eingabealternative vom Typ INTEGER.

(17)

Die Definition des Operandenwerts, der aktuelles Objekt ist (INTEGER), wird gelöscht.

(18)

Der Operand READ-PASSWORD und seine Werte werden genauso geändert wie zuvor der Operand WRITE-PASSWORD (siehe 12.-17.).

(19)

Der Operand EXEC-PASSWORD und seine Werte werden genauso geändert wie zuvor der Operand WRITE-PASSWORD (siehe 12.-17.).

//show *oper(prot,orig=*com(create-file)),siz=*max ———————————————————— (20)
PROTECTION = *STD

     *STD or *PARAMETERS()
     Specifies the protection attributes of the file
     STRUCTURE: *PARAMETERS
          PROTECTION-ATTR = *BY-DEF-PROT-OR-STD
            .
            .
            .
          WRITE-PASSWORD =
              *NONE or c-string_4..4 or x-string_7..8 or *SECRET
              Specifies the password for protection against unauthorized
               write access
          READ-PASSWORD =
              *NONE or c-string_4..4 or x-string_7..8 or *SECRET
              Specifies the password for protection against unauthorized
               read access
          EXEC-PASSWORD =
              *NONE or c-string_4..4 or x-string_7..8 or *SECRET
              Specifies the password for protection against unauthorized
               execution
          DESTROY-BY-DELETE = *BY-PROTECTION-ATTR
              *BY-PROTECTION-ATTR or *NO or *YES
            .
            .
            .
 .
 . ———————————————————————————————————————————————————————————————————— (21)
 .
//end
/mod-file-attr sys.sdf.group.syntax.example,access=*read,user-acc=*all   (22)
/exit-job
 .
 .

                                                                                       

(20)

Der Operand PROTECTION des Kommandos CREATE-FILE wird in der ausführlichsten Form ausgegeben.

(21)

Die Definitionen der Kommandos CREATE-FILE-GROUP, MODIFY-FILE-ATTRIBUTES und MODIFY-FILE-GROUP-ATTRIBUTES werden genauso geändert wie zuvor die des Kommandos CREATE-FILE.

(22)

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

/set-logon-parameters tsos,... ———————————————————————————————————————— (23)
/copy-file from-file=$sdfusr.sys.sdf.group.syntax.example,to-file=-
/sys.sdf.group.syntax.example,prot=*same —————————————————————————————— (24)
/modify-user example,profile-id=user1 ————————————————————————————————— (25)
/modify-sdf-param
scope=*temporary,syntax-file=*group-
/(sys.sdf.group.syntax.example,user1)
————————————————————————————————— (26)

/modify-user examp1,profile-id=user1 —————————————————————————————————— (27)
/exit-job
 .
 .

                                                                                       

(23)

Unter der privilegierten Benutzerkennung TSOS wird eine Task gestartet.

(24)

Die Gruppensyntaxdatei $SDUSR.SYS.SDF.GROUP.SYNTAX.EXAMPLE, die zuvor unter der Benutzerkennung SDFUSR erstellt wurde, wird kopiert. Der Name der Kopie ist $TSOS.SYS.SDF.GROUP.SYNTAX.EXAMPLE. Sie hat die gleichen Schutzmerkmale wie die Originaldatei.

(25)

Die PROFILE-ID USER1 wird der Benutzerkennung EXAMPLE zugewiesen.

(26)

Die Gruppensyntaxdatei SYS.SDF.GROUP.SYNTAX.EXAMPLE wird der PROFILE-ID USER1 zugewiesen.

(27)

Die PROFILE-ID USER1 wird der Benutzerkennung EXAMP1 zugewiesen.

/set-logon-parameters example ————————————————————————————————————————— (28)
/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 : 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
/catalog demo ————————————————————————————————————————————————————————— (30)
%  CMD0087 OPERATION NAME 'CATALOG' IS NOT PERMITTED AT THE MOMENT
/file demo ———————————————————————————————————————————————————————————— (31)
% CMD0087 OPERATION NAME 'FILE' IS NOT PERMITTED AT THE MOMENT

                                                                                       

(28)

Unter der Benutzerkennung EXAMPLE wird eine Task gestartet.

(29)

Die aktivierten Syntaxdateien werden angezeigt. Die Gruppensyntaxdatei $.SYS.SDF.GROUP.SYNTAX.EXAMPLE ist aktiviert.

(30)

SDF akzeptiert das Kommando CATALOG nicht. Weil es für den Dialogbetrieb gesperrt ist, wird es als unbekannt behandelt.

(31)

SDF akzeptiert das Kommando FILE nicht. Weil es für den Dialogbetrieb gesperrt ist, wird es als unbekannt behandelt.

/create-file demo,wr-pass=2,ex-pass='3' ——————————————————————————————— (32)
%  CMD0051 INVALID OPERAND 'PROTECTION=PARAMETERS:WRITE-PASSWORD'
%  CMD0064 OPERAND VALUE 'P' DOES NOT MATCH DATA TYPE 'C-STRING_4..4 OR
 X-STRING_7..8 OR SECRET'
%  CMD0051 INVALID OPERAND 'PROTECTION=PARAMETERS:READ-PASSWORD'
%  CMD0099 MANDATORY OPERAND MISSING OR INVALID
%  CMD0051 INVALID OPERAND 'PROTECTION=PARAMETERS:EXEC-PASSWORD'
%  CMD0062 LENGTH OF VALUE ''P'' NOT IN PERMISSIBLE RANGE FOR DATA TYPE
 'C-STRING_4..4'
/create-file demo,read-pass='1234',wr-pass='2345',ex-pass='3456' —————— (33)
/show-file-attr demo,inf=*par(security=*yes) —————————————————————————— (34)
%0000000003 :2OSG:$EXAMPLE.DEMO

%  ------------------------------- SECURITY     -----------------------------
%  READ-PASS  = YES         WRITE-PASS = YES         EXEC-PASS  = YES
%  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
%:2OSG: PUBLIC:      1 FILE  RES=         3 FRE=        3 REL=        3 PAGES
 .
 .
/exit-job

                                                                                       

(32)

Aus folgenden Gründen akzeptiert SDF das Kommando CREATE-FILE nicht:

  • Das angegebene Schreibkennwort ist weder das Schlüsselwort SECRET noch vom Typ C-STRING oder X-STRING.

  • Es ist kein Lesekennwort angegeben.

  • Das angegebene Ausführungskennwort vom Typ C-STRING ist nur ein Byte lang.

(33)

SDF akzeptiert das Kommando CREATE-FILE, weil vier Byte lange Kennwörter vom Typ C-STRING angegeben sind.

(34)

Für die Datei DEMO wurde ein Katalogeintrag eingerichtet. Sie ist durch Kennwörter geschützt.