Red Hat Training

A Red Hat training course is available for RHEL 8

1.4. Recipientes funcionando como raiz ou sem raiz

Executar as ferramentas de contêineres como podman, skopeo, ou buildah como um usuário com privilégio de super usuário (usuário root) é a melhor maneira de garantir que seus contêineres tenham pleno acesso a qualquer recurso disponível em seu sistema. Entretanto, com o recurso chamado "Rootless Containers", geralmente disponível a partir do RHEL 8.1, você pode trabalhar com containers como um usuário regular.

Embora os motores de contêineres, como o Docker, permitam executar os comandos docker como um usuário regular (não-root), o daemon da doca que executa esses pedidos funciona como raiz. Assim, efetivamente, usuários regulares podem fazer solicitações através de seus contêineres que prejudicam o sistema, sem que haja clareza sobre quem fez essas solicitações. Ao configurar usuários de contêineres sem raiz, os administradores do sistema limitam as atividades de contêineres potencialmente prejudiciais dos usuários regulares, enquanto ainda permitem que esses usuários executem com segurança muitos recursos de contêineres sob suas próprias contas.

Esta seção descreve como configurar seu sistema para usar ferramentas de contêineres (Podman, Skopeo e Buildah) para trabalhar com contêineres como um usuário não-raiz (rootless). Ela também descreve algumas das limitações que você encontrará porque as contas de usuários regulares não têm acesso total a todas as características do sistema operacional que seus contêineres podem precisar para funcionar.

1.4.1. Preparado para recipientes sem raiz

Você precisa se tornar um usuário root para configurar seu sistema RHEL para permitir que contas de usuários não root utilizem ferramentas de contêineres:

  1. Install RHEL: Instale RHEL 8.1 ou atualize para RHEL 8.1 a partir de RHEL 8.0. Versões anteriores da RHEL 7 não possuem os recursos necessários para este procedimento. Se você estiver atualizando a partir da RHEL 7.6 ou antes, continue para "Upgrade to rootless containers" depois que este procedimento for feito.
  2. Install podman and slirp4netns: Se ainda não estiver instalado, instale os pacotes podman e slirp4netns:

    # yum instalar slirp4netns podman -y
  3. Increase user namespaces: Para aumentar o número de espaços de nomes de usuários no núcleo, digite o seguinte:

    # echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf
    # sysctl -p /etc/sysctl.d/userns.conf
  4. Create a new user account: Para criar uma nova conta de usuário e adicionar uma senha para essa conta (por exemplo, joe), digite o seguinte:

    # useradd -c "Joe Jones" joe
    # passwd joe

    O usuário é configurado automaticamente para poder utilizar o podman sem raiz. Caso você queira habilitar um usuário existente a utilizar o podman sem raiz, veja a seção Atualização para recipientes sem raiz.

  5. Se você quiser executar containers com systemd, veja a seção Utilizando as imagens init do UBI.
  6. Try a podman command: Entre diretamente como o usuário que você acabou de configurar (não use su ou su - para se tornar esse usuário porque isso não define as variáveis de ambiente corretas) e tente puxar e executar uma imagem:

    $ podman pull registry.access.redhat.com/ubi8/ubi
    $ podman run registry.access.redhat.com/ubi8/ubi cat /etc/os-release
    NAME="Red Hat Enterprise Linux"
    VERSION="8.1 (Ootpa)"
    ...
  7. Check rootless configuration: Para verificar se sua configuração sem raiz está configurada corretamente, você pode executar comandos dentro do espaço de nomes de usuário modificado com o comando podman unshare. Como usuário rootless, o seguinte comando lhe permite ver como as uids são atribuídas ao espaço de nomes de usuário:

    $ podman unshare cat /proc/self/uid_map
             0       1001       1
             1      65537   65536