← RHCE in Ansible: automação e operação
19 / 19 · 70 MIN

Contas, grupos e revogação SSH

Controla o estado de contas e grupos, gere conjuntos de chaves e distingue bloquear novas ligações de terminar sessões existentes.

1. Definir a propriedade do estado de grupos

O serviço fictício precisa de uma conta trainee com grupo principal appops e pertença suplementar inicial a legacyops. O play cria primeiro os grupos e declara essa separação no módulo user. Depois, um exercício acrescenta reporting com append: true, conservando legacyops. Uma execução com append: false mantém apenas reporting entre os grupos suplementares; appops continua a ser o grupo principal. Escolher o parâmetro exige saber quem é responsável pelo conjunto completo. Se outra equipa gere uma pertença legítima, uma lista autoritativa incompleta pode removê-la. Se a intenção aprovada é retirar acessos antigos, um acréscimo conservador pode mantê-los. Antes de mudar, compara estado atual, estado pretendido e responsabilidade de cada pertença.

2. Interpretar previsão e convergência

O laboratório executa primeiro a criação de predicted_only em check mode. Cada nó comunica uma alteração prevista, mas getent confirma que o grupo não existe depois. Em contraste, accounts.yml é executado normalmente e altera contas, chaves, diretórios e a regra sudo. A segunda execução desse mesmo estado termina com zero alterações nos dois nós. Isso demonstra idempotência no contexto observado, não ausência de drift futuro nem correção universal do desenho. Após o play, verificam-se grupo principal, grupos suplementares, dono, grupo e modo 0750 do diretório de handover. Quando check mode encontra dependências entre recursos ainda inexistentes, a previsão pode ser parcial ou falhar; um ensaio real num alvo descartável continua necessário.

3. Gerir chaves como conjunto completo

A conta recebe duas chaves públicas numa única chamada authorized_key com exclusive: true. O exercício errado envia uma chave de cada vez num ciclo, mantendo exclusive em cada iteração. No final, só a última chave permite uma ligação nova. Não existe uma união automática entre as iterações: cada chamada declara o conjunto exclusivo do seu próprio pedido. O play correto volta a enviar as duas chaves juntas, separadas por uma nova linha, e ambas recuperam acesso. Numa rotação de produção, confirma a lista autorizada e testa a chave nova antes de retirar a antiga, segundo a janela aprovada. Não confundas o ficheiro de chaves públicas no servidor com a chave privada usada pelo controlador.

4. Observar o alcance de uma revogação

A password de trainee está bloqueada, mas as duas chaves continuam a autenticar com a configuração OpenSSH/PAM usada. O bloqueio de password não é, portanto, prova de desativação completa da conta. O ensaio abre uma sessão real com a chave A, remove essa chave e tenta ligações novas sem reutilizar uma ligação SSH existente. A chave A é recusada, a chave B continua a funcionar e a sessão já autenticada ainda executa um comando. A revogação observada refere-se à nova autenticação por aquela chave. Um incidente pode exigir inventariar e terminar sessões e processos, retirar outros métodos de acesso ou conter o host. Essas ações adicionais devem ter âmbito e autorização próprios; não foram simuladas como concluídas neste exercício.

5. Fechar a mudança sem perder o controlo operacional

A repetição da remoção da chave A termina sem alterações, e o acesso separado de automation mantém-se nos dois nós. A evidência permite distinguir o efeito pretendido de um bloqueio acidental de toda a administração. Num serviço de produção, o plano deve identificar as contas afetadas, o método de recuperação autorizado, a população de servidores e os testes positivos e negativos. Depois de uma alteração de grupos, considera também processos já iniciados, que podem conservar credenciais anteriores; uma leitura atual da base de contas não demonstra atualização de todas as sessões. O laboratório não mede essa transição de grupos em processos existentes. O resumo de handover deve indicar exatamente o que mudou, o que foi observado e que validações continuam a ser necessárias.

# Original lab: content/labs/rhce-remote-accounts
# Run the complete disposable lab: python3 run.py --output evidence-local.json
# Requires images built with Dockerfile.node and Dockerfile.controller.
# The runner provisions keys and inventory; this play belongs to that fixture.
# Inside the prepared controller: ansible-playbook -i /lab/inventory.ini /lab/accounts.yml
- name: Converge disposable remote accounts and both authorized keys
  hosts: managed
  gather_facts: false
  become: true
  tasks:
    - name: Establish required groups before referencing them
      ansible.builtin.group:
        name: '{{ item }}'
        state: present
      loop: [appops, legacyops, reporting]
    - name: Declare primary and supplementary membership explicitly
      ansible.builtin.user:
        name: trainee
        group: appops
        groups: [legacyops]
        append: false
        shell: /bin/bash
        create_home: true
        password_lock: true
    - name: Manage both keys as one exclusive set
      ansible.posix.authorized_key:
        user: trainee
        key: "{{ lookup('ansible.builtin.file', '/lab/key_a.pub') ~ '\n' ~ lookup('ansible.builtin.file', '/lab/key_b.pub') }}"
        exclusive: true
        state: present
    - name: Establish a handover directory with explicit permissions
      ansible.builtin.file:
        path: /srv/dr-handover
        state: directory
        owner: trainee
        group: appops
        mode: '0750'
    - name: Install a validated narrowly scoped demonstration sudo rule
      ansible.builtin.copy:
        dest: /etc/sudoers.d/dr-trainee
        content: "trainee ALL=(root) NOPASSWD: /usr/bin/id\n"
        owner: root
        group: root
        mode: '0440'
        validate: '/usr/sbin/visudo -cf %s'
NA PRÁTICA

append: true conserva legacyops; append: false remove-o. Depois de retirar a chave A, uma ligação nova falha mas a sessão anteriormente aberta continua utilizável.

Armadilhas comuns

Confundir grupos principais e suplementares; ler changed em check mode como alteração aplicada; usar exclusive por chave num ciclo; tratar remoção de chave como encerramento de sessões.

Tópicos relacionados: SSH, identidade e elevação validada

Leva esta ideia contigo

Declara o conjunto que geres e prova o efeito observado de cada concessão ou revogação.

Criar conta

Referência: User account and supplementary group management · EX294 current objectives inspected 2026-09-30; RHCE in Ansible framework effective 2026-05-11; booking product version not publicly pinned

Red Hat®, RHCE e Ansible são marcas comerciais ou marcas registadas de Red Hat, Inc. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por Red Hat. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.