MacOS Mojave 已将 SIP 的效果扩展到用户的主目录。默认情况下,拒绝访问用户主目录中的许多目录。以下是这些目录的一些示例。
~/Library/Messages
~/Library/Mail
~/Library/Safari
[… etc.]
为了从终端访问这些目录,必须在 System Preferences > Security & Privacy > Privacy > Full Disk Access 中定义终端应用程序。配置有效,除了我系统上的以下目录。容器中的其他数据可能存在相同的行为 - 不确定。
~/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 日进行。该目录也在同一天创建。我的用户拥有该目录,而员工组是组所有者。它的权限是 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 后,一旦打开 Mail,目录就会以相同的权限重新出现。Mail(版本 12.0 (3445.100.39))没有插件。
2018 年 10 月 16 日全新安装的结果
格式化并重新安装后该目录不存在。我仍然不知道它是如何开始的。
2019 年 3 月 29 日升级的结果
该目录在升级到 Mojave 10.14.4 (18E226) 和/或邮件版本 12.4 (3445.104.8) 时重新出现。