Tuesday, 3 October 2017

Chgvar Binary Options


Chgvar Befehl in clp Change Variable (CHGVAR) die dec Variable nicht direkt an den Ausgang in clp senden. So können wir es in char ändern konvertiert dec Variable char Variable. Der Befehl Change Variable (CHGVAR) ändert den Wert einer Variablen der Steuersprache (CL) oder eines Teils einer Zeichenvariablen. Der Wert kann auf den Wert einer Konstanten, auf den Wert einer anderen Variablen oder auf den Wert der Auswertung eines Ausdrucks oder einer eingebauten Funktion geändert werden. Ausdrücke und eingebaute Funktionen werden in Ausdrücken in CL-Befehlen in den CL-Konzepten und Referenzthemen im iSeries-Informationszentrum unter ibm / eserver / iseries / infocenter beschrieben. Außerdem wird die implizite Konvertierung zwischen Dezimal - und Zeichenwerten durch die in der VALUE-Parameterbeschreibung angegebenen Regeln durchgeführt. Beginn der Daten 0.001,00 PGM 0.002,00 DCL VAR (ampAGE) TYPE (DEC) LEN (3) VALUE (200) 0.003,00 DCL VAR (ampAGE1) TYPE (CHAR) LEN (5) 0.004,00 CHGVAR VAR (ampAGE1) VALUE (ampAGE) 0.005,00 SNDPGMMSG MSG (ampAGE1) 0.006,00 ENDPGM Ende Daten gt F3Exit F4Prompt F5Refresh F6Create F9Retrieve F10Command Eintrag F23More Optionen F24More Tasten 00200 Beginn der Daten 0.001,00 PGM 0.002,00 DCL VAR (ampAGE) TYPE (DEC) LEN (3) VALUE (200) 0.003,00 DCL VAR (ampAGE1) TYPE (CHAR) LEN (5) 0.004,00 CHGVAR VAR (ampAGE) VALUE (ampAGE1) 0.005,00 CHGVAR VAR (ampAGE1) VALUE (ampAGE) 0.006,00 SNDPGMMSG MSG (ampAGE1) 0.007,00 ENDPGM Ende der Daten, was ausgegeben wird, schreiben in commentFTP Programm beenden: Server Beispiel Problem (Zusammenfassung) Dieser Hinweis dokumentiert ein Beispiel für ein FTP-Exit-Programm. Lösung des Problems Um das System vor dem FTP-Zugriff zu schützen, wird empfohlen, die Objektsicherheit (GRTOBJAUT. EDTOBJAUT usw.) zu verwenden. Dies funktioniert in der Theorie aber in der Praxis, wollen Sie wahrscheinlich alles, außer bestimmten Verzeichnissen oder sogar bestimmte Dateien gesichert. In solchen Fällen müssten Sie quasi-permittingquot alles auf dem System, um die Benutzerprofile, die Zugriff auf Ihr System mit FTP werden. Eine weitere Möglichkeit, Sicherheit mit FTP zu implementieren, besteht darin, ein Exit-Programm zu verwenden. Exit-Programme können zusätzliche Einschränkungen geben - sie können nicht mehr Berechtigung gewähren, als der Benutzer hätte, wenn sie sich in einem interaktiven Job am IBM System i-System anmelden würden. Allerdings, im Falle der Beschränkung eines Benutzers auf nur ein paar Elemente auf der iSeries Familie System, das ist genau das, was wir wollen. In der OS / 400-TCP / IP-Konfiguration und der Referenz V4R2 (SC41-5420-01) gibt es einige Beispiel-Exit-Programme für FTP. Die verfügbaren sind wie folgt: Handbuch Abschnitt Titel I.10.5 Beispiel FTP-Server-Anmeldung Programm beenden (C Language) I.11.9 Beispiel FTP-Server Logon Exit-Programm (CL) für Anonymous FTP I.11.10 Beispiel FTP-Server anfordern Validation Programm beenden für Anonymous FTP Die beiden letzten sind in CL geschrieben, und die erste ist in der Sprache C geschrieben. Hier ist ein weiteres Beispiel für ein Server Request Validation Exit Programm für FTP in CL geschrieben. Die von ihm implementierten Regeln sind: Alle Benutzer können das Verzeichnis oder die Bibliothek, in der sie sich befinden, auflisten. Kein Benutzer kann Verzeichnisse erstellen, löschen, Objekte umbenennen oder Befehle auf dem System i-System ausführen. Benutzer TPA darf nur CD (Verzeichnis wechseln) in Bibliothek XZS2039 und darf nur Mitglied FTPEXIT von Datei SOURCE herunterladen. Alle anderen Aktivitäten werden abgelehnt. Benutzer Anonymous kann nur CD in ein Verzeichnis in der / pub-Hierarchie, von dort herunterladen, und kann in Verzeichnis / pub / upload hochladen. Und darf keine andere Tätigkeit ausüben. Andere Benutzer können in jedes Verzeichnis wechseln, Dateien herunterladen oder hochladen, auf die sie mit ihren Betriebssystem-Benutzerprofilen zugreifen dürfen. Dieses Programm sendet auch eine Nachricht an die Nachrichtenwarteschlange QUSRSYS / FTPMSGQ, die angibt, welche Aktivität angefordert wurde und ob die Aktivität nicht erlaubt war. Die Message Queue muss erstellt werden, bevor das Exit-Programm ausgeführt wird, oder es wird abgebrochen. Schritt 1: Nachdem das Programm auf Ihre Anforderungen angepasst und kompiliert wurde, registrieren Sie das Exit-Programm: Dadurch wird ein Bildschirm wie der folgende angezeigt: Arbeiten Sie mit den Optionen für die Registrierung von Informationstypen und drücken Sie die Eingabetaste. 5Display Austrittspunkt 8Work mit Exit-Programme Exit Exit Punkt Opt-Point-Format Hier Text 8 QIBMQTMFSERVERREQ VLRQ0100 JA FTP Server anfordern Validation Bottom Befehl gt F3Exit F4Prompt F9Retrieve F12Cancel Schritt 2: Wählen Sie eine Option 8, für die Arbeit mit Exit-Programme. Arbeiten mit Exit-Programmen Exit-Punkt: QIBMQTMFSERVERREQ Format: VLRQ0100 Geben Sie Optionen ein, drücken Sie die Eingabetaste. 1Add 4Remove 5Display 10Replace Schritt 3: Geben Sie die Option 1 ein, und geben Sie den Namen des Exit-Programms und die Bibliothek, in der es sich befindet, ein. Drücken Sie die Enter-Taste. Das Programm ist nun registriert und wird jedes Mal aufgerufen, wenn eine FTP-Anforderung in Ihr System kommt. Das Beispielprogramm FTPEXIT: PGM PARM (ampAPPID ampOPID ampUSRPRF ampREMOTEIP ampREMOTELEN ampOPINFO ampOPLEN ampOK) DCL ampAPPID CHAR 4 / Anwendungs-ID, BINARY NUM / DCL ampOPID CHAR 4 / OPERATION ID, Binärzahl / DCL ampOPNUM 4. Dezember / OPERATION ID, USABLE IN CL / DCL ampUSRPRF CHAR 10 / USER PROFILE ÜBER FTP / DCL ampREMOTEIP CHAR 251 / IP-Adresse / DCL ampREMOTELEN CHAR 4 / LÄNGE DER FRÜHEREN PARAMETER / DCL ampOPINFO CHAR 251 / OP Spezifische Information / DCL ampOPLEN CHAR 4 / LÄNGE DER FRÜHEREN PARAMETER / DCL ampOK CHAR 4 / Bestätigungssignal / DCL ampRLEN 10. Dezember / ROUTE Länge Wert AS DECIMAL / DCL ampOLEN 10. Dezember / LÄNGE WERT IN EINEM Dezimalform / / Konstanten Parameterwerte / / zulässigen Werte für APPID / DCL ampCLIENT CHAR 4 VALUE (X00000000) / FTP-Client / DCL ampSERVER CHAR 4 VALUE (X00000001) / FTP SERVER / DCL ampREXEC CHAR 4 VALUE (X00000002) / REXEC SERVER PGM / DCL ampTFTP CHAR 4 VALUE (X00000003) / TFTP-Server PGM / / zulässigen Werte für OPID FÜR FTP-Client oder FTP-Server / DCL ampSTR CHAR 4 VALUE (X00000000) / START FTP / DCL ampMKD CHAR 4 VALUE (X00000001) / Verzeichnis erstellen / DCL ampRMD CHAR 4 VALUE (X00000002) / DLT-KATALOG / DCL ampCD CHAR 4 VALUE (X00000003) / SET KATALOG / DCL ampDIR CHAR 4 VALUE (X00000004) / LIST DIRECTORY / DCL ampDELE CHAR 4 VALUE (X00000005) / DELETE FILE / DCL ampGET CHAR 4 VALUE (X00000006) / SEND FILE / DCL ampPUT CHAR 4 VALUE (X00000007) / GET FILE / DCL ampREN CHAR 4 VALUE (X00000008) / RENAME FILE / DCL ampSYS CHAR 4 VALUE (X00000009) / EXECUTE COMMAND / / zulässigen Werte für OK / DCL ampNONEVER CHAR 4 VALUE (xFFFFFFFF) / ERLAUBEN OP / DCL ampNO CHAR 4 VALUE (X00000000 ) / DISALLOW FTP / DCL ampYES CHAR 4 VALUE (X00000001) / LASSEN FTP / DCL ampYESYES CHAR 4 VALUE (X00000002) / ALLWAYS LASSEN / / Variablen für die Botschaft, dass whats happening / DCL ampACTIONS CHAR 56 VALUE (MKDIR RMDIR CD DIR DLT SAGT GET PUT Renam CMD) DCL ampAINDEX 4. Dezember DCL ampMSG CHAR 150 / PARAMS FÜR MSG / DCL ampMSGLEN 4. Dezember VALUE (10) / LÄNGE DER MELDUNG / / Umrechnen in die Länge Parameter von BINARY DECIMAL / CHGVAR ampRLEN BIN (ampREMOTELEN) CHGVAR ampOLEN BIN (ampOPLEN) CHGVAR ampOPNUM BIN (ampOPID) / CODE ist in jedem Fall in einem separaten IF-Block / IF (ampSTR ampOPID) DO / START FTP / CHGVAR ampOK ampYES / LET FTP MINDESTENS START / ENDDO ELSE DO / Erstellen Sie eine Nachricht zu beschreiben, was Der Benutzer wird TUT / CHGVAR ampAINDEX (((ampOPNUM-1) 6) 1) CHGVAR ampMSG FTP ACTION CHGVAR SST (ampMSG 12 6) SST (ampACTIONS ampAINDEX 6) CHGVAR SST (ampMSG 17 10) FROM USER CHGVAR SST (ampMSG 27 10 ) ampUSRPRF CHGVAR SST (ampMSG 37 14) GEGEN OBJECT CHGVAR SST (ampMSG 52 ampOLEN) ampOPINFO CHGVAR ampMSGLEN (53ampOLEN) SNDPGMMSG MSGID (CPF9897) MSGF (QSYS / QCPFMSG) MSGDTA (ampMSG) TOMSGQ (QUSRSYS / FTPMSGQ) ENDDO / verschiedene Abschnitte CODE für jede unterschiedliche FTP ACTION / IF (ampMKD ampOPID) DO / OPTION ist ein Verzeichnis / CHGVAR ampOK ampNO / NO-KATALOG CREATION MACHEN ERLAUBT / ENDDO IF (ampRMD ampOPID) DO / LÖSCHEN VERZEICHNIS / CHGVAR ampOK ampNO / DONT Verzeichnis löschen / ENDDO IF LASSEN (ampCD ampOPID) DO / SET CURRENT DIRECTORY / / USER TPA NUR AS / 400-Bibliothek XZS2039 / IF (ampUSRPRF TPA) THEN (DO) IF (SST (ampOPINFO 1 ampOLEN) NE /QSYS. LIB/XZS2039.LIB) GO KÖNNEN DANN (DO) CHGVAR ampOK ampNO / USER TPA kann nur XZS2039 / SNDPGMMSG MSGID GO (CPF9898) MSGF (QCPFMSG) TOMSGQ (QUSRSYS / FTPMSGQ) MSGDTA (TPA vERSUCHTEN in eine andere Bibliothek auf CD) ENDDO / TPA GEÄNDERT VERZEICHNIS BIBLIOTHEK RICHTIG / ELSE CHGVAR ampOK ampYES ENDDO ELSE DO / NICHT USER TPA, PROCESS ANONYMOUS / IF (ampUSRPRF ANONYMOUS) THEN (DO) IF (SST (ampOPINFO 1 4) NE / pub) THEN (DO) CHGVAR ampOK ampNO SNDPGMMSG MSGID (CPF9898) MSGF (QCPFMSG) TOMSGQ (QUSRSYS / FTPMSGQ) MSGDTA (ANONYMOUS TRYING NON-PUB-Verzeichnis GET) ENDDO CHGVAR ampOK ampYES / ANONYMOUS gehen ELSE CHGVAR ampOK ampYES / UA CAN GO TO / pub / ENDDO ÜBERALL / ENDDO ENDDO IF (ampDIR ampOPID) DO / GET-Liste der Dateien im VERZEICHNIS / CHGVAR ampOK ampYES / LASSEN IT / ENDDO IF (ampDELE ampOPID) DO / DELETE FILE / CHGVAR ampOK ampNO / NO Akte Auslassung ERLAUBT / ENDDO IF (ampGET ampOPID) DO / GET A FILE / IF ( (ampUSRPRF TPA) und (SST (ampOPINFO 1 ampOLEN) NE /QSYS. LIB/XZS2039.LIB/SOURCE. FILE/FTPEXIT. MBR)) THEN (DO) / USER TPA können, die Datei nur GET / CHGVAR ampOK ampNO / SO DISALLOW ANDERE GETS / SNDPGMMSG MSGID (CPF9898) MSGF (QCPFMSG) MSGDTA (TPA NICHT ZUGELASSEN Datei zu erhalten) TOMSGQ (QUSRSYS / FTPMSGQ) ENDDO ELSE DO / USER ANONYMOUS Dateien nur von der / PUB erhalten / IF ((ampUSRPRF ANONYMOUS) und (SST (ampOPINFO 1 4) NE / pub)) THEN (DO) CHGVAR ampOK ampNO SNDPGMMSG MSGID (CPF9898) MSGF (QCPFMSG) MSGDTA (ANONYMOUS TRYING Datei zu erhalten NICHT AUF / PUB) TOMSGQ (QUSRSYS / FTPMSGQ) ENDDO ELSE CHGVAR ampOK ampYES / Andere können ANYTHING / ENDDO ENDDO IF (ampPUT ampOPID) DO / PUT FILES ON SYSTEM / / ANONYMOUS Benutzer Dateien ON / pub / upload / / IF ((ampUSRPRF ANONYMOUS) und (SST (ampOPINFO 1 12) NE GET / pub KANN NUR PUT / Upload /)) THEN (DO) CHGVAR ampOK ampNO SNDPGMMSG MSGID (CPF9898) MSGF (QCPFMSG) TOMSGQ (QUSRSYS / FTPMSGQ) MSGDTA (ANONYMOUS VERSUCHT, andere Dateien als / upload) ZU SETZEN ENDDO ELSE THEN (DO) IF (ampUSRPRF TPA) CHGVAR ampOK ampNO SNDPGMMSG MSGID (CPF9898) MSGF (QSYS / QCPFMSG) MSGDTA (TPA versucht, eine Datei ZU SETZEN) TOMSGQ (QUSRSYS / FTPMSGQ) ENDDO ELSE CHGVAR ampOK ampYES / SONST, OK. / ENDDO IF (ampREN ampOPID) DO / Umbenennen einer Datei / CHGVAR ampOK ampNO / FILE Benennt / NICHT ERLAUBT NICHT ERLAUBT VIA FTP / ENDDOCL Programm und Befehl ENDDO IF (ampSYS ampOPID) DO / EXECUTE AS / 400 COMMAND / CHGVAR ampOK ampNO / Commands Re-Enable NetServer-Benutzer Problem (Zusammenfassung) Dieses Dokument enthält den Quellcode, um ein Programm und einen Befehl zu erstellen, um einen deaktivierten NetServer-Benutzer einfach wieder zu aktivieren. Beheben des Problems Dieses Dokument enthält den Quellcode, um ein Programm und einen Befehl zu erstellen, um einen deaktivierten NetServer-Benutzer einfach wieder zu aktivieren. Die folgenden PTFs für NetServer die Fähigkeit des CHGUSRPRF Befehl entfernen, um einen Benutzer zurücksetzen oder erneut zu aktivieren, die für NetServer Zugriff gesperrt ist: 540: MF55657 545: MF55658 610: MF55659 611: MF55660 710: MF55661 Das Ziel Release-Termin für diese PTFs ist 05/25/2012. Der Benutzer kann über das Menü GO NETS unter Verwendung von IBM i Navigator oder durch Schreiben eines Programms, das die QZLSCHSI-API verwendet, wieder aktiviert werden. Da viele Benutzer eine einfache Befehlszeilenoption für die Ausführung dieser Aufgabe benötigen, hat IBM Support ein einfaches CL-Programm erstellt, um die QZLSCHSI-API aufzurufen. IBM liefert auch Befehlsquelle, so dass das Programm und der Befehl kompiliert werden können, um es einfacher zu verwenden. Das Programm nimmt ein einzelnes Benutzerprofil als Eingabeparameter. HINWEIS: Die Verwendung der QZLSCHSI-API erfordert, dass Sie über eine IOSYSCFG-Spezialberechtigung verfügen. Um das Format ZLSS0200 zu verwenden, um einen IBM i NetServer-Benutzer zu aktivieren, müssen Sie außerdem SECADM-Spezialberechtigung und OBJMGT - und USE-Berechtigung für das Systembenutzerprofil besitzen. Die QZLSCHSI API ist im InfoCenter V7R1M0 dokumentiert. Klicken Sie hier, um zur InfoCenter-Dokumentation zu gelangen. Eine Sicherungsdatei mit einer Quelldatei mit den drei unten aufgeführten Mitgliedern kann unter folgender URL abgerufen werden: ftp://public. dhe. ibm/services/us/igsc/cs2/ApiSamples/Rstnetusrf. savf / Die darin enthaltenen Informationen Das Dokument ist nicht formalen Tests unterzogen worden und wird ohne jegliche Gewährleistung, weder ausdrücklich noch impliziert, auf einer Basis von As verteilt. Die Verwendung dieser Informationen oder die Implementierung einer dieser Techniken ist eine Kundenverantwortung und hängt von der Fähigkeit des Kunden ab, diese in die Kundenbetriebsumgebung zu bewerten und zu integrieren. Während jedes Element von IBM für die Genauigkeit in einer bestimmten Situation überprüft worden ist, gibt es keine Garantie, dass die gleichen oder ähnliche Ergebnisse an anderer Stelle erhalten werden. Kunden, die versuchen, diese Techniken an ihre Umgebungen anzupassen, tun dies auf eigenes Risiko. / Verwenden Sie die folgenden Befehle, um das Programm und den Befehl zu kompilieren. Der folgende Befehl muss geändert werden, um den Namen der Bibliothek wiederzugeben, in der Sie die Quelldatei und die Bibliothek, die Sie dem Programm kompilieren möchten, wiederhergestellt haben. Ich würde empfehlen, dass das Programm zu einer Bibliothek kompiliert werden, die im Systemteil Ihrer Bibliotheksliste ist. Ändern Sie YOURSYSLIB mit der Systembibliothek, die der Befehl und das Programm erstellt werden soll, und ändern Sie YOURSCRLIB mit dem Namen der Bibliothek, in der die Quelldatei wiederhergestellt wurde. Wenn Benutzer ohne IOSYSCFG - und JOBCTL-Spezialautorität in der Lage sind, den Befehl auszuführen, müssen Sie sicherstellen, dass der Eigentümer, der das Programm und den Befehl kompiliert, diese Behörden haben und dann die folgenden Optionen verwenden, damit das Programm diese Behörde annehmen kann. CRTBNDCL PGM (YOURSYSLIB / RSTNETUSRP) SRCFILE (YOURSRCLIB / RSTNETUSR) SRCMBR (RSTNETUSRP) OPTION (EVENTF) USRPRF (Inhaber) REPLACE (YES) AUT (USE) DbgView (SOURCE) HINWEIS: Unter OS 540 nur vor dem RSTNETUSRP Programm kompiliert ( mit dem Befehl sofort oben), müssen Sie die Zeile aus dem RSTNETUSRP Mitglied zu entfernen, die lautet: DCLPRCOPT TEXT (Reset NetServers Benutzer) USRPRF (Inhaber) die Option TEXT ist nicht auf OS 540 und das Programm nicht kompilieren, wenn es enthalten ist. Auf 540 setzt das Compile automatisch die erlassene Autorität auf OWNER, so dass das Entfernen dieser Zeile keine negative Auswirkung auf das kompilierte Programm hat. CRTCMD CMD (YOURSYSLIB / RSTNETUSR) PGM (YOURSYSLIB / RSTNETUSRP) SRCFILE (YOURSRCLIB / RSTNETUSR) SRCMBR (RSTNETUSR) ALWLMTUSR (YES) AUT (USE) REPLACE (YES) // / / / Die Informationen in diesem Dokument enthalten sind, nicht vorgelegt / / Zu allen formalen Prüfungen und wird auf einer Basis von As / Basis / / ohne jegliche Gewährleistung ausdrücklich oder stillschweigend verteilt. Die Verwendung dieser / / Informationen oder die Umsetzung einer dieser Techniken ist eine / / Kundenverantwortung und hängt von der Fähigkeit des Kunden ab, diese in die Kundenbetreuung zu integrieren. Während jedes Element von IBM / / für die Genauigkeit in einer bestimmten Situation überprüft worden ist, gibt es keine Garantie, dass die / gleiche oder ähnliche Ergebnisse an anderer Stelle erhalten werden. Kunden / / versuchen, diese Techniken an ihre Umgebungen anzupassen, tun dies auf eigene Gefahr. // // // Dieses Programm ruft die QZLSCHSI-API auf, um ein / / deaktiviertes NetServer-Benutzerprofil wieder zu aktivieren. / / / Ändern der Server-Informationen (QZLSCHSI) API / / / / Erforderliche Parametergruppe: / / / / 1 Anforderungsvariable Eingang Char () / / 2 Länge der Anforderungsvariable Eingabe Binär (4) / / 3 Format Eingabezeile (8 ) / / 4 Fehlercode I / O Char () / / / / Öffentlicher Standardbehörde: USE / / / / Thread: Nein / / / // DCL VAR (ampUSRPRF) TYPE (CHAR) STG (AUTO) LEN (10) DCL VAR (ampRQSVAR) TYPE (CHAR) LEN (14) DCL VAR (ampRQSLEN) TYPE (INT) VALUE (14) DCLPRCOPT TEXT (Reset NetServers Benutzer) USRPRF (Inhaber) / Beachten Sie, dass der erste Teil des Wert unter vier / / (4) Leerzeichen. Dies scheint manchmal auf / / komprimiert, wenn im Web gesehen. / CHGVAR VAR (ampRQSVAR) VALUE (CAT ampUSRPRF) CHGVAR VAR (binary (ampRQSVAR 1 4)) VALUE (ampRQSLEN) CALL-QSYS / QZLSCHSI PARM (ampRQSVAR ampRQSLEN ZLSS0200 X00000000) ENDPGM CMD PROMPT (Aktivieren eines NetServers Benutzer) PARM KWD (USER) TYPE (CHAR) LEN (10) PROMPT (Benutzer Profil zu aktivieren)

No comments:

Post a Comment