Песочница для Mac и forkpty () - PullRequest
       13

Песочница для Mac и forkpty ()

8 голосов
/ 20 февраля 2012

Я ищу приложение для песочницы, чтобы оно соответствовало требованию 1 марта в Mac App Store.Мое приложение включает в себя встроенный эмулятор терминала, который использует вызов forkpty() для запуска процессов в псевдотерминальной среде.К сожалению, этот вызов не выполняется в «песочнице» с ошибкой «Операция не разрешена», хотя вызов fork() работает просто отлично.Предположительно, для вызова forkpty() требуется доступ на чтение / запись к каталогу / dev / для создания псевдотерминала (согласно man-странице).Я попытался добавить временное разрешение для песочницы (com.apple.security.teilitary-exception.files.absolute-path.read-write) с доступом для чтения / записи к /, и теперь я действительно могу читать и записывать файлы в любом местефайловая система, но вызов forkpty() по-прежнему не удается с той же ошибкой.Кто-нибудь знает, как я могу заставить forkpty() работать в «песочнице»?

Мое приложение представляет собой программный текстовый редактор со встроенным эмулятором терминала и файловым браузером, поэтому ему по сути требуется доступ кофайловая система.Помимо проблемы forkpty(), это временное право, кажется, делает то, что мне нужно.Но примет ли Apple приложение с таким свободно определенным правом на временное исключение?

Заранее спасибо, ребята.Я действительно надеюсь, что смогу запустить эту песочницу и продолжить распространение своего приложения через App Store.

1 Ответ

2 голосов
/ 04 марта 2013

Невозможно реализовать полезный эмулятор терминала в изолированном приложении - даже после добавления прав для устройств PTY оболочка оказывается в той же песочнице, что и приложение, не позволяя ей делать очень много.

...