Ребята, на что действительно ссылается ОП, описано здесь:
http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
Это все о
- Контейнеры
- Права
- PowerBox (daemon)
После того, как приложение «помещено в« песочницу »», его представление о «домашнем» каталоге выглядит как Контейнер (который создается первымначните с $ HOME / Library / Containers / appBundleID / Data).Там он находит свою «личную копию» файлов конфигурации, кэша и данных.И, конечно, он не может читать что-либо еще, если только ...
... вы не дадите приложению соответствующие Права в виде файла свойств с кодовым обозначением (на самом деле кодовое обозначение является неотъемлемой частьюконцепция песочницы).
Одним из этих прав является « com.apple.security.files.user-selected.read-write », который позволяет приложению читать изапишите именно те файлы, которые пользователь явно выбрал через стандартный диалог сохранения и открытия соответственно .
Затем демон PowerBox (pboxd) отображает соответствующий файловый диалог в своем собственном пространстве процесса и добавляет выбранный файлпути к списку разрешенных файлов.Это прозрачно для приложения, то есть никаких изменений кода не требуется - при условии, что приложение использует стандартные диалоговые окна NSOpenPanel или NSSavePanel.
"Для упрощения изолированной программной среды приложения Mac OS X v10.7 предоставляет доверенную системудемон, которому поручено представлять открытые и сохраненные панели от имени приложений, работающих в изолированной программной среде приложения. Этот демон называется Powerbox (его имя процесса - pboxd). Эти представленные Powerbox удаленные панели выглядят совершенно неотличимыми от панелей в процессе с точки зрениявзаимодействие с пользователем.
Каждый раз, когда приложение, запущенное в изолированной программной среде, вызывает диалог NSOpenPanel или NSSavePanel, вместо того, чтобы показывать панели напрямую, AppKit автоматически запрашивает Powerbox для представления диалогового окна.необходимы изменения с точки зрения использования этих панелей; этот процесс полностью прозрачен ».[конец цитаты из Apple docs]
Учитывая все это, то, что потребуется OP (для решения резервного копирования), - это «непосредственное чтение / запись» :
"Еслиприложение выбирает получение домашнего каталога пользователя таким образом, чтобы обойти API-интерфейсы Cocoa (например, путем непосредственного вызова getpwent), изолированная программная среда приложения запрещает ему выполнять запись в пути, которые оно получает (если только приложение не имеет права на запись без опосредованного отношения, которое являетсяНастоятельно не рекомендуется по очевидным причинам безопасности. "[конец цитаты из Apple docs]
Однако самые близкие права, которые дадут" свободный доступ к файловой системе ", которые я мог бы штрафовать:1040 *
Абсолютный файл только для чтения - Возможность чтения файлов или каталогов по указанным абсолютным путям. ( com.apple.security.tevent-exception.files.absolute-path.read-only )
Абсолютное чтение / запись файла - Возможность чтения или записи файлов или каталоговпо указанным абсолютным путям.( com. И я не уверен, может ли приложение просто предоставить корневой каталог "/"
В любом случае, внимательно обратите внимание на то, что эти права помечены как "временные": Apple может удалить или осудить эти права впосчитал нужным !