我们希望防止用户通过以下方式访问从非沙盒化应用中创建的目录:
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/
(或您未登录的任何其他用户帐户)上的桌面也对所有人没有访问权限,当您尝试对其进行更改时,会出现错误:
由于您没有必要的权限,因此无法完成操作。
我看到的另一个区别是该目录禁用了“锁定”复选框,但为我们的应用程序创建的目录启用了“锁定”复选框。
这正是我们应用程序创建的目录所需要的。我们如何确保用户无权更改此目录的权限?
答案 0 :(得分:0)
某些文件夹之所以不能访问,是因为它们由另一个用户拥有,并且已登录的用户没有权限。但是您的应用程序都不会在用户帐户下运行。管理员用户(默认的macOS帐户是一个)可以始终更改文件夹的所有权和权限,因此您不会从 ever 中访问 prevent 文件夹。