Консоль не отображает нарушения изолированной программной среды приложения Mac OS в быстром запуске Apple

Я прохожу этот урок Apple по включению песочницы. Я успешно проработал разделы, создав проект Xcode, включив изолированную программную среду приложения, создав сертификат, указав удостоверение подписи кода и подтвердив, что приложение помещено в изолированную программную среду.

Когда я тогда пытаюсь диагностировать преднамеренное нарушение, в консоли ничего не появляется, как описано в руководстве. Установите флажок "Включить изолированную программную среду приложения", но под ним нет ничего (например, "Разрешить исходящие подключения"). Файл разрешений предполагает, что песочница включена, приложение не отображает веб-сайт Apple, а Activity Monitor сообщает, что приложение находится в "песочнице".

я использую Console.app, глядя на Все сообщения (как описано в разделе " Диагностика нарушения изолированной программной среды приложения " в учебнике). Я ожидаю увидеть сообщения от sandboxd, но не вижу ничего, связанного с песочницей. Само приложение ведет себя точно так, как описано в руководстве, показывая веб-сайт Apple без песочницы, а затем не показывая его в песочнице.

Я на Mac OS 10.8.2, Xcode 4.5.1. Что мне не хватает?

1 ответ

Я испытал это также на 10.9.2 с Xcode 5.1, но я почти уверен, что версия ОС и Xcode в наши дни не имеет значения (может иметь значение, если вы на старом 10.5). В моем случае актуальный /var/log/system.log файл все равно покажет sandboxd сообщения, но они не будут отображаться в запросе " Все сообщения ", и поэтому я не смог получить доступ к кнопке " Полный отчет ", о которой говорилось в руководстве.

На моей конкретной машине я обнаружил, что если я вошел в систему как мой пользователь-администратор (у меня в системе два пользователя, обычный и admin / root), я мог видеть сообщения журнала в "Все сообщения", что позволяет мне быть возможность просматривать сообщения sandboxd и узнавать, что они отправляются с UID=0. Я не уверен, как это контролируется (почему это влияет только на нас, но все остальные в порядке?), Но, очевидно, Консоль не будет показывать в системном журнале сообщения, которые были отправлены в / root, если вы не root сам.

Это приводит к хакерскому решению: запустите консоль от имени пользователя root.

Для этого в терминале наберите:

sudo -b /Applications/Utilities/Console.app/Contents/MacOS/Console 

И теперь вы сможете использовать эту консоль для просмотра всех сообщений.

-

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

Расследование нашло эту ветку, где кто-то испытывал что-то похожее, и казалось, что причина была в /etc/asl.conf или же /etc/syslog.conf

Я также нашел документацию Apple по ведению журнала и фильтрации ошибок и предупреждений при ведении журнала: сообщения фильтруются

Возможно, вам понадобится разобраться с файлами.conf, если вы не видите сообщений sandboxd в своем /var/log/system.log, но если вы видите их там, ваша проблема, вероятно, не связана с ними. В моем случае они оказались в тупике, и я потратил несколько часов, чтобы пройти по этому маршруту, прежде чем наткнулся на решение "запуск с правами root".

Другие вопросы по тегам