O que você está procurando é, pelo menos, um ambiente chroot , ou seja, executar um programa com acesso apenas a uma subárvore da árvore de diretórios do sistema. Note que o chroot só se aplica a acessos ao sistema de arquivos, ele não limita o processo de qualquer outra forma: um processo em um chroot ainda pode acessar a rede, depurar programas fora do chroot, etc.
O chroot restringe os acessos ao sistema de arquivos até mesmo através de links simbólicos: se você tiver um link simbólico que aponta para fora do chroot, quando acessado de um processo chroot, um link simbólico absoluto vai da raiz do chroot e um link simbólico relativo com ..
não sobe mais do que a raiz do chroot. Então, para montar um chroot contendo arquivos em locais separados, você não pode usar links simbólicos. Você pode usar montar montagens , copiar arquivos (mas isso ocupa espaço e eles não são 't actualizado automaticamente) ou usar links físicos (mas isso é inconveniente para configurar e não pode ser feito nos sistemas de arquivos).
A chamada do sistema chroot
só pode ser chamada por root. Como usuário não-root, você pode usar o fakechroot . Isso só funciona em programas que são dinamicamente vinculados (que é a maioria deles). O Fakechroot pode montar uma árvore de diretório a partir de vários locais, então você não precisa usar montagens de bind (mas se você precisa de uma montagem de bind, você pode usar bindfs
sem privilégios de root).