如何将二进制应用程序使用的目录欺骗/模拟为另一个目录?

如何将二进制应用程序使用的目录欺骗/模拟为另一个目录?

假设有一个二进制应用程序总是将其数据写入/tmp.

/tmp为了这个二进制文件作为其他目录(例如home/tmp),我如何进行欺骗/模拟?

假设我无法修改此二进制文件以强制它使用不同的目录。

答案1

chroot您可以在一个环境中运行应用程序,即/应用程序看到的不是真实的/。您创建一个完整的新文件系统层次结构并将--bind所需的所有内容挂载 () 到其中。相关点是:您可以将真实的环境安装~/tmp到环境/tmpchroot

chroot您可以对 Linux 容器进行或多或少相同的操作,而不是使用(需要超级用户权限) lxc。我不熟悉,lxc但由于它是主机系统的正常用户进程,因此您不需要成为容器内此类配置的超级用户。

答案2

大多数 POSIX 兼容软件都会遵循TMPDIR环境变量例如

env TMPDIR=~/mytmp  /path/to/application

相关内容