假设我有一个Foo程序,是否可以在一种沙箱中运行Foo,该沙箱返回修改/创建/删除的每个文件的列表?
例如,我想说:
sandboxprogram apt install htop >> log.txt
或
sandboxprogram Foo >> log.txt
或
sandboxprogram untrusted_binary >> log.txt
并获取log.txt中所有已更改内容的列表保持系统不变
答案 0 :(得分:1)
您不能阻止它接触正在运行的系统。但是,您可以给它一个短暂的系统。这就是Docker等容器的用途。将其运行在一个为其提供所需环境的容器中(例如,已有已经包含Debian的docker容器),然后在strace或类似的容器中运行它。然后,您可以通过该输出grep查找打开的文件。然后关闭容器,所有更改都神奇地消失。