macos多级数据访问限制需四层协同:①系统级完全磁盘访问权限控应用读写权;②卷级挂载选项(ro/noexec)固行为边界;③目录级acl/chmod实现账户隔离;④加密映像使数据物理不可见。

macOS 的多级数据访问限制不是靠单一开关实现的,而是通过系统层、卷层、目录层和加密层四类策略协同生效。每层解决不同问题:系统层管“谁可以用”,卷层管“怎么挂载”,目录层管“谁能进哪”,加密层管“看不见就等于没存在”。选错层级或只用一层,容易留下明显缺口。
系统级:控制应用对敏感位置的整体读写权
从 macOS Mojave 开始,「完全磁盘访问权限」是第一道闸门。它不针对某个磁盘,而是以应用为单位授权——比如 Terminal、备份工具或 NTFS 驱动必须显式获得许可,才能读写外接卷、iCloud Drive、桌面等位置。
- 打开「系统设置 → 隐私与安全性 → 完全磁盘访问权限」
- 点击「+」添加需要访问的应用(注意:必须是实际运行的进程名,如 Terminal.app)
- 勾选后彻底退出该应用再重新启动;Apple 芯片 Mac 还需终端执行 sudo killall -u $(whoami) [应用名] 刷新策略
- 未获授权的应用即使有 root 权限,也无法绕过此限制访问用户敏感路径
卷级:挂载时固化访问行为
对 NTFS、exFAT 或网络共享卷这类非原生格式,挂载参数能直接决定其行为边界。只读、禁执行、忽略特权位,这些在挂载瞬间就生效,比依赖后续 chmod 更可靠。
- 先卸载:diskutil unmount /Volumes/MyDrive
- 重挂载并加限制:sudo mount -u -o ro,noexec,nosuid /dev/disk2s1 /Volumes/MyDrive
- ro 表示只读,noexec 阻止运行任何程序,nosuid 忽略 setuid 位,防止提权利用
- 如需长期生效,可将配置写入 /etc/fstab(需先创建该文件并设权限为 644)
目录级:用 ACL 和权限细化账户隔离
当卷是 APFS 或 Mac OS 扩展格式且已本地挂载(如 /Volumes/WorkBackup),可通过文件系统权限实现用户级隔离。重点不是改所有者,而是切断「everyone」通路。
- 访达中右键卷图标 →「显示简介」→ 展开「共享与权限」
- 点锁图标解锁,把「everyone」设为「无访问权」
- 仅保留你自己的账户为「读取与写入」,再点齿轮 →「应用到封闭的项目」
- 终端加固命令:sudo chmod -R 700 /Volumes/WorkBackup(仅所有者可读写执行)
加密层:让数据物理不可见
最彻底的限制不是“不让看”,而是“看不到”。用加密磁盘映像封装敏感内容,访问控制就从操作系统权限层转移到密码验证层——没有密码,连挂载都做不到。
- 打开「磁盘工具」→「文件 → 新建映像 → 映像来自文件夹」
- 选择目标文件夹,格式选「APFS(加密)」或「Mac OS 扩展(Journaled,加密)」
- 设置强密码,保存为 .dmg 文件
- 双击挂载需输入密码;卸载后内容完全不可见,且不依赖当前登录账户
不复杂但容易忽略











