如何使Security Scoped Bookmark失效?需用户重新授权并生成新书签
使Security Scoped Bookmark失效的方法
以下几种操作可以让已存储的Security Scoped Bookmark失效,迫使用户重新授予权限并生成新书签:
文件/文件夹相关操作
- 将目标文件/文件夹移动到应用沙箱无权访问的位置,比如从用户文档移到系统受保护的
/System目录,或者跨用户账户迁移,原书签会因指向的资源不可访问而失效。 - 修改文件的ACL权限,直接移除当前应用对该资源的访问权限,书签验证会失败。
- 删除原文件/文件夹后再创建同名的新资源,原书签关联的是已被删除的实体,自然无法生效。
- 将目标文件/文件夹移动到应用沙箱无权访问的位置,比如从用户文档移到系统受保护的
系统权限层面操作
- 在macOS的「系统设置-隐私与安全性-文件与文件夹」里,撤销应用对目标文件所在目录的访问授权,所有关联的Security Scoped Bookmark都会失效。
- 用终端命令重置应用的所有权限:执行
tccutil reset All <你的应用Bundle ID>,这会清除应用的所有权限记录,包括已存储的书签有效性。
应用内部操作
- 主动删除应用本地存储的书签数据,下次访问资源时必须重新请求用户授权生成新书签。
- 若应用之前通过
startAccessingSecurityScopedResource激活了书签访问,主动调用stopAccessingSecurityScopedResource后,若系统后续回收了该权限,书签也会失效(不过这种情况更多是临时权限回收,核心还是系统权限变更)。
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

