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


9

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

我如何/tmp为了这个二进制文件而欺骗/嘲笑其他目录(例如home/tmp)?

假设我无法修改此二进制文件以强制其使用其他目录。

Answers:


11

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

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


很好的答案,我没有听说过chroot或者lxc有能力做到这一点。知道有一种无需成为超级用户即可完成它的方法也非常令人高兴。
Nobilis 2014年

3
@Nobilis 98投票认为缺少答案,这被认为是一个不错的答案……
Hauke Laging 2014年

2
但请注意,这chroot需要额外的设置(您要更换的整体/,而不仅仅是/tmp,所以任何访问/etc/var等等,也将是“监狱”内),并创建了自己的(以下简称“囚禁”节目的安全性的担忧可能能够操纵文件系统的某些部分,如果您在设置假冒时不小心使用权限,通常这些部分是无法访问的/
IMSoP 2014年

@IMSoP您介意更详细地解释“也许能够操纵文件系统中通常禁止进入的部分”吗?
Hauke Laging

@HaukeLaging如果/不只限制新内容的编写root,则“坐牢”的用户可以创建或替换似乎位于关键系统位置的文件,例如/etc/passwd; 然后可以将其用于特权升级,而在之外无法进行这种特权升级chroot。传统上chroot用来隐藏文件系统其余部分的许多Linux FTP服务器现在拒绝这样做,前提是该目录可由非root用户写入。
IMSoP 2014年

8

大多数与POSIX兼容的软件都会采用TMPDIR环境变量,例如

env TMPDIR=~/mytmp  /path/to/application
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.