Я только что скачал приложение iAntivirus из Mac App Store. Я хотел, чтобы он просканировал весь мой жесткий диск на наличие вирусов, поэтому он представил мне диалоговое окно «Открыть», указывающее на корень жесткого диска (чтобы компьютер мог получить доступ за пределами своей песочницы). Я нажал ок, и приложение запустилось.
Что мне показалось странным, так это то, что мне никогда не показывали окно входа в систему. Программе был предоставлен доступ к файлам в папке «Система», «Библиотека» и т. д., которые только я мог редактировать, введя имя пользователя и пароль администратора. Это проблема безопасности с песочницей или она так и должна работать?
Приложение может иметь доступ для чтения/записи к местоположению, если оно получает ваше разрешение, используя право как часть песочницы приложения, другими словами, это то, как оно должно работать. Приложение подписано кодом и ему доверяют, оно спрашивает вашего разрешения, теоретически все должно быть хорошо.
Как отмечено в обзоре технологий Mac :
Песочница приложения
Представленная в OS X v10.7 песочница приложений обеспечивает последнюю линию защиты от кражи, повреждения или удаления пользовательских данных, если вредоносный код использует ваше приложение. App Sandbox также сводит к минимуму ущерб от ошибок кодирования. Его стратегия двояка:
App Sandbox позволяет вам описать, как ваше приложение взаимодействует с системой. Затем система предоставляет вашему приложению только тот доступ, который ему необходим для выполнения своей работы, и не более того.
Песочница приложения позволяет пользователю прозрачно предоставлять вашему приложению дополнительный доступ с помощью диалоговых окон «Открыть» и «Сохранить», перетаскивания и других привычных действий пользователя.
В частности, разработчик может реализовать следующее право, как указано здесь в разделе «Включение тестовой среды приложения» . Это именно то, что вы описали в своем вопросе, так что, вероятно, это право, которое разработчик аудио/видеопрограммы использовал для получения доступа только для чтения и записи.
com.apple.security.files.user-selected.read-write
Доступ для чтения/записи к файлам, выбранным пользователем с помощью диалогового окна «Открыть» или «Сохранить».
Обратите внимание, что это не то же самое, что настоящий пользователь-администратор, поскольку программе не будут предоставлены права на выполнение.
Вы не видите это правильно. Песочница не обходит права доступа к файлам. Если у вас нет прав на запись в файл, то наличие права на запись в файл не даст вам права на запись в файл. Точно так же диалоги NSOpen/NSSave не могут получить доступ к чему-либо, к чему они не могут получить доступ при отключенной песочнице.
Джек Хамфрис
грг