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

Nob*_*lis 9 directory

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

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

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

Hau*_*ing 11

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

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

  • @Nobilis 98 upvotes 缺少这个被认为是一个很好的答案...... (3认同)
  • 但是请注意,`chroot` 需要额外的设置(您要替换整个 `/`,而不仅仅是 `/tmp`,因此对 `/etc`、`/var` 等的任何访问也将在“jail”)并产生自己的安全问题(“jail”程序可能能够操纵文件系统的某些部分,如果您在设置假`/ `)。 (2认同)

HBr*_*ijn 8

大多数符合 POSIX 的软件都会遵守TMPDIR环境变量,例如

env TMPDIR=~/mytmp  /path/to/application
Run Code Online (Sandbox Code Playgroud)