1. O RACF database

O RACF database é o repositório central de todos os perfis RACF — usuários, grupos, datasets e recursos gerais. Ele é um arquivo VSAM especial, geralmente com dois datasets para redundância:

/* Datasets típicos do RACF database */ SYS1.RACF (VSAM — database primário) SYS1.RACF2 (VSAM — database secundário/backup)

O RACF mantém uma cópia em memória (in-storage copy) dos perfis mais acessados para performance. Quando um perfil é alterado, as mudanças são gravadas no disco e propagadas para a cópia em memória — por isso a maioria das mudanças RACF entra em vigor imediatamente, sem reinicialização.

Para verificar o status do RACF database:

/* Comando de operador — do console do sistema */ F RACF,STATUS Resposta típica: ICH40001I RACF IS ACTIVE ON THIS SYSTEM ICH40002I PRIMARY DATABASE IS SYS1.RACF ICH40003I BACKUP DATABASE IS SYS1.RACF2

2. Política de senhas e SETROPTS

O SETROPTS PASSWORD define as regras de senha do sistema inteiro:

/* Ver política atual */ SETROPTS LIST /* Configurar política de senhas */ SETROPTS PASSWORD( INTERVAL(90) /* expira a cada 90 dias */ MINCHANGE(1) /* mínimo 1 dia entre trocas */ HISTORY(10) /* não repetir últimas 10 senhas */ MINLENGTH(8) /* mínimo 8 caracteres */ MAXLENGTH(8) /* máximo 8 caracteres (limite RACF clássico) */ REVOKE(5) /* revogar após 5 tentativas erradas */ WARNING(10) /* avisar nos últimos 10 dias */ )

💡 Passphrases — senhas longas no RACF

O RACF suporta passphrases de até 100 caracteres — uma alternativa às senhas de 8 caracteres. Passphrases permitem autenticação mais forte e mais fácil de memorizar. Para habilitá-las: SETROPTS PASSWORD(PHRASE(ENABLED)). Um usuário pode definir sua passphrase com ALTUSER userid PHRASE('minha frase longa').

Configurações de revogação automática por inatividade:

/* Revogar contas inativas por mais de 90 dias */ SETROPTS INACTIVE(90) /* Listar usuários revogados por inatividade */ SEARCH CLASS(USER) FILTER(REVOKED)

3. RACF em batch — ICHEINTY

Muitas instalações automatizam tarefas RACF via jobs batch. O programa ICHEINTY executa comandos RACF a partir do SYSIN de um job:

//RACFJOB JOB (ACCT),'RACF BATCH',CLASS=A,MSGLEVEL=(1,1) //RACFCMDS EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * ADDUSER NOVO001 NAME('USUARIO NOVO') DFLTGRP(GRPDESENV) PASSWORD(TEMP1234) EXPIRED OWNER(RACFADM1) CONNECT NOVO001 GROUP(GRPPRODUCAO) AUTH(USE) LISTUSER NOVO001 /*

O programa IKJEFT01 é o interpretador TSO em batch — ele aceita os mesmos comandos que você digitaria no TSO interativo. O output vai para SYSTSPRT.

Para provisionamento em massa, é comum gerar o SYSIN dinamicamente com REXX ou um programa COBOL:

/* Fragmento REXX que gera comandos RACF para lista de usuários */ DO i = 1 TO usuarios.0 PARSE VAR usuarios.i userid nome grupo SAY "ADDUSER" userid SAY " NAME('"nome"')" SAY " DFLTGRP("grupo")" SAY " PASSWORD(TEMP1234) EXPIRED" SAY " OWNER(RACFADM1)" END

4. Backup e restore do RACF database

O RACF database deve ter backup diário — é um ativo crítico. O utilitário padrão é o ICHUT100 (backup) e ICHUT200 (restore), mas a maioria das instalações usa IDCAMS REPRO:

//RACFBKP JOB ... //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //RACFIN DD DSN=SYS1.RACF,DISP=SHR //RACFOUT DD DSN=BACKUP.RACF.D&&DATE, // DISP=(NEW,CATLG), // SPACE=(CYL,(100,20)) //SYSIN DD * REPRO INFILE(RACFIN) OUTFILE(RACFOUT) /*

⚠️ Restore do RACF database — impacto imediato

Restaurar o RACF database de um backup sobrescreve todos os perfis com o estado do momento do backup. Qualquer usuário criado, permissão concedida ou revogação feita após o backup será perdida. Em produção, um restore deve ser autorizado formalmente, com janela de manutenção, e imediatamente seguido de reprocessamento das mudanças que seriam perdidas.

5. Administração delegada

Em ambientes grandes, é inviável ter um único administrador RACF gerenciando tudo. O RACF suporta administração delegada por grupos:

AtributoEscopo de administração
SPECIALAdministrador global — pode criar/alterar qualquer perfil no sistema
GROUP-SPECIALAdministrador de grupo — pode administrar dentro da hierarquia do seu grupo
AUDITORAuditor global — pode ver qualquer perfil e definir GLOBALAUDIT
GROUP-AUDITORAuditor de grupo — pode ver perfis dentro da hierarquia do seu grupo
OPERATIONSBypass global de proteção de datasets
GROUP-OPERATIONSBypass de proteção para datasets dentro do grupo
/* Criar administrador delegado para o grupo GRPTI */ CONNECT JSILVA GROUP(GRPTI) AUTH(JOIN) GRPSPECIAL /* Com GRPSPECIAL, JSILVA pode administrar todos os subgrupos de GRPTI */ /* mas não pode tocar em grupos fora da hierarquia de GRPTI */

6. Troubleshooting comum

Os problemas mais frequentes em RACF e como investigá-los:

Usuário não consegue acessar dataset — mas tem permissão:

/* 1. Verificar se o perfil existe e cobre o dataset */ LISTDSD 'PRODUCAO.CLIENTES.DADOS' GENERIC ALL /* 2. Verificar os grupos do usuário */ LISTUSER JSILVA /* 3. Verificar se o usuário está revogado */ LISTUSER JSILVA /* Procurar "ATTRIBUTES=REVOKED" na saída */ /* 4. Checar mensagem de erro no log do z/OS */ /* ICH408I = acesso negado por RACF — inclui o perfil que negou */ ICH408I USER(JSILVA ) GROUP(GRPDESENV) NAME(JOAO SILVA) PRODUCAO.CLIENTES.DADOS CL(DATASET) INSUFFICIENT ACCESS AUTHORITY FROM PRODUCAO.CLIENTES.** (G)

Mudança de permissão não entrou em vigor:

/* Verificar se a classe usa RACLIST */ SETROPTS LIST /* Procurar "RACLIST=" na saída para a classe em questão */ /* Se usar RACLIST, fazer o REFRESH */ SETROPTS RACLIST(TCICSTRN) REFRESH

Mensagens RACF mais comuns no log:

MensagemSignificado
ICH408IAcesso negado — inclui usuário, recurso e perfil que negou
ICH70001ILogin bem-sucedido
ICH70003ISenha incorreta
ICH04000IUsuário não encontrado no RACF database
IEF142IRecurso não protegido (sem perfil RACF) — acesso pelo padrão da instalação

💡 Próximos passos na trilha RACF

Com esses seis artigos você tem a base para trabalhar com RACF em ambientes reais. Os próximos tópicos avançados incluem: RACF e o z/OS Unix System Services (USS), integração com LDAP e Identity Manager, RACF em ambientes Sysplex, e o uso da RACF R_Admin API para automação. Essas são habilidades que os grandes bancos buscam em profissionais sênior de segurança mainframe.