0

例如,我的系统在 /stuff 有一个挂载点。我需要一个特定的程序来将 /stuff 视为不同的挂载(该程序具有硬编码的 /stuff 路径,我无法更改)。有没有办法让那个特定的程序视图/东西与其他人不同?我是否必须使用 chroot,并从我的真实 rootfs 复制所有挂载/devnodes 等?谢谢。

编辑:澄清一下,我希望一个程序在 /stuff 中查看时看到不同的地方,我不希望程序通过不同的地方访问 /stuff 的内容。例如,如果系统上的其他任何地方执行“ls /stuff”,他们会看到fileA.txt fileB.txt,但如果这个程序执行“ls /stuff”,它会看到fileC.txt。

4

1 回答 1

0

当您用“Linux”标记这个问题时,我会假设这是您要求的操作系统。根据特定程序的启动方式,您可以使用“ unshare(1)”创建解决方法。

为此,您必须编写脚本挂载(或绑定挂载),无论该程序需要什么/stuff,然后执行该程序。但是,不要自行启动此脚本。使用“ unshare -m thescriptsname”,只有以脚本使用的进程开头的进程树才能看到新的/更改的挂载。

根据情况启动一个外壳,您可以在不影响系统的情况下更改安装,也可能会有所帮助。" unshare -m $SHELL" 应该给予必要的分隔。

于 2013-11-20T07:19:05.650 回答