Por que eu preciso usar o chroot

13

Esta pergunta refere - se ao que é e como usar chroot.

O que eu não entendo é por que preciso usar chroot. Entendo o que faz, mas não consigo pensar em um caso em que preciso usá-lo, dado que não é um mecanismo de segurança ou uma sandbox, pois a resposta indica "você não deve usar chrootcomo segurança medida para impedir que um programa modifique arquivos fora do seu sistema de arquivos simulado ".

Especificamente, por que um determinado processo precisa mapear um subdiretório como o sistema de arquivos raiz?

Alexandru Irimiea
fonte
ter mais distribuições em um sistema de arquivos.
Ipor Sircer
o que isso significa?
Alexandru Irimiea 26/01
1
Embora possa não impedir que um determinado hacker saia da prisão, torna mais difícil e quase certamente impedirá acessos acidentais .
Barmar 26/01
se você deseja construir um novo sistema operacional a partir do zero, isso pode ser usado para configurar um ambiente novo, independente do sistema de arquivos host. dê uma olhada no projeto LFS (linux a partir do zero)
chenchuk

Respostas:

13

Existem muitas razões para usar um ambiente chroot, você pode usá-lo para manter diferentes versões de um programa, para simular um ambiente específico para testar alguns recursos e criar imagens de um sistema diferente do seu principal. um etc.

A Wikipedia pode contar mais sobre as cadeias de chroot e seus usos.

De lá:

Teste e desenvolvimento : um ambiente de teste pode ser configurado no chroot para software que seria arriscado demais para implantar em um sistema de produção.

Controle de dependência : o software pode ser desenvolvido, construído e testado em um chroot preenchido apenas com as dependências esperadas. Isso pode impedir alguns tipos de distorção de ligação que podem resultar do desenvolvimento de projetos por desenvolvedores com diferentes conjuntos de bibliotecas de programas instalados.

Compatibilidade : O software ou software herdado que usa uma ABI diferente às vezes deve ser executado em um chroot porque suas bibliotecas ou arquivos de dados de suporte podem, de outra forma, colidir com o nome ou a vinculação com os do sistema host.

Recuperação : Se um sistema se tornar não inicializável, um chroot poderá ser usado para retornar ao ambiente danificado após a inicialização de um sistema de arquivos raiz alternativo (como da mídia de instalação ou de um Live CD).

Separação de privilégios : os programas têm permissão para transportar descritores de arquivos abertos (para arquivos, pipelines e conexões de rede) para o chroot, o que pode simplificar o design da prisão, tornando desnecessário deixar os arquivos de trabalho dentro do diretório chroot. Isso também simplifica a organização comum de executar as partes potencialmente vulneráveis ​​de um programa privilegiado em uma sandbox, para conter preventivamente uma violação de segurança. Observe que o chroot não é necessariamente suficiente para conter um processo com privilégios de root.

Alberto Méndez
fonte
3
Basicamente, se você estiver executando um conjunto de programas que deseja ler / gravar coisas específicas em vigor a partir de /, mas não quiser atrapalhar o sistema existente, um chroot é útil, mesmo que seja executado como root (que é inútil do ponto de vista da segurança). Ele funciona como um "redirecionador" que, desde que você confie no programa, é útil.
LawrenceC