沙箱安装混乱

时间:2016-09-27 13:48:50

标签: linux sandbox mount mount-point

首先,我使用Bubblewrap作为沙盒软件,但我觉得这是一个普遍存在的问题,而不是一个bubblewrap问题。我正在尝试将bwrap添加到沙盒包装器called sandboxlib中,除了运行的测试之外,细节并不重要。

一个特定的测试尝试从“/ foo / bar”安装沙箱/。它包含2个子目录,数据和bin。

bin目录只包含一个名为'test-file-is-writable'的简单二进制文件。

如果我跑:

  

$ / usr / bin / bwrap --ro-bind / foo / bar / --tmpfs / data test-file-is-writable data / 1 / canary

     

无法打开数据/ 1 / canary进行写作。

但是,挂载/可写作品

  

$ / usr / bin / bwrap --bind / foo / bar / --tmpfs / data test-file-is-writable data / 1 / canary

     

将数据写入data / 1 / canary。

但是,我只想让/数据可写,并假设剩下的/是ro

以只读方式添加重装仍然无法解决问题

  

$ / usr / bin / bwrap --ro-bind / foo / bar / --tmpfs / data --remount-ro / test-file-is-writable data / 1 / canary

     

无法打开数据/ 1 / canary进行写作。

进一步调试,我添加了挂载到沙箱内的交互式shell所需的装载/路径

  

$ / usr / bin / bwrap --bind / foo / bar / --tmpfs / data --ro-bind / lib / lib --ro-bind / lib64 / lib64 --ro-bind / bin / usr / bin --remount-ro / bash

运行一个简单的ls /显示所有内容都按预期方式挂载。测试r / w都很好。然而,问题是/ data目录是完全空的(除了'touch / data / testwrite'的输出)。请注意我想要挂载的原始/数据分区,实际上包含文件。

Q值。我不明白这里的安装吗?或者测试错了吗? 我能看到的唯一工作就是将原始ro / data中的文件复制到新写入的数据

1 个答案:

答案 0 :(得分:0)

data/1/canary是相对路径,当前目录不是根目录,因此您尝试写入其他位置