Gracias Fernando,

Este programa al final hace lo mismo que estoy haciendo. Permite ejecutar a un
usuario programas con la autorizacion de otro, pero si algun programa accede a
algun fichero con el nombre de usuario no me accede con el usuario que he hecho
SWAP sino con el usuario original, partiendo de la base que recupera el usuario
con RTVJOBA.

Un saludo

Jesus M� Arzak Capilla
Talleres de Escoriaza,S.A.
Dpto Proceso de Datos

www.tesa.es








"Fernando Martinez" <[EMAIL PROTECTED]> con fecha 20/11/2002 09:06:19

Por favor, responda a [EMAIL PROTECTED]

Destinatarios: [EMAIL PROTECTED]
CC:        (cci: Jesus Arzak/TESANET)
Asunto:   RE: Cambiar un Usuario por Otro




Hola Jesus

     Mira a ver si este programa te sirve.

     Saludos

     Fernando Martinez



-----Mensaje original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]En nombre de Jesus Arzak
Enviado el: mi�rcoles, 20 de noviembre de 2002 11:44
Para: [EMAIL PROTECTED]
Asunto: Cambiar un Usuario por Otro




Hola a todos,

Os expongo el problema. Necesito que un usuario se autentifique en el AS400
y de
alguna manera pueda decirle que es otro a todos los efectos, no so lo a
nivel de
autorizaciones.
Necesito que esto sea asi porque quiero que funcione  en la rutina normal de
ejecucion,  que entre los multiples programas, se incluyen sentencias del
tipo
RTVJOBA  USER(&USUARIO).
Lo que pretendo hacer es como simular que un usuario entra en mi maquina,
hace
signoff y  seguidamente entra con otro usuario generico.

He probado a utilizar las API'S QSYGETPH y QWTSETP pero no me funciona. Hay
alguien que me pueda decir si existe alguna manera de hacerlo.


Un saludo,


Jesus M� Arzak Capilla
Talleres de Escoriaza,S.A.
Dpto Proceso de Datos

www.tesa.es



ADVERTENCIA/WARNING

ESTE CORREO ELECTRONICO CONTIENE INFORMACION PRIVADA Y
ESTRICTAMENTE CONFIDENCIAL. Si usted no es el destinatario del
presente mensaje no esta autorizado a leerlo, retenerlo o difundirlo.

THIS E-MAIL IS PRIVILEGED, CONFIDENTIAL AND CONTAINS PRIVATE
INFORMATION. Any reading, retention, distribution or copying of this
communication by any person other than its intended recipient is prohibited.




_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]?body=LEAVE

/*********************************************************************/
/*                                                                   */
/* Create as user with *ALLOBJ and *SECADM                           */
/* CRTCLPGM PGM(lib/SWAP) USRPRF(*OWNER) AUT(*EXCLUDE)               */
/*                                                                   */
/*                                                                   */
/* PURPOSE: SWAP -- This program will swap the user profile of       */
/* a job but prevents swap to a user profile                         */
/* the with *ALLOBJ *SERVICE *SECADM OR *SPLCTL                      */
/* special authority                                                 */
/*********************************************************************/
RESETPWD: PGM (&USERID)

            DCL &USERID *CHAR 10

            /*********************************************************/
            /* Variables for API to retrieve user profile attributes */
            /*********************************************************/

            DCL &RTNDTA *CHAR 83

            /***********************************************/
            /* API work area USRI0200 data returned        */
            /***********************************************/
            /*   Type      Field                           */
            /* 1 BINARY(4) Bytes returned                  */
            /* 5 BINARY(4) Bytes available                 */
            /* 9 CHAR(10)  User profile name               */
            /* 19 CHAR(10) User class name                 */
            /* 29 CHAR(15) Special authority               */
            /* 29 CHAR(1 )   ALLOBJ                        */
            /* 30 CHAR(1 )   SECADM                        */
            /* 31 CHAR(1 )   JOBCTL                        */
            /* 32 CHAR(1 )   SPLCTL                        */
            /* 33 CHAR(1 )   SAVSYS                        */
            /* 34 CHAR(1 )   SERVICE                       */
            /* 35 CHAR(1 )   AUDIT                         */
            /* 36 CHAR(1 )   IOSYSCFG                      */
            /* 38 CHAR(7 ) future expansion                */
            /* 44 CHAR(10) Group profile name              */
            /* 54 CHAR(10) Owner                           */
            /* 64 CHAR(10) Group authority name            */
            /* 74 CHAR(10) Limit capabilities              */
            /***********************************************/

            DCL &OUTVARD *DEC (5 0) VALUE(83)
            DCL &OUTLEN *CHAR 4
            DCL &FMT *CHAR 8 VALUE(USRI0200)
            DCL &ERRCDE *CHAR 80
            DCL &ERRLEND *DEC (5 0) VALUE(80)
            DCL &HANDLE *CHAR 12

            /******************************************************/
            /* Retrieve the special authority of the user profile */
            /* Do not allow reset if user has special authority   */
            /* *ALLOBJ *SECADM *SPLCTL or *SERVICE                */
            /******************************************************/

            CHGVAR VAR(%BIN(&OUTLEN)) VALUE(&OUTVARD)
            CHGVAR VAR(%BIN(&ERRCDE 1 4)) VALUE(&ERRLEND)

            CALL QSYRUSRI +
            (&RTNDTA &OUTLEN &FMT &USERID &ERRCDE)

            IF ( (%SST(&RTNDTA 29 1 )='Y') *OR /*check *ALLOBJ*/ +
                 (%SST(&RTNDTA 30 1 )='Y') *OR /*check *SECADM*/ +
                 (%SST(&RTNDTA 32 1 )='Y') *OR /*check *SPLCTL*/ +
                 (%SST(&RTNDTA 34 1 )='Y')) DO /*check *SERVICE */
               SNDPGMMSG MSGID(CPF9801) MSGTYPE(*ESCAPE) +
               MSGDTA('Swap of this user profile not allowed.')
            ENDDO
/************************************************************/
/* Swap user profile                                        */
/************************************************************/

/*            CALL QSYGETPH (&USER '*NOPWD' &HANDLE)        */
            CALL QSYGETPH (&USERID '*NOPWD' &HANDLE)
            CALL QWTSETP  ( &HANDLE)
            CALL QSYRLSPH ( &HANDLE)

ENDPGM





Responder a