Мы стремимся запретить пользователям доступ к каталогу, который мы создаем из нашего приложения без песочницы, через:
FileManager.createDirectory(atPath:withIntermediateDirectories:attributes:) //where path is ~/Library/Application Support/our.bundle.identifier/ourdir
Для этого мы не установили никаких разрешений для этого каталога, таким образом гарантируя, что они не смогут открытьсячерез:
fileManager.setAttributes([.posixPermissions: 00000], ofItemAtPath: path) //no permissions
Однако пользователи могут просто щелкнуть по нему правой кнопкой мыши, выбрать «Получить информацию» и изменить его с «Нет доступа для всех» на «Чтение и запись», чтобы получить доступ.
Но это не так.это не относится к другим каталогам, которые я нашел.Например, рабочий стол, расположенный по адресу /Users/Guest/
(или любая другая учетная запись пользователя, в которую вы не вошли), также не имеет доступа для всех, и при попытке изменить его вы получите сообщение об ошибке:
Операция не может быть завершена, поскольку у вас нет необходимых разрешений.
Другое отличие, которое я вижу, это то, что флажок Заблокировано для этого каталога отключен, но включен для каталога, созданного нашим приложением..
Это именно то, что нам нужно для каталога, созданного нашим приложением.Как мы можем гарантировать, что у пользователя нет прав на изменение разрешений для этого каталога?