阻止用户更改Cocoa应用程序创建的目录的权限

问题描述 投票:0回答:1

我们希望阻止用户通过以下方式访问我们从非沙盒应用创建的目录:

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/(或您未登录的任何其他用户帐户)的桌面也没有适合所有人的访问权限,当您尝试更改它时,您将收到错误消息:

由于您没有必要的权限,因此无法完成操作。

我看到的另一个区别是对该目录禁用了Locked复选框,但是为我们的app创建的目录启用了。

这正是我们的应用程序创建的目录所需要的。我们如何确保用户无权更改此目录的权限?

cocoa permissions directory nsfilemanager
1个回答
0
投票

某些文件夹无法访问的原因是因为它们由不同的用户拥有,并且登录的用户没有权限。但是你的应用程序也不会在用户帐户下运行。管理员用户(默认的macOS帐户是一个)可以随时更改文件夹所有权和权限,因此您不会阻止访问该文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.