CFS-Holdertask, TSOS-Dienste für nichtprivilegierte Benutzer
Durch die Enter-Prozedur J/CFSHT in der PLAM-Bibliothek CFS.S.LMSLIB kann unter der Kennung TSOS der CFS-Holdertask gestartet werden. Über diesen Holdertask können nichtprivilegierten CFS-Benutzern bestimmte Dienste angeboten werden, die sonst nur TSOS-Benutzern zur Verfügung stehen. CFSHT realisiert die folgenden Dienste:
1) User Option OPEN zur Auswahl der geöffneten Dateien.
Es werden dem nichtprivilegierten Benutzer alle Dateien angezeigt, die von Tasks unter der Kennung des Benutzers eröffnet wurden. Der Benutzer kann mit dem Parameter D-IO auch die IO-Statistik für die unter seiner Kennung eröffneten Dateien aktivieren.
Der Holdertask ignoriert Parametereingaben des Benutzers, die zur Anzeige von geöffneten Dateien führen würden, auf die er keinen Zugriff hat, z.B. die Angabe einer fremden Benutzerkennung oder TSN.
2) Action-Code OPN. Es werden alle TSN's angezeigt, die die mit OPN markierte Datei eröffnet haben. Es können dabei auch TSN's unter anderen Kennungen als der des Benutzers angezeigt werden. Mit dem Action-Code S (STA tsn) werden die Status-Informationen der Tasks angezeigt. Der Action-Code S für Tasks, die nicht unter der eigenen Benutzerkennung laufen, kann über CFSMAIN ausgeschaltet werden.
3) Action-Code D (Display) zum Sichtbarmachen des Inhalts von geöffneten Ausgabedateien. Diese Funktion ist nur in einer mit der User Option OPEN selektierten Dateienliste möglich.
Der CFS-Holdertask erzeugt eine Hilfsdatei mit dem bisher geschriebenen Inhalt der geöffneten SAM-/PAM-Datei. Diese Hilfsdatei wird in der Kennung des Benutzers angelegt. Der nichtprivilegierte CFS löscht die Hilfsdatei beim Verlassen der Display-Funktion.
4) :cmd im Kommandofeld der Dateienliste. Damit kann der nichtprivilegierte Benutzer bestimmte, vom Systemverwalter vorgegebene BS2000-Kommandos unter der Kennung TSOS zur Ausführung bringen. Der Output (SYSOUT) des Kommandos wird dem Benutzer wieder zugestellt. Im SYSOUT-Protokoll des Holdertasks erfolgt eine Protokollierung aller ausgeführten und zurückgewiesenen Kommandos zusammen mit TSN und User-ID des Requestors.
In den folgenden Abschnitten wird beschreiben, welche Möglichkeiten der Systemverwalter hat, um einzelnen Benutzern (Benutzerkennungen) bestimmte BS2000-Kommandos freizuschalten.
Damit die Kommandoausführung für nichtprivilegierte Benutzer überhaupt aktiv wird, muß im CFS-Holdertask eine Steuerdatei mit dem Linknamen CFSHTCMD zugewiesen werden, z.B. FILE CFS.HTCMD,LINK=CFSHTCMD. Die Standard-SAM Datei CFS.HTCMD enthält neben beliebig vielen Kommentarsätzen (erste Stelle '*', aber nicht *ALL), Musterkommandos und User-Id Informationen.
Alle Änderungen an der Datei CFS.HTCMD können vom Systemverwalter im laufenden Betrieb vorgenommen werden. Die Änderungen werden sofort wirksam.
Beispiel:
STAJV
SETJV
$TEST
SHOW-DAB
VERIFY
JOIN TEST,PASS=
ENTER $TEST.CFS.E.BATCH
$TESTUTM
START-SS 'UTM','AIDSYS'
$SYSPRIV
*ALL
Die Kommandos SHOW-DAB, VERIFY, ENTER $TEST.CFS.E.BATCH sind für Benutzer unter der Kennung $TEST reserviert.
Das Kommando START-SS mit den Parametern UTM oder AID darf nur unter der Kennung $TESTUTM ausgeführt werden.
Unter der Kennung SYSPRIV können mit :cmd alle BS2000-Kommandos ausgeführt werden. Die Kommandos VERIFY und REPAIR-DISK-FILE, die vom Benutzer u.U. eine zusätzliche Antwort verlangen, werden vom CFS-Holdertask ohne Benutzerrückfrage ausgeführt.
Unter allen nicht explizit angegebenen Kennungen, also unter allen Kennungen ungleich $TEST, $TESTUTM und $SYSPRIV sind die am Anfang aufgeführten Kommandos STAJV und SETJV erlaubt. Diesen Kommandos ist kein $user-id Satz vorangestellt.
Bestimmte Kommandos für Benutzer zulassen:
Die angeforderten Kommandos werden vom Benutzer im Kommandofeld von CFS in der Form :cmd [param] eingegeben.
Die CFS.HTCMD-Datei enthält Mustereingaben der Form xxx [yyyyy]
CFSHT prüft, ob für den Benutzer eines der Musterkommandos xxx mit dem angegebenen Kommando cmd übereinstimmt. Paßt kein Musterkommando auf die Benutzereingabe, so erhält der Anwender die Meldung "CFSHT: Command not allowed for user" und das Kommando wird nicht ausgeführt.
Falls in der Mustereingabe nur der Kommandoname angegeben ist, kann der Benutzer das Kommando mit beliebigen Parametern ergänzen. Der Kommandoname muß in der gleichen Weise wie in der Mustereingabe eingegeben werden. Andere, in SDF auch mögliche Schreibweisen des Kommandos werden zurückgewiesen.
Kommandoparameter in der Mustereingabe:
Falls in der Mustereingabe neben dem Kommandonamen auch Parameter angegeben sind, werden diese von CFSHT gesondert geprüft. Die Parameter in der Mustereingabe werden als CFS-Suchanweisung behandelt, falls sie mit ' , -' , oder ( beginnen. Ist dies nicht der Fall, so wird die angegebene Zeichenfolge über eine einfache CLC-Schleife in den vom Benutzer eingegebenen Parametern gesucht.
Bei einer CFS-Suchbedingung können komplexe UND-/ODER-/Wildcard- bzw. negative Verknüpfungen angegeben werden. Der Nachteil besteht darin, daß Hochkommas im Suchstring verdoppelt werden müssen.
Bei einer einfachen Suchbedingung kann nur ein zu suchender String angegeben werden. Die Zeichenfolge wird dafür so gesucht, wie in der HTCMD-Datei angegeben. Es ist in diesem Fall keine Verdoppelung von Hochkommas notwendig.
Beispiel 1:
JOIN TEST,PASS=C'A
Die Parameter des Kommandos JOIN werden nach der Zeichenfolge TEST, PASS=C'A durchsucht.
Beispiel 2:
JOIN ('TEST','UTM')*'PASS=C''A'
Die Parameter des Kommandos JOIN werden nach TEST oder UTM und dahinter nach PASS=C'A durchsucht.
Alle Kommandos für Benutzer zulassen bis auf wenige Ausnahmen:
Die CFS.HTCMD-Datei enthält Mustereingaben der Form -xxx
CFSHT prüft, ob für den Benutzer eines der Musterkommandos xxx mit dem angegebenen Kommando cmd übereinstimmt. Paßt ein Musterkommando auf die Benutzereingabe, so wird dieses zurückgewiesen und der Anwender erhält die Meldung "CFSHT: Command not allowed for user". Alle Kommandos außer den mit -xxx aufgeführten werden für den Benutzer zugelassen.