comando chroot

Propósito

Altera o diretório raiz de um comando.

Sintaxe

chroot Diretório Comando

Descrição

Atenção: Se arquivos especiais no novo diretório raiz tiverem diferentes números de dispositivos principais e menores do que o diretório raiz real, é possível sobrescrever o sistema de arquivos.

O comando chroot pode ser usado apenas por um usuário operando com autoridade de usuário root. Se você tiver autoridade de usuário root, o comando chroot altera o diretório raiz para o diretório especificado pelo parâmetro Directory ao executar o Command. O primeiro / (slash) em qualquer nome de caminho muda para o Directory para o Command especificado e qualquer um de seus filhos.

O nome do caminho do Directory é sempre relativo à raiz atual. Mesmo se o comando chroot estiver em vigor, o nome do caminho do Directory é relativo à raiz atual do processo de execução.

Uma maioria de programas pode não operar adequadamente após a execução do comando chroot . Por exemplo, os comandos que usam as bibliotecas compartilhadas não são bem-sucedidos se as bibliotecas compartilhadas não estiverem no novo sistema de arquivos raiz. A biblioteca compartilhada mais comumente usada é a biblioteca /usr/ccs/lib/libc.a .

O comando ls -l não conseguirá fornecer nomes de usuários e grupos se o local atual da raiz tornar o arquivo /etc/passwd inacessível. Além disso, utilitários que dependem de arquivos localizados (/usr/lib/nls/ *) podem também não ser bem sucedidos se esses arquivos não estiverem no novo sistema de arquivos raiz. É de sua responsabilidade garantir que todos os arquivos de dados vitais estejam presentes no novo sistema de arquivos raiz e que os nomes do caminho acessando tais arquivos sejam alterados conforme necessário.
Nota: Certifique-se de que o comando /usr/sbin/execerror esteja disponível no novo sistema de arquivos raiz para que as mensagens de erro descritivo sejam retornadas em caso de falha de chroot . Caso contrário, se houver um erro, chroot retorna Killed e nada mais.

Parâmetros

Item Descrição
Comando Especifica um comando para executar com o comando chroot .
Diretório Especifica o novo diretório raiz.

Segurança

Atenção aos usuários do RBAC: Este comando pode realizar operações privilegiadas. Somente usuários privilegiados podem executar essas operações. Para obter mais informações sobre autorizações e privilégios, consulte Banco de Dados de Comandos Privilegiados em Segurança. Para obter uma lista de privilégios e as autorizações associadas a esse comando, consulte o comando lssecattr ou o subcomando getcmdattr.

Exemplos

Atenção: Os comandos nos exemplos a seguir podem depender de bibliotecas compartilhadas. Certificar-se de que as bibliotecas compartilhadas estão no novo sistema de arquivos raiz antes de executar o comando chroot .

  1. Para executar o comando pwd com o diretório /usr/bin como o sistema de arquivos raiz, digite:
    mkdir /usr/bin/lib
     
    cp /usr/ccs/lib/libc.a /usr/bin/lib
    
    cp /usr/lib/libcrypt.a /usr/bin/lib
     
    chroot /usr/bin pwd
  2. Para executar um sub-shell de Korn com outro sistema de arquivos como o sistema de arquivos raiz, digite:
    chroot /var/tmp /usr/bin/ksh
    Isto faz com que o nome do diretório / (slash) consulte o/var/tmppara a duração do/usr/bin/kshcomando . Ele também torna o sistema de arquivos raiz original inacessível. O sistema de arquivos no/var/tmparquivo deve conter os diretórios padrão de um sistema de arquivos raiz. Em particular, o shell procura por comandos no/bine/usr/binarquivos no/var/tmpsistema de arquivos.

    Executando o/usr/bin/kshcomando cria um subshell que roda como um processo separado a partir de sua casca original. Pressione a sequência de teclas END OF FILE (Ctrl-d) para acabar com a subshell e voltar para onde você estava na casca original. Isso restaura o ambiente da casca original, incluindo os significados do. (diretório atual) e o / (diretório raiz).

  3. Para criar um arquivo em relação à raiz original, não a nova, digite:
    chroot directory Command > file

Arquivos

Item Descrição
/etc/passwd Especifica arquivo que contém atributos básicos do usuário.
/usr/ccs/lib/libc.a Especifica a biblioteca de E/S padrão e a biblioteca padrão C.
/usr/ccs/lib/libcurses.a Especifica a biblioteca de curses.
/usr/lib/liblvm.a Especifica a biblioteca LVM (Logical Volume Manager).
/usr/ccs/lib/libm.a Especifica a biblioteca de matemática.
/usr/lib/libodm.a Especifica a biblioteca do ODM (Object Data Manager).
/usr/sbin/chroot Contém o comando chroot .