Eu quero criar um chroot para um comando que eu vou executar, e eu quero que o chroot seja completamente idêntico ao sistema de arquivos "real", exceto para um arquivo alterado .
(Vamos supor que este é realmente o caminho certo para abordar o meu problema - eu estou explorando outras possibilidades também:)
Uma coisa que parecia interessante era usar unionfs - basicamente, o diretório "upper" contém o arquivo, e o "inferior", root ( /
).
Infelizmente, isso não funciona:
$ sudo mount_unionfs mydir /
mount_unionfs: mydir (/usr/home/myuser/chroots/mydir) and / (/) are not distinct paths
Eu posso ver porque isso pode ser problemático - talvez isso criaria recursão infinita? Mas eu não tenho certeza do porque é impedido, para ser honesto.
Eu poderia realizar algo semelhante com um monte de nullfs
de montagens em mydir/...
, para corresponder a tudo montado em /
no meu sistema real.
Mas há uma maneira mais agradável?
Isto está no FreeBSD, mas outro conselho * nix também agradeceu.