Debian

Como usar chroot no Debian 10

Como usar chroot no Debian 10
Em um ambiente de teste, muitas vezes precisamos colocar certos aplicativos em sandbox para evitar que danifiquem ou espionem o resto do sistema. Existem diferentes ferramentas disponíveis para a sandbox de um programa e evitando que ele afete o resto do sistema, como VirtualBox, VMware, Xen, KVM, etc. No entanto, para apenas um ou alguns aplicativos, a sandbox de um sistema operacional inteiro não parece prático.

Para o sistema operacional Linux, há uma ferramenta disponível, conhecida como chroot, que fornece uma maneira mais fácil e rápida de colocar um aplicativo em sandbox. Com o chroot, você pode instalar e testar qualquer aplicativo sem afetar o resto do sistema.

Este artigo irá explicar como usar o chroot no Debian 10 Buster, junto com alguns exemplos. Para explicação, criaremos um ambiente chroot para o bash e alguns dos comandos, como os comandos “ls,” “ip” e “pwd”.

O que é chroot?

A ferramenta chroot é um comando no Linux que muda o diretório raiz de um aplicativo para outro diretório. Os processos em execução neste novo diretório raiz não podem acessar os arquivos fora dele. Portanto, isola as operações de aplicativos do resto do sistema.

Como funciona o chroot?

O chroot funciona copiando o aplicativo e todos os seus executáveis ​​e dependências dentro do diretório raiz alternativo. Em seguida, ele executa o aplicativo a partir desse diretório raiz alternativo, fazendo com que o aplicativo o considere como o diretório raiz original. O diretório raiz é o diretório mais alto na hierarquia, e nenhum aplicativo pode atingir um nível superior a este diretório, então é assim que o chroot isola o aplicativo do resto do sistema.

Casos de Uso

Sintaxe

A seguir está a sintaxe básica do comando chroot:

$ chroot comando

Siga os passos abaixo para usar o comando chroot no Debian para configurar um ambiente chroot.

1. Crie um diretório raiz alternativo

Primeiro, crie um diretório raiz alternativo para ser usado no ambiente chroot.

$ sudo mkdir ~ / new_root

O comando acima irá criar o new_root diretório sob o Casa diretório, que será usado como o diretório raiz no ambiente chroot.

2. Adicionar diretórios essenciais

Crie os diretórios “bin”, “lib” e “lib64” sob o ~ / new_root diretório:

$ sudo mkdir -p ~ / new_root / bin, lib, lib64

3. Copiar binários do programa

Tudo o que é necessário para executar um aplicativo no ambiente chroot precisa estar no diretório raiz alternativo. Neste artigo, criaremos um ambiente chroot para o bash e alguns comandos, incluindo os comandos “ls”, “ip” e “pwd”. Portanto, iremos copiar os binários do / bin diretório para o alternativo ~ / new_root / bin diretório. Para localizar os binários dos comandos, use o comando which:

$ which bash ls ip pwd

Em seguida, copie os binários dos comandos para o ~ / new_root / bin diretório.

$ sudo cp -v / bin / bash, ls, ip, pwd ~ / new_root / bin

4. Copiar Dependências do Programa

Também precisaremos descobrir de quais dependências nosso programa precisa. Primeiro, precisaremos encontrar quais são essas dependências e, em seguida, iremos copiá-las para o diretório ~ / new_root / lib.

Copiando dependências para o bash

Primeiro, descubra as dependências do programa bash:

$ ldd / bin / bash

Em seguida, copie essas dependências para o ~ / new_root / lib diretório.

$ cp -v / lib / x86_64-linux-gnu / libtinfo.tão.6, libdl.tão.2, libc.tão.6 ~ / new_root / lib

Para os arquivos / lib64, copie-os para o ~ / new_root / lib64 diretório.

$ cp -v / lib64 / ld-linux-x86-64.tão.2 ~ / new_root / lib64

Copiar Dependências para o Comando ls

Primeiro, descubra as dependências do comando ls:

$ ldd / bin / ls

Em seguida, copie essas dependências para o ~ / new_root / lib diretório.

$ sudo cp -v / lib / x86_64-linux-gnu / libselinux.tão.1, libc.tão.6, libpcre.tão.3,
libdl.tão.2, libpthread.tão.0 / lib64 / ld-linux-x86-64.tão.2 ~ / new_root / lib

Para os arquivos / lib64, copie-os para o ~ / new_root / lib64 diretório.

$ sudo cp -v / lib64 / ld-linux-x86-64.tão.2 ~ / new_root / lib64

Copiar Dependências para Comando IP

Primeiro, descubra as dependências do comando ip:

$ ldd / bin / ip

Em seguida, copie essas dependências para o ~ / new_root / lib diretório.

$ cp -v / lib / x86_64-linux
gnu / libselinux.tão.1, libelf.tão.1, libmnl.tão.0, libcap.tão.2, libdl.tão.2, libc.tão.6,
libpcre.tão.3, libz.tão.1, libpthread.tão.0 ~ / new_root / lib

Para os arquivos / lib64, copie-os para o ~ / new_root / lib64 diretório.

$ sudo cp -v / lib64 / ld-linux-x86-64.tão.2 ~ / new_root / lib64

Copiar dependências para o comando pwd

Primeiro, descubra as dependências do comando pwd:

$ ldd / bin / pwd

Em seguida, copie essas dependências para o ~ / new_root / lib diretório.

$ sudo cp -v / lib / x86_64-linux-gnu / libc.tão.6 ~ / new_root / lib

Para os arquivos / lib64, copie-os para o ~ / new_root / lib64 diretório.

$ sudo cp -v / lib64 / ld-linux-x86-64.tão.2 ~ / new_root / lib64

Para visualizar todos os diretórios no diretório raiz alternativo, use o seguinte comando:

$ ls -R

5. Mudar para diretório raiz alternativo

Agora, estamos finalmente preparados para mudar para nosso novo ambiente chroot. Para alterar o diretório raiz, execute o seguinte comando no shell com privilégios de root:

$ sudo chroot ~ / new_root / bin / bash

Onde ~ / new_root é nosso diretório raiz alternativo e / bin / bash é o aplicativo que usamos para configurar o ambiente chroot.

Depois de executar o comando acima, você verá que o prompt do bash mudou para bash-x.y que no nosso caso é bash-5.0 (onde 5.0 é o número da versão do bash).

Observação: você pode encontrar o seguinte erro após executar o comando chroot, como eu fiz:

Se este erro ocorrer, verifique se você adicionou todas as bibliotecas e executáveis ​​relacionados ao programa necessário para o novo diretório raiz.

Depois de entrar no ambiente chroot, você só poderá acessar o arquivo dentro dele. Tente executar os comandos que você configurou para o seu ambiente chroot, incluindo alguns comandos embutidos. Você pode encontrar os comandos integrados executando o ajuda comando no shell.

Você pode ver que tentamos os comandos "ls", "pw" e "ip", e todos eles foram bem-sucedidos. Se executarmos qualquer comando diferente desses três comandos e os comandos embutidos, o comando falhará, pois não o configuramos para o ambiente chroot. Como você pode ver na captura de tela a seguir, tentamos executar os comandos “touch,” “ping” e “clear”, e todos eles falharam.

6. Sair do chroot

Para sair do ambiente chroot, use o saída comando.

Conclusão

Neste artigo, você aprendeu o que é chroot e como funciona no Linux. Este artigo mostrou passo a passo como usar chroot no Debian 10 Buster para criar um ambiente chroot para bash e outros comandos. Agora, você deve se sentir confortável usando o comando chroot para alterar o diretório raiz de um processo e seus subprocessos e isolá-los do resto do sistema.

Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...
Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux anterior
Muitos desenvolvedores e editores de jogos estão apresentando remasterização em HD de jogos antigos para estender a vida da franquia, por favor, os fã...