MacOS Mojave 已将 SIP 的影响扩展到用户的主目录中。默认情况下,拒绝访问用户主目录中的许多目录。下面是这些目录的一些示例。
~/Library/Messages
~/Library/Mail
~/Library/Safari
[… etc.]
为了从终端访问这些目录,必须在系统首选项 > 安全和隐私 > 隐私 > 全磁盘访问中定义终端应用程序。除了我的系统上的以下目录之外,配置有效。容器中的其他数据可能存在相同的行为 - 不确定。
~/Library/Containers/com.apple.mail/Data/DataVaults
这种有趣的行为很容易重现。该目录甚至不可见。
cd ~/Library/Containers/com.apple.mail/Data
ls
ls: DataVaults: Operation not permitted
我用来rsync
将我的主目录镜像到外部硬盘驱动器;但是,我不能再这样做,因为rsync
抱怨“遇到 IO 错误 - 跳过文件删除”,这破坏了镜像效果。我没有找到有关此问题的任何文档。苹果支持不知道。为什么这个目录很特殊,我们如何在不禁用 SIP 的情况下访问它?
SIP 禁用的进一步调查结果
根据系统信息,Mojave 升级于 2018 年 9 月 24 日进行。该目录也在同一天创建。我的用户拥有该目录,而 Staff 组是组所有者。它的权限是0700。它具有扩展属性,如 符号所示@。没有 ACL。没有旗帜。
xattr -l ~/Library/Containers/com.apple.mail/Data/DataVaults
com.apple.quarantine: 0082;00000000;Mail;
com.apple.rootless: Mail
ls -lO DataVaults
(no result; exit 0)
禁用 SIP、删除目录并重新启用 SIP 后,一旦打开“邮件”,该目录就会以相同的权限重新出现。邮件(版本 12.0 (3445.100.39))没有插件。
2018 年 10 月 16 日全新安装的结果
格式化重装后该目录不存在。我仍然不知道它是如何开始的。
2019年3月29日升级结果
该目录在升级到 Mojave 10.14.4 (18E226) 和/或邮件版本 12.4 (3445.104.8) 的同时重新出现。
答案1
DataVaults 目录与权利。除非权利所有者授予访问权限,否则访问将被阻止。 Mail.app 的权利可如下列出并提供 XML plist。
codesign -d --entitlements - /Applications/Mail.app/
此时,获取目录访问权限的唯一方法就是关闭 SIP。关于我的rsync
问题,我选择保持 SIP 打开并使用rsysnc
选项exclude
忽略 DataVaults 目录,顺便说一下,该目录没有内容。
来自博客的评论折衷照明公司,提供更多线索:
/var/folders/t9/[long ID]/C/com.apple.QuickLook.thumbnailcache”
DataVault 是 Apple 在 10.13.4 左右推出的一种新型隐私容器。这些文件/文件夹由“UF_DATAVAULT”文件标志标识。这些是通过 SIP 实现的(技术上不是沙箱,但要点相同)。应用程序需要有权创建或访问特定的数据仓库,甚至 stat() DataVault 文件夹。这些设备值得进行更深入的研究。苹果不会(而且显然也没有计划)向第三方发放这些权利。考虑一下这意味着什么——苹果正在创建一个平台,只有在苹果应用程序中创建的数据才能获得最高级别的安全性。
另请注意,如果不关闭 SIP,您(用户)将无法查看这些 DataVault 中的内容。很难说苹果在这些内容中保留了什么,但其中一些内容有点令人担忧。以下是一些已知的数据保险库:
~/Library/VoiceTrigger/SAT
~/Library/Containers/com.apple.mail/Data/DataVaults
/private/var/folders/0z/fs4vdwmx6g31n69qt5v5ff580000gn/0/com.apple.nsurlsessiond
第一个显然有“Siri 音频记录”——您在 Mac 上对 Siri 说过的所有内容。
我在 上没有找到标志~/Library/Containers/com.apple.mail/Data/DataVaults
,并且 Mojave 的全新安装导致该目录此后不再出现。
A摘要概述还发布了访问控制。