我的系统在/ stuff处有一个挂载点。我需要一个特定的程序来查看/填充作为一个不同的挂载(程序有硬编码/填充路径,我不能改变它)。有没有办法让特定的程序视图/东西与其他人不同?我是否必须使用chroot,并从我真正的rootfs复制所有坐骑/ devnodes等?感谢。
编辑:澄清一下,我希望一个程序在查看/ stuff时看到不同的地方,我不希望程序通过不同的地方访问/ stuff的内容。例如,如果系统上的任何其他地方都有“ls / stuff”,他们会看到fileA.txt fileB.txt,但如果这个程序要执行“ls / stuff”,它会看到fileC.txt。
答案 0 :(得分:0)
当您用" Linux"标记此问题时我假设这是你要求的操作系统。根据特定程序的启动方式,您可以使用" unshare(1)
"来创建变通方法。
为此,你必须编写一个脚本挂载(或绑定挂载),无论该程序需要/stuff
,然后执行该程序。但是,不要自己开始这个剧本。使用" unshare -m thescriptsname
"并且只有从脚本使用的进程开始的进程树才会看到新的/已更改的挂载。
根据启动shell的情况,您可以更改安装而不影响系统也可能有所帮助。 " unshare -m $SHELL
"应该给予必要的分离。