Проблема песочницы приложения Mac OS X - PullRequest
0 голосов
/ 15 февраля 2012

Я пишу инструмент командной строки.Там я бы хотел создать каталог в каталоге / Users / user_name / Library.Когда я запускаю эту программу из терминала в качестве пользователя root, все в порядке, но проблема в том, что я хочу использовать этот инструмент в качестве бэкэнда для чашек (эта программа также вызывается как root, когда я что-то печатаю).Программа вызывается, но в файле system.log я обнаружил ошибку: sandboxd: deny file-write- *.Я новый программист Mac OS X и не знаю, как это исправить.Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 16 февраля 2012

Поскольку Snow Leopard cups работает в песочнице, что предотвращает его неправильное поведение - например, доступ к дому пользователя. В зависимости от вашей версии OS X вы можете выбрать другой каталог, а не домашний каталог пользователя. На Льве это даже более ограничительно, чем это. Правила песочницы встроены в бинарный файл cups (в отличие от сценариев sb), поэтому вам повезет, если вы замените чашки на версию, которая специально разрешает доступ к тому, что вам нужно в песочнице (если вы действительно хотите туда попасть, правила определены cupsdCreateProfile в cups/scheduler/process.c). AFAICT, вы ничего не можете сделать в своем приложении, потому что песочница предназначена для того, чтобы предотвратить именно то, что вы пытаетесь сделать.

Другая альтернатива - не запускать cups от имени root, поскольку песочница используется только тогда, когда cups запускается от имени root.

...