为macos磁盘卷添加访问限制需分层实施:①系统级完全磁盘访问权限(应用授权);②卷级挂载选项(如ro/noexec);③目录级acl/chmod(账户隔离);④加密封装(加密映像)。

为 macOS 磁盘卷添加访问限制策略,核心是分层控制:系统级权限(完全磁盘访问)、卷级挂载选项、目录级 ACL/ chmod,以及加密封装。不同目标对应不同层级,不能只靠一种方式。
给应用授予或限制对整个卷的访问权
macOS 自 Mojave 起通过「完全磁盘访问权限」统一管控哪些应用能读写用户敏感位置(包括外接卷、iCloud Drive、桌面、文稿等)。这不是针对某个卷单独设置,而是以应用为单位授权:
- 打开「系统设置 → 隐私与安全性 → 完全磁盘访问权限」
- 点击「+」,添加需要访问卷的应用(如 Terminal、NTFS 工具、备份软件)
- 勾选后必须彻底退出并重启该应用,权限才生效
- Apple 芯片 Mac 还需运行 sudo killall -u $(whoami) [应用名] 刷新策略(例如 sudo killall -u $(whoami) terminal)
限制特定用户账户对某卷的访问
若该卷是 APFS 或 Mac OS 扩展格式,且已挂载为本地卷(如 /Volumes/MyBackup),可通过文件系统权限实现账户隔离:
- 在访达中右键点击卷图标 →「显示简介」→ 展开「共享与权限」
- 点锁图标输入密码解锁,将「everyone」权限设为「无访问权」
- 仅保留你自己的账户为「读取与写入」,再点齿轮图标 →「应用到封闭的项目」
- 终端中可进一步加固:sudo chmod -R 700 /Volumes/MyBackup(仅所有者可读写执行)
挂载时强制只读或禁用执行权限
对 NTFS、exFAT 或网络卷等非原生格式,可在挂载阶段加入策略,避免依赖运行时权限:
- 卸载当前卷:diskutil unmount /Volumes/MyDrive
- 重新挂载并限制行为:sudo mount -u -o ro,noexec,nosuid /dev/disk2s1 /Volumes/MyDrive
- 其中 ro 表示只读,noexec 禁止运行程序,nosuid 忽略 setuid 位,提升安全性
- 如需持久化,可写入 /etc/fstab(需先创建该文件并设权限为 644)
用加密磁盘映像替代物理卷访问
最彻底的访问限制不是“限制谁看”,而是“不让卷直接可见”。把敏感数据封装进加密映像,等于把访问控制从操作系统层移到密码层:
- 打开「磁盘工具」→「文件 → 新建映像 → 映像来自文件夹」
- 选择目标文件夹,格式选「APFS(加密)」或「Mac OS 扩展(Journaled,加密)」
- 设置强密码,保存为 .dmg 文件;之后双击挂载需输入密码,卸载后内容完全不可见
- 支持 AES-128 加密,且不依赖用户账户——即使他人登录同一台 Mac,没密码也无法挂载











