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 2Atençã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âmetro | Tipo | Descrição |
|---|---|---|
| path | const char * | Novo diretório raiz. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | pathconst 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).