Путаница с установкой песочницы

Во-первых, я использую Bubblewrap в качестве программного обеспечения для песочницы, но я чувствую, что это общая проблема монтажа. , чем пузырчатая пленка. Я пытаюсь добавить bwrap в оболочку песочницы называемую 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-re-write-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 для записи.

Продолжая отладку, я добавил монтирования/пути, необходимые для входа в интерактивную оболочку внутри песочницы.

$ /usr/bin/bwrap --bind /foo/bar / --tmpfs /data --ro-bind /lib /lib --ro-bind /lib64 /lib64 --ro-bind /bin /usr/bin - -remount-ро/баш

Выполнение простого ls из / показывает, что все смонтировано, как и ожидалось. Тестирование r/w все в порядке. Однако проблема заключается в том, что каталог /data полностью пуст (кроме вывода моего «touch /data/testwrite»). Обратите внимание, что исходный раздел /data, который я хотел смонтировать, на самом деле содержит файлы.

В. Я не понимаю, что здесь происходит? Или тесты неверны? Моя единственная работа, которую я вижу, - это копирование файлов из исходного ro /data в недавно смонтированный для записи /data


person Andrew Leeming    schedule 27.09.2016    source источник


Ответы (1)


data/1/canary — это относительный путь, а текущий каталог не является корневым каталогом, поэтому вы пытаетесь записать в другое место.

person Timothy Baldwin    schedule 30.04.2020