Я использовал приложение Norton iAntivirus из Mac App Store для сканирования всего жесткого диска. Как и ожидалось, он подарил мне диалог открытия в корне моего жесткого диска. Я нажал «Открыть» и позволил сканировать. Это заставило меня задуматься ... если пользователь открывает каталог в диалоговом окне Открыть, дает ли это изолированное приложение доступ ко всему содержимому папки, даже если конкретный пользователь может не иметь доступа к некоторым из них?
1
Ответы:
Разрешение «песочница» только на чтение или чтение и запись является дополнительным требованием, которое необходимо для доступа к файловой системе при работе в песочнице. Для любого элемента, находящегося за пределами контейнера приложения, приложению должно быть предоставлено право на чтение или чтение-запись - либо статически с помощью прав, скомпилированных в приложение, либо динамически пользователем, выбирающим файл или папку, - и пользователь должен иметь соответствующую файловую систему. право доступа к элементу файловой системы.
Например, если пользователь предоставляет вашему приложению доступ для чтения и записи к общедоступной папке других пользователей с помощью стандартного диалогового окна файла, это не означает, что пользователь может только читать содержимое общедоступной папки и выполнять запись в содержащуюся папку Drop Box.
При условии наличия соответствующего права доступа к файловой системе пользователь, предоставляющий доступ к песочнице через стандартный файловый диалог к папке, предоставляет доступ ко всей файловой иерархии с корнем в этой папке.
источник
«Песочнице» предоставляется только доступ к тому, что пользователь может получить. Таким образом, если пользователь открывает папку в диалоговом окне «Открыть», к которой у него нет прав доступа, приложение также не сможет открыть ее. Я проверил это на OS X 10.8.3. Я дал своему пользователю Нет прав доступа к папке на рабочем столе, открыл рабочий стол в диалоговом окне Открыть, а затем попытался записать файл в папку с ограниченным доступом. Действие не выполнено с ошибкой. У вас нет прав на сохранение файла «файл» в папке «с ограничениями».
Моя главная проблема заключалась в том, что песочница управляется демоном песочницы
sandboxd
, который принадлежит пользователю root. Поэтому я боялся, чтоsandboxd
это даст приложениям неограниченный доступ ко всему, что открыто в диалоге открытия (так как пользователь root может получить доступ ко всему), но это не так.источник