假设有一个二进制应用程序总是将其数据写入/tmp
.
/tmp
为了这个二进制文件作为其他目录(例如home/tmp
),我如何进行欺骗/模拟?
假设我无法修改此二进制文件以强制它使用不同的目录。
答案1
chroot
您可以在一个环境中运行应用程序,即/
应用程序看到的不是真实的/
。您创建一个完整的新文件系统层次结构并将--bind
所需的所有内容挂载 () 到其中。相关点是:您可以将真实的环境安装~/tmp
到环境/tmp
中chroot
。
chroot
您可以对 Linux 容器进行或多或少相同的操作,而不是使用(需要超级用户权限) lxc
。我不熟悉,lxc
但由于它是主机系统的正常用户进程,因此您不需要成为容器内此类配置的超级用户。
答案2
大多数 POSIX 兼容软件都会遵循TMPDIR环境变量例如
env TMPDIR=~/mytmp /path/to/application