O que é: chroot

chroot (abreviação de change root) é uma chamada de sistema Unix que altera o diretório raiz aparente para um processo e seus filhos, criando um ambiente isolado conhecido como chroot jail. A funcionalidade foi introduzida no Unix Version 7 em 1979 e popularizada por Bill Joy durante o desenvolvimento do BSD. Há mais de quatro décadas o chroot serve como ferramenta de isolamento, sandboxing simples e recovery em sistemas Linux e Unix-like.

Origem e evolução

Bill Joy, cofundador da Sun Microsystems e autor do editor vi, incluiu o chroot nas primeiras versões do BSD como mecanismo para testar builds do sistema em ambientes isolados. Com a popularização do Linux nos anos 1990, o chroot virou ferramenta padrão de administradores para montar jails de serviços como BIND (DNS), FTP e, mais tarde, SFTP via OpenSSH. Nos anos 2000, foi base conceitual para projetos como FreeBSD jails e, posteriormente, para containers Linux (LXC, Docker).

Como funciona o chroot

chroot é uma syscall que redefine o diretório / para um processo e todos os seus descendentes. Quando um processo entra em chroot, ele enxerga apenas os arquivos presentes dentro do diretório designado como novo root, perdendo acesso ao restante do sistema de arquivos. Essa mudança afeta apenas o processo filho; o sistema host continua intocado. A sintaxe é chroot novo-root comando, e a syscall exige privilégios de root (capability CAP_SYS_CHROOT).

Principais casos de uso

  • Recovery de sistemas Linux: boot via live USB, montar partições e usar chroot para reinstalar GRUB, corrigir /etc/fstab ou resetar senha root.
  • SFTP jail com OpenSSH: a diretiva ChrootDirectory restringe usuários SFTP ao próprio diretório, isolando clientes em hospedagens compartilhadas.
  • Build environments reprodutíveis: ferramentas como pbuilder, sbuild e debootstrap usam chroot para compilar pacotes em ambientes limpos e idênticos.
  • Sandbox simples: rodar aplicações legadas com bibliotecas antigas sem interferir no sistema principal.
  • Testes de software: validar binários em diferentes versões de glibc ou outras dependências.

chroot não é segurança real

Apesar do nome popular ‘chroot jail’, o chroot nunca foi projetado como barreira de segurança contra atacantes com privilégios elevados. Segundo o Linux man-pages chroot(2), um processo com acesso root dentro do jail pode escapar facilmente usando técnicas como fork combinado com reopen de descritores de arquivo. O chroot também não isola namespaces de PID, rede, mount ou IPC, o que significa que o processo preso ainda enxerga todos os outros processos e interfaces de rede do host.

chroot vs containers modernos

Soluções como Docker, Podman e LXC oferecem isolamento muito mais abrangente ao combinar chroot com namespaces Linux (PID, network, mount, user, UTS, IPC) e cgroups para limitar CPU, memória e I/O. Em produção, cenários multi-tenant ou qualquer caso que exija segurança real, containers substituem o chroot bare.

Exemplo rápido

Montar um chroot funcional envolve três passos: criar o diretório, copiar binários e bibliotecas necessárias, e executar o comando chroot:

mkdir -p /jail/{bin,lib,lib64}
cp /bin/bash /jail/bin/
ldd /bin/bash | awk '{print $3}' | xargs -I {} cp {} /jail/lib/
chroot /jail /bin/bash

Sem copiar as bibliotecas listadas pelo ldd, o bash dentro do jail falhará ao iniciar com erro de ‘file not found’.

Alternativas modernas

  • Linux namespaces (unshare): isolamento real de PID, rede, mount, user e IPC.
  • systemd-nspawn: container leve integrado ao systemd.
  • Firejail e bubblewrap: sandboxes para aplicações desktop e Flatpak.
  • Docker, Podman, LXC: containers completos para produção, com imagens portáveis.

Resumo

O chroot continua útil em recovery, SFTP jail e builds simples, mas não substitui containers em cenários que exigem isolamento real. Entender suas limitações é fundamental para administradores Linux, profissionais DevOps e qualquer um que trabalhe com infraestrutura B2B em servidores dedicados ou hospedagem gerenciada. Trata-se de uma ferramenta clássica que permanece relevante quando usada no contexto correto.

Veja o artigo completo: chroot: isolamento Linux clássico, limitações e comparação com containers.

Como podemos te ajudar?

Entre em contato conosco hoje mesmo e descubra como nossa empresa de marketing pode impulsionar suas vendas, aumentar sua visibilidade online e alcançar seus objetivos de negócios.

Desenvolvemos projetos conforme as necessidades e objetivos de cada cliente, sempre com processos bem definidos e transparentes do planejamento ao controle, facilitando a comunicação com as partes interessadas e a melhoria contínua das ações de marketing implementadas.

Danilo Pedrosa
Especialista em Projetos de Marketing, Shiftmind