Mostrar mensagens com a etiqueta opercmd. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta opercmd. Mostrar todas as mensagens

quinta-feira, 11 de fevereiro de 2010

RACF: Mapeamento OPERCMD x SDSF (do Console à Tela Verde

 

Bellacosa Mainframe apresenta RACF 

🔐 RACF NA VEIA

Mapeamento OPERCMD x SDSF (do Console à Tela Verde

“Quem manda no console manda no sysplex…
mas quem controla o RACF manda até no operador.”
☕🖥️

No mundo z/OS, existem dois universos de comando:

  1. Console MVS real → controlado pela classe OPERCMDS

  2. Interface SDSF → controlada por um conjunto de classes RACF

Muita gente confunde, mistura e sofre.
Vamos separar isso como JES2 separa spool 😈


🧱 1️⃣ OPERCMDS – O PODER DO CONSOLE MVS

🎯 O que controla?

A classe OPERCMDS controla quem pode emitir comandos MVS e subsistemas:

  • No console físico

  • Via TSO CONSOLE

  • Via REXX ADDRESS CONSOLE

  • Via automação (SA, NetView, OPS/MVS)


📌 Exemplos clássicos de comandos protegidos

ComandoPerfil OPERCMDS
D A,LMVS.DISPLAY.ACTIVE
D U,ALLMVS.DISPLAY.UNITS
$DA (JES2)JES2.DISPLAY.ACTIVE
$P JOB123JES2.PURGE.JOB
VARY 1234,ONLINEMVS.VARY.DEVICE.ONLINE
SET SMF=xxMVS.SET.SMF

📌 Regra de ouro:
👉 Se é comando MVS/JES, o RACF olha primeiro para OPERCMDS.


🧠 Exemplo RACF raiz

RDEFINE OPERCMDS MVS.DISPLAY.** UACC(NONE) PERMIT MVS.DISPLAY.** CLASS(OPERCMDS) ID(OPERADOR) ACCESS(READ) SETROPTS CLASSACT(OPERCMDS) SETROPTS RACLIST(OPERCMDS) REFRESH

🖥️ 2️⃣ SDSF – O CONSOLE DE MENTIRINHA (MAS PERIGOSO)

“SDSF não é console…
mas faz estrago igual.”
😈

O SDSF é uma interface, e o RACF controla cada ação separadamente.


🧩 Classes RACF usadas pelo SDSF

ClasseFunção
SDSFAcesso geral ao SDSF
JESJOBSAções sobre jobs (cancel, purge, hold)
JESComandos JES
OPERCMDSSe o SDSF emitir comando real
WRITERWriters e saída
LOGSTRMLogs do sistema
FACILITYFunções especiais

📊 3️⃣ Tabela Mestre – OPERCMDS x SDSF

🧠 A tabela que salva operadores e professores

Ação no SDSFClasse RACFPerfil
Entrar no SDSFSDSFSDSF
Ver jobs (ST/DA)JESJOBSJOB.*
Cancelar jobJESJOBSJOB.CANCEL
Purge jobJESJOBSJOB.PURGE
Hold / ReleaseJESJOBSJOB.HOLD
Ver SYSLOGSDSFLOG
Comando JES $DAJESJES2.DISPLAY.ACTIVE
Comando MVS D A,LOPERCMDSMVS.DISPLAY.ACTIVE
Alterar prioridadeJESJOBSJOB.MODIFY

📌 Fofoquice real:
👉 Você pode ver tudo no SDSF e não conseguir executar nada, mesmo sendo “OPERADOR”.


⚔️ 4️⃣ Quando OPERCMDS e SDSF se cruzam

🎯 Exemplo clássico

Usuário no SDSF digita:

/D A,L

👉 O que acontece?

  1. SDSF aceita o comando

  2. RACF valida OPERCMDS

  3. Se não tiver perfil → RC=8, NOT AUTHORIZED

📌 Moral:
SDSF não ignora OPERCMDS, ele chama o RACF como qualquer console.


🔐 5️⃣ Ambiente RACF Restritivo (vida real)

✔️ Boas práticas Bellacosa Approved™

  • Nunca dar OPERCMDS MVS.** para usuário comum

  • ✔️ Preferir:

    • MVS.DISPLAY.*

    • JES2.DISPLAY.*

  • ✔️ Cancelamento via JESJOBS, não OPERCMDS

  • ✔️ Usar ROLES no SDSF

  • ✔️ Logar tudo (SMF 80, 83, 84)


🧪 6️⃣ Checklist rápido de segurança

✔ SDSF separado por perfil
✔ OPERCMDS mínimo necessário
✔ JESJOBS granular
✔ LOG e SYSLOG somente READ
✔ Nada de UACC(READ) em produção 😱
SETROPTS AUDIT OPERCMDS ativo


☕ Frase final do Bellacosa Mainframe

“No mainframe, comando não é poder…
autorização é.”