Voltar à lista
Linux x86_64Sistema de arquivos#161

chroot

Altera o diretório raiz aparente ("/") do processo chamador.

Descrição

Mecanismo de isolamento de sistema de arquivos mais antigo do Unix — hoje considerado insuficiente sozinho como sandbox de segurança (é conhecidamente escapável por um processo com privilégio suficiente), sendo tipicamente combinado com namespaces e queda de privilégio para isolamento real.

Header: unistd.hman 2

Atenção

Não muda o diretório de trabalho atual nem restringe descritores de arquivo já abertos fora da nova raiz — usar `chroot` com segurança exige também `chdir` para dentro dela e cuidado extra com o que já foi aberto antes.

Assinatura

int chroot(const char * path);

Parâmetros

ParâmetroTipoDescrição
pathconst char *Novo diretório raiz.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1pathconst char *

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
ENOENT(2)
Arquivo ou diretório inexistente.
ENOTDIR(20)
Não é um diretório.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas