2013-07-11 2 views
0

Пожалуйста, дайте мне подсказку к самому простому и легкому раствору, чтобы изолировать сценарий Linux оболочки (обычно убунту в случае он имеет что-л специальный)Make изолированных сборка или любая команда оболочки

Что я имею в виду изоляции: 1 Файловая система - самая важная - я хочу, чтобы она не могла получить доступ к любым папкам (читать) за пределами рабочей области, за исключением тех, которые я вручную настрою каким-то образом 2. На самом деле другие типы изоляции не имеют значения

Это нормально для "мягких «изоляция», я имею в виду, что сценарий может просто потерпеть неудачу/прерваться при попытке доступа (чтения) запрещенных путей, но «жесткая» изоляция для получения «не найдена» для таких попыток выглядит как более чистое решение

Мне не нужны изоляторы процесса, сценарий может использовать sudo/fakeroot/etc. внутри него, но это не должно влиять на изоляцию.

Кроме того, я планирую использовать различные обособления внутри одной рабочей области:.

для бывших, у меня есть папки:

a/ 
b/ 
include/ 
target/ 

Я хочу make a давая ему доступ только к «а» (RW) , "включают в себя" (г) и "цель" (Rw + Sudo) make b давая ему доступ только к "Ъ" (RW), "включают в себя" (г) и "цель" (Rw + Sudo)

и цель получит оба результата от A и B, позволяя B переписать что-либо из результатов А - то же самое, если не существует никакой изоляции

Цель изоляции я говорю о том, чтобы предотвратить чтение из А, даже зная, что есть и наоборот

Спасибо!

ответ

1

Два разных пользователя и SSH - это простой способ решить вашу проблему. Одним из ключевых преимуществ является то, что в новой оболочке это приведет к «чистой» среде.

ssh <user_a>@localhost '<path_to_build_script_a>' 
ssh <user_b>@localhost '<path_to_build_script_b>' 

Пользователь a и b должны быть членами группы, которой принадлежат общие каталоги.

Обратите внимание, что это разрешение на запись в каталог, которое определяет, может ли пользователь создавать новые файлы внутри этого каталога.

Edit: 2013-07-29

Для много последовательного изолированных строит, как в вашем случае, одно решение, чтобы сделать, как вы уже предложили; автоматизировать изменения прав на файлы, чтобы каждая сборка имела доступ только к файлам и папкам, которые она должна.

+0

Но мне все еще нужен «ручной» скрипт, который будет выполнять переключение разрешений перед каждым вызовом 'ssh', правильно? –

+0

Я не вижу необходимости в этом. Каталог a должен быть доступен только для чтения/записи пользователем a и наоборот. –

+0

Спасибо, но ваше решение может быть совместимо в случае A и B, но у меня есть около 60 динамически управляемых скриптов, каждый из которых я хочу изолировать, возможно, мне нужно что-то более простое –

Смежные вопросы