[z/OS]

Herramientas RACF (Resource Access Control Facility)

Las siguientes herramientas y técnicas le ayudarán a gestionar las definiciones de seguridad que se utilizan para WebSphere Application Server para z/OS:
  • Paneles RACF ISPF para listar todos los perfiles en una clase
  • ISHELL para listar los UID por orden de UID o ID de usuario
  • EXEC para listar los GID por orden de GID o ID de grupo
  • EXEC para restituir definiciones RACF

Paneles RACF ISPF

Utilice los paneles RACF ISPF para listar todos los perfiles que hay en una determinada clase. Debe tener autorización RACF SPECIAL o AUDITOR para completar los pasos siguientes:
  • Seleccione Perfiles de recursos generales (opción 2).
  • Realizar búsqueda (opción S o 9).
  • Escriba un nombre de clase.
  • Pulse Intro dos veces más.
------------------------------------------------
RACF - MENÚ DE OPCIONES DE SERVICIOS
OPCIÓN ===> 2
SELECCIONE UNO DE LOS SIGUIENTES:
1 PERFILES DE CONJUNTOS DE DATOS
2 PERFILES DE RECURSOS GENERALES
3 PERFILES DE GRUPOS Y CONEXIONES DE USUARIOS CON GRUPOS
4 PERFILES DE USUARIOS Y SU PROPIA CONTRASEÑA
5 OPCIONES DEL SISTEMA
6 RECURSO DE COMPARTICIÓN REMOTA
7 CERTIFICADOS DIGITALES Y CONJUNTOS DE CLAVES
99  SALIR
------------------------------------------------

-----------------------------------------------------
RACF - SERVICIOS DE PERFILES DE RECURSOS GENERALES
SELECCIONE UNO DE LOS SIGUIENTES:
1 ADD Añadir un perfil
2 CHANGE Cambiar un perfil
3 DELETE Suprimir un perfil
4 ACCESS Mantener lista de acceso
5 AUDIT Supervisar intentos de acceso (sólo para auditores)
D o 8 DISPLAY Mostrar contenido de perfiles
S o 9 SEARCH Buscar perfiles en la base de datos RACF
-----------------------------------------------------

------------------------------------------
RACF - SERVICIOS DE RECURSOS GENERALES - BUSCAR
OPCIÓN ===>
ENTRE LA SIGUIENTE INFORMACIÓN DE PERFIL:
CLASE ===> INICIADA
PERFIL ===>
------------------------------------------

-----------------------------------
EXAMINAR - SALIDA DEL MANDATO RACF ----
MANDATO ===>
T5ACR.* (G)
T5DMN.* (G)
T5SRVNDS.* (G)
T5SRV1S.* (G)
T5SRV2S.* (G)
T5SRV3S.* (G)
WMQX*.* (G)
WSCWTRC.*
-----------------------------------

También puede obtener una lista de todos los perfiles que hay en una clase utilizando el mandato RACF SEARCH: SEARCH CLASS(nombre_clase).

Listar todos los ID de usuario por orden de UID

Cuando se definen nuevos ID de usuario con segmentos OMVS en RACF, se deben asignar UID exclusivos. WebSphere no da soporte todavía a la función RACF AUTOUID. Para encontrar UID no asignados (y duplicados), utilice ISPF ISHELL (opción 3.4) para obtener una lista de todos los ID de usuario por orden de UID. Tiene que ser un superusuario (UID=0) y seguir estos pasos:
  1. Seleccione el menú desplegable Setup (Configurar) y la opción User list (Lista de usuarios).
  2. Examine la lista de usuarios.
  3. Mientras examina la lista de usuarios, seleccione el menú desplegable File (Archivo).
  4. Seleccione la opción Sort UID (Ordenar UID). (Tenga en cuenta que un UID igual a -1 significa que el usuario no tiene ningún segmento OMVS).
El ejemplo siguiente muestra los paneles implicados:
----------------------------------------------------------------------------------------
File   Directory   Special_file   Tools File_systems   Options   Setup   Help
----------------------------------------------------------------------------------------
UNIX System Services ISPF Shell
Command ===> _______________
----------------------------------------------------------------------------------------

-----------------------------
1. User...
2. User list...
3. All users...
4. All groups...
5. Permit field access...
6. Character Special...
7. Reset UID to 847039
-----------------------------

--------------------------------------------------------------------
File   Help
--------------------------------------------------------------------
                                                        User List
Command ===> 
--------------------------------------------------------------------
User ID              UID              Group 
--------------------------------------------------------------------
ADMOORE                 1024996             $GUSERS /u/admoore
AHMAD                   2                   DFSGRP /u/ahmad
AKILOV                  125406              $GUSERS /u/akilov
ALLMOND                 36                  DFSGRP /u/allmond
AOPUSER                 99129934            AOPOPER /u/aopuser
ASTLEY                  787202              DFSGRP /u/astley
A5USR                   112501              A5GRP /tmp
BAGWELL                 342832              DFSGRP /u/bagwell
---------------------------------------------------------------------

-----------------------------
1. Sort name
2. Sort UID
3. Sort Group
4. Print
5. Exit User ID UID Group
-----------------------------

-----------------------------------------------
User ID              UID              Group
-----------------------------------------------
CBASRUH              2336             CBASRH
CBIVPH               2337             CBIVPGH
T5GUEST              2402             T5GUESG
T5ADMIN              2403             T5CFG
T5DMNU               2411             T5CFG
T5ACRNDU             2421             T5CFG
T5DMGSU              2422             T5SVRG
T5ASRNDU             2422             T5SVRG
T5ACRU               2431             T5CFG
T5ASRU               2432             T5SVRG
WSPETSC              2701             WSCNTLG
-----------------------------------------------

Listar todos los ID de usuario por orden de GID

También debe asignar GID exclusivos a los nuevos grupos. No hay ninguna herramienta suministrada por el sistema para listar los grupos por orden de GID (como hay para los UID), para que pueda identificar duplicados y asignar nuevos GID que sean exclusivos. Especifique GID como el único parámetro para listarlos por orden de GID. El valor por omisión es listarlos por orden de ID de grupo. (necesita autorización RACF SPECIAL, AUDITOR u otra autorización específica).
/* Rexx ---------------------------------------------------------- */
/* Este ejecutable utiliza el servicio ishell bpxwirac para mostrar el grupo */
/* con segmentos OMVS y los ID de grupo. B. Pierce & MJ Loos */
/* --------------------------------------------------------------- */
/* Sintaxis : LISTGRP Nombre (valor predeterminado) | GID */
/* --------------------------------------------------------------- */
order = "N" /* set default to name */
Arg parm /* get argument for sort order */
if Abbrev("NAME",parm,1) then order = "N"
if Abbrev("GID",parm,1) then order = "I"

call bpxwirac "OMVSGROUP" /* call the service */

Address ISPEXEC /* using ISPF services */
if order = "N" then do /* already sorted */
   do ix=1 by 1 while queued()>0
      parse pull gname gid
      say left(gname,8) right(gid,8)
   end
end
else do /* sort the results */
   "TBCREATE grptable names(tbgrpnm tbgrpid) replace nowrite"
   rows = 0
   do ix=1 by 1 while queued()>0 /* populate the table */
      parse pull gname gid
      tbgrpnm = left(gname,8)
      tbgrpid = right(gid,8)
      "TBADD grptable"
      rows = rows + 1
   end
   "TBSORT grptable FIELDS(tbgrpid,C,A,tbgrpnm,C,A)" /* sort it */
   "TBTOP grptable"
   do ix = 1 to rows by 1 /* display the results */
      "TBSKIP grptable"
      say tbgrpnm tbgrpid
   end
   "TBEND grptable" /* throw out the table */
end
say
exit 0 
/***************** fin de EXEC ****************************/

Restituir definiciones de RACF

Cuando se configuran servidores, nodos y células (y se suprimen), resulta práctico tener una forma sencilla de suprimir las definiciones RACF que se crean en el proceso.

El ejecutable adjunto lee los mandatos RACF generados del miembro BBOWBRAK del conjunto de datos particionados .DATA de destino, y crea RACF DELUSER, DELGROUP, RDELETE y otros mandatos RACF (en orden inverso).

Antes de ejecutar los mandatos RACF resultantes, debe revisar la salida y suprimir los mandatos que supriman los usuarios, grupos o perfiles utilizados por otros servidores que desee mantener.

Consejo: Tenga cuidado de no suprimir usuarios y perfiles genéricos utilizados por otros.
/* REXX - UNDO2 - Crear mandatos RACF restitución para desinstalar el servidor*/
Lea los mandatos RACF en linein.in, analice el verbo & Obj, pase los
mandatos "delete/undo" a cmdOut.out, y escriba en orden inv  */
out = 1 /* Output line number for stem var. cmdOut. */
"EXECIO * DISKR RACFCMDS (STEM linein."
do in = 1 to linein.0 /* See what we read; call the appropriate rtne */
  if pos('/*',linein.in) <> 0 then iterate
  if pos('say',linein.in) = 1 then iterate
 parse var linein.in '"' cmdVerb cmdObj '"'
 select
   when cmdVerb = "ADDGROUP" then call DelGrp
   when cmdVerb = "ADDUSER" then call DelUsr
   when cmdVerb = "CONNECT" then call ConUsr
   when cmdVerb = "RDEFINE" then call DelPro
   when cmdVerb = "PERMIT" then call PerUsr
   when cmdVerb = "RACDCERT" then call RdCert
    otherwise iterate
  end /* select */
end /* in=1 to n */
call WriteCmds
exit 1
return

/*************** Subrutinas: ********************/

DelUsr: /* DelUsr: Delete User */
   parse var cmdObj user .
   cmdOut.out = "DELUSER " || user
   out = out + 1
return

DelGrp: /* DelGrp: Delete Group */
   parse var cmdObj group .
   cmdOut.out = "DELGROUP " || group
   out = out + 1
return

ConUsr: /* ConUsr: Remove user from a group */
   cmdOut.out = "REMOVE " || cmdObj
   out = out + 1
return

DelPro: /* DelPro: Delete Profile */
   parse var cmdObj class profile acc .
   cmdOut.out = "RDELETE " || class profile
   out = out + 1
return

PerUsr: /* PerUsr: Remove permission from a profile */
   parse var cmdObj profile class ID acc
   parse value cmdObj with 'ID(' id ')' acc
   cmdOut.out = 'PERMIT '||profile class||' ID('||ID||') DELETE'
   out = out + 1
return

RdCert: /* RdCert: Remove Certificates */
if pos('GENCERT',cmdObj) <> 0 then
  DO
   if pos('CERTAUTH',cmdObj) <> 0
             then
     DO
      parse value cmdObj with 'WITHLABEL(' cert ')'
      cmdOut.out = 'RACDCERT CERTAUTH DELETE(LABEL(' || cert || '))'
      out = out + 1
     END
    ELSE DO
     parse value cmdObj with 'WITHLABEL(' cert ')'
     parse value cmdObj with 'ID (' id ')'
     cmdOut.out = 'RACDCERT ID('||id||') DELETE(LABEL('||cert||'))'
     out = out + 1
     END
  END
if pos('ADDRING',cmdObj) <> 0 then
  DO
   parse value cmdObj with 'ADDRING(' ringname ')'
   parse value cmdObj with 'ID(' user ')'
   cmdOut.out = 'RACDCERT DELRING('||ringname') ID('||user')'
   out = out + 1
  END
return

/* Finalizado - extraiga pila LIFO y escríbala *******************/
WriteCmds:
 DO i = out-1 to 1 by -1
   QUEUE cmdOut.i
   EXECIO 1 DISKW RACFUNDO
 END
return

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_racftools
File name: rsec_racftools.html