1. Estrutura de usuários e grupos

O RACF organiza usuários em uma hierarquia de grupos. Todo usuário tem um grupo default (o grupo "dono" do USERID) e pode pertencer a múltiplos grupos adicionais. Cada grupo pode ter um grupo superior (superior group), formando uma árvore.

🦕 Analogia — organograma corporativo

Pense nos grupos RACF como departamentos de uma empresa. Um analista (USERID) pertence ao departamento TI-DESENV (grupo default). Ele também pode ser conectado ao departamento TI-PROJETOS. Quando precisa de acesso a um dataset, o RACF verifica se ele ou algum dos seus departamentos tem permissão.

O grupo raiz de toda instalação z/OS é o grupo SYS1 (ou IBMUSER em sistemas recém-instalados). Todo grupo e usuário tem um owner — quem criou e tem autoridade sobre aquele perfil.

2. ADDUSER — criando usuários

O comando ADDUSER cria um novo USERID no RACF. Sintaxe principal:

ADDUSER userid NAME('nome completo') DFLTGRP(grupo) PASSWORD(senha) NOEXPIRED OWNER(owner) DATA('informações livres')

Exemplo prático — criando um analista de desenvolvimento:

/* Criar usuário JSILVA no grupo GRPDESENV */ ADDUSER JSILVA NAME('JOAO SILVA') DFLTGRP(GRPDESENV) PASSWORD(TEMP1234) EXPIRED OWNER(RACFADM1) DATA('ANALISTA TI - ADMISSAO 2026-06-17')

O parâmetro EXPIRED força que o usuário troque a senha no primeiro login — boa prática de segurança.

ParâmetroDescriçãoObrigatório?
NAME('...')Nome completo do usuárioNão, mas recomendado
DFLTGRP(grupo)Grupo default (owner implícito do user)Não — default: SYS1
PASSWORD(senha)Senha inicialNão em alguns ambientes
EXPIREDForça troca de senha no primeiro loginNão
NOEXPIREDSenha não expira no primeiro loginNão
OWNER(userid/grupo)Dono do perfilNão — default: grupo criador
DATA('...')Campo livre de 255 caracteresNão
SPECIALAtributo de administrador RACFNão — use com critério
OPERATIONSIgnora proteções de datasetsNão — use com critério

⚠️ Atributos SPECIAL e OPERATIONS

SPECIAL dá poder total sobre o RACF ao usuário — ele pode criar/alterar/deletar qualquer perfil. OPERATIONS dá acesso a qualquer dataset independentemente de permissões. Em ambientes auditados, a concessão desses atributos deve ser formal, documentada e restrita a contas de administração — nunca a contas pessoais.

3. ALTUSER e DELUSER

O ALTUSER altera atributos de um usuário existente. Sintaxe idêntica ao ADDUSER, mas apenas os parâmetros informados são alterados:

/* Revogar acesso de um usuário temporariamente */ ALTUSER JSILVA REVOKE /* Reativar */ ALTUSER JSILVA RESUME /* Forçar troca de senha */ ALTUSER JSILVA PASSWORD(RESET99) EXPIRED /* Atualizar campo DATA */ ALTUSER JSILVA DATA('ANALISTA SR - PROMOCAO 2026-06-17') /* Remover atributo SPECIAL de um usuário */ ALTUSER JSILVA NOSPECIAL

O DELUSER remove o usuário do RACF. Antes de deletar, o RACF verifica se o usuário ainda é owner de algum perfil ou grupo — se for, o comando falha:

DELUSER JSILVA Possível erro: ICH01006I JSILVA IS OWNER OF A PROFILE IN THE DATASET CLASS. IRR52175I DELUSER processing failed for user JSILVA. Solução: transferir ownership dos perfis antes de deletar ALTDSD 'JSILVA.**' OWNER(RACFADM1) DELUSER JSILVA

4. LISTUSER — consultando perfis

O LISTUSER exibe as informações de um USERID:

LISTUSER JSILVA Saída típica: USER=JSILVA NAME=JOAO SILVA OWNER=RACFADM1 CREATED=26.168 DEFAULT-GROUP=GRPDESENV PASSDATE=26.168 PASS-INTERVAL=90 PHRASEDATE=N/A ATTRIBUTES=NONE REVOKE DATE=NONE RESUME DATE=NONE LAST-ACCESS=26.168/09:32:15 CLASS AUTHORIZATIONS=NONE NO-INSTALLATION-DATA DATA=ANALISTA TI - ADMISSAO 2026-06-17 GROUP=GRPDESENV AUTH=USE CONNECT-OWNER=RACFADM1 CONNECT-DATE=26.168 CONNECTS= 1 UACC=NONE LAST-CONNECT=26.168/09:32:15 CONNECT ATTRIBUTES=NONE REVOKE DATE=NONE RESUME DATE=NONE

Para listar apenas os grupos de um usuário:

LISTUSER JSILVA NORACF /* Suprime dados RACF, mostra só grupos e atributos de connect */

5. ADDGROUP, ALTGROUP, LISTGRP

Grupos organizam usuários e permitem gerenciar permissões em bloco. O ADDGROUP cria um grupo:

/* Criar grupo para equipe de desenvolvimento */ ADDGROUP GRPDESENV SUPGROUP(GRPTI) OWNER(RACFADM1) DATA('GRUPO DE DESENVOLVEDORES COBOL') /* Criar grupo para administradores de banco */ ADDGROUP GRPDBA SUPGROUP(GRPTI) OWNER(RACFADM1)

O SUPGROUP define o grupo pai na hierarquia. Isso é importante para a herança de autoridade: um administrador com autoridade sobre GRPTI automaticamente tem autoridade sobre GRPDESENV e GRPDBA.

O LISTGRP exibe informações do grupo:

LISTGRP GRPDESENV Saída típica: GROUP=GRPDESENV OWNER=RACFADM1 CREATED=26.100 DATA=GRUPO DE DESENVOLVEDORES COBOL SUPERIOR GROUP=GRPTI TERMUACC=NONE NO INSTALLATION DATA USER(S)= ACCESS= AUTH= CONNECT-OWNER= JSILVA USE NONE RACFADM1 MPINTO USE NONE RACFADM1 KFERREIRA USE JOIN RACFADM1

A coluna AUTH indica a autoridade do usuário dentro do grupo:

AUTHO que permite
USEUsa recursos do grupo — sem autoridade administrativa
CREATEPode criar datasets com HLQ do grupo
CONNECTPode conectar outros usuários ao grupo
JOINAutoridade máxima no grupo — pode fazer tudo dentro dele

6. CONNECT e REMOVE

Um usuário pode pertencer a múltiplos grupos. O CONNECT adiciona um usuário a um grupo:

/* Conectar JSILVA ao grupo GRPDBA com acesso básico */ CONNECT JSILVA GROUP(GRPDBA) AUTH(USE) /* Conectar KFERREIRA ao grupo com autoridade JOIN */ CONNECT KFERREIRA GROUP(GRPDESENV) AUTH(JOIN) /* Remover JSILVA do grupo GRPDBA */ REMOVE JSILVA GROUP(GRPDBA)

💡 Grupo default não pode ser removido com REMOVE

O grupo default de um usuário (definido no ADDUSER com DFLTGRP) não pode ser removido com o comando REMOVE. Para "desconectar" o usuário, é necessário primeiro alterar o grupo default via ALTUSER userid DFLTGRP(outro-grupo) e depois fazer o REMOVE do grupo anterior.

Workflow típico de onboarding de um novo funcionário:

/* 1. Criar o usuário */ ADDUSER ANOVO NAME('ANA NOVO') DFLTGRP(GRPDESENV) PASSWORD(TEMP1234) EXPIRED OWNER(RACFADM1) DATA('ANALISTA JR - ADMISSAO 2026-06-17') /* 2. Conectar ao grupo adicional se necessário */ CONNECT ANOVO GROUP(GRPPRODUCAO) AUTH(USE) /* 3. Verificar o resultado */ LISTUSER ANOVO

E o offboarding de um funcionário:

/* 1. Revogar imediatamente (impede login) */ ALTUSER ANOVO REVOKE /* 2. Remover de grupos adicionais */ REMOVE ANOVO GROUP(GRPPRODUCAO) /* 3. Transferir ownership de datasets (se necessário) */ /* 4. Deletar o usuário */ DELUSER ANOVO