【问题标题】:Sandbox mounting confusion沙盒安装混乱
【发布时间】:2017-02-05 04:34:37
【问题描述】:

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

一个特定的测试尝试从“/foo/bar”挂载沙盒/。这包含 2 个子目录,data 和 bin。

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

如果我跑步:

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

无法打开 data/1/canary 进行写入。

但是,挂载 / 作为可写作品

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

将数据写入 data/1/canary。

但是,我只希望 /data 是可写的,并假设 / 的其余部分是 ro

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

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

无法打开 data/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”的输出)。注意我要挂载的原始 /data 分区,实际上包含文件。

问。我不明白这里的安装吗?还是测试错了? 我能看到的唯一解决方法是将文件从原始 ro /data 复制到新写入的 /data

【问题讨论】:

    标签: linux sandbox mount mount-point


    【解决方案1】:

    data/1/canary 是相对路径,当前目录不是根目录,所以你正在尝试写入其他地方

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 2015-02-11
      • 2019-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多