Как запустить процесс в терминале с разрешением только на чтение для данного каталога

#linux #macos #shell #permissions #terminal

#linux #macos #оболочка #разрешения #терминал

Вопрос:

Я пытаюсь запустить процесс в своем терминале, но я не настолько доверяю приложению.

Есть ли способ запустить это приложение только с разрешением на чтение из выбранного каталога?

Я использую macOS.

Комментарии:

1. вы могли бы запустить его в chroot и как непривилегированный пользователь. это должно быть довольно экономично.

Ответ №1:

Как сказал knittl, вы можете использовать chroot для создания jail .

Для более сложных вещей у MAC есть MAC (имеется в виду OS X с обязательным контролем доступа), что позволяет указывать, какие процессы могут выполнять, а какие нет. Это реализовано с помощью sandbox механизма, который является чрезвычайно мощным и детализированным.

вам нужно настроить изолированную среду, поэтому:

  • песочница man
  • man sandbox-exec

но это, к сожалению, не очень полезно;(

В принципе, вам нужно настроить профиль для изолированной среды. Примеры профилей находятся в /usr /share / sandbox /*.

Лучшее, что вы можете сделать, это поискать в Google «os x sandbox».

Как я уже говорил выше — здесь нет хороших документов, вероятно, потому, что в настоящее время это не на финальной стадии. 🙁 Вы можете поэкспериментировать с этим (особенно с режимом отладки). В любом случае, эти ссылки должны немного помочь:

Ваш случай достаточно прост (ИМХО), поэтому будет достаточно включить exec-process для вашей программы, разрешить чтение и запретить запись в регулярное выражение «/ *» (везде). Возможно, запретить сеть.

Я не эксперт по sanbox, поэтому ВЫ должны поэкспериментировать — но попробуйте начать с чего-то вроде:

 (version 1)
(debug deny)
(allow default)
(allow process*)
(deny network*)

(allow file-read-data file-read-metadata (regex "^/.*"))
(deny file-write* (regex "^/.*"))    
(import "bsd.sb")
  

итак, разрешите выполнение программ, запретите подключение к сети, разрешите чтение и запретите запись… Сначала ПРОТЕСТИРУЙТЕ!

Комментарии:

1. звучит здорово… Можете ли вы предоставить мне ссылку на руководство о том, потому что я искал, и я не нашел хорошего…