macOS Mojave 目錄權限
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) 時重新出現。
DataVaults 目錄與權利有關。除非權利的所有者授予訪問權限,否則訪問將被阻止。Mail.app 的權利可以列出如下,並提供一個 XML plist。
codesign -d --entitlements - /Applications/Mail.app/
此時,獲取目錄訪問權的唯一剩餘方法是關閉 SIP。關於我的
rsync
問題,我選擇保持 SIP 開啟並使用rsysnc
選項 ,exclude
來忽略 DataVaults 目錄,順便說一下,該目錄沒有內容。從Eclectic Light Company的部落格評論中,提供了更多線索:
/var/folders/t9/[long ID]/C/com.apple.QuickLook.thumbnailcache”
是 DataVault,它是 Apple 在 10.13.4 左右推出的一種新型隱私容器。這些文件/文件夾由“UF_DATAVAULT”文件標誌標識。這些是通過 SIP 實現的(技術上不是沙盒,而是相同的要點)。應用程序需要有權創建或訪問特定的數據保險庫,甚至需要 stat() 一個 DataVault 文件夾。這些設備值得深入研究。Apple 沒有(顯然也沒有計劃)向第三方發布這些權利。考慮一下它的含義——Apple 正在創建一個平台,只有在 Apple 應用程序中創建的數據才能獲得最高級別的安全性。
還要考慮您(使用者)在不關閉 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 的全新安裝導致該目錄從此不再出現。還發布了訪問控制的摘要概述。