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