.dmg文件的安全性源于加密而非文件权限,chmod仅限制文件本身读写删,不防挂载后访问;真正防护靠aes-256加密、密码不存钥匙串、挂载后及时推出。

macOS 磁盘映像(.dmg)本身是独立的加密容器,挂载后表现为一个虚拟卷,其内部文件的权限由该卷的文件系统(如 APFS 或 HFS+)管理,而非宿主系统直接控制。因此,“对加密 DMG 设置权限”这个说法容易误解——你不能也不需要给 .dmg 文件本身设置 ACL 或 chmod 权限来保护内容,它的安全性来自加密层:未挂载时,整个文件不可读、不可解析;挂载后,访问受密码控制,而非文件权限。
为什么给 .dmg 文件设 chmod 700 没用?
即使你用终端执行 chmod 600 filename.dmg,也只是限制了其他用户能否复制、移动或删除这个 .dmg 文件本身。只要对方能读取该文件(比如有读权限),就能双击挂载——只要知道密码,就能完整访问里面所有内容。加密密钥不依赖文件权限,而由磁盘映像头中的加密元数据和密码派生密钥保护。
- chmod 对已加密的 .dmg 不影响解密能力
- ACL 或“显示简介”里的“everyone 无访问权”只能防误删/误复制,不能防挂载后访问
- 真正起隔离作用的是:挂载前不可见、不可解密;挂载时强制密码验证
挂载后卷内文件的权限可管,但通常不必干预
当加密 DMG 成功挂载(例如显示为 “SecureDrive” 卷),它就是一个普通卷宗,内部新建或拖入的文件默认继承该卷的 umask 和所有者设置。如果你以当前用户身份操作:
- 所有文件自动归你所有,组和其他人默认无写权限(尤其 APFS 加密卷)
- 不需要手动 chmod -R 700,系统已按安全策略隔离
- 若需进一步限制(比如防止同账户下其他进程读取),应靠应用级沙盒或钥匙串权限,而非文件权限
真正有效的防护组合
要确保加密 DMG 发挥最大效用,重点不在权限设置,而在创建与使用习惯:
-
创建时选 AES-256 加密(磁盘工具中明确选“256位AES”,或终端用
-encryption AES-256) - 密码不存钥匙串(取消勾选“记住此密码在钥匙串中”,避免他人登录后自动挂载)
- 挂载后及时推出(右键卷图标 → “推出”,未推出的卷仍可被本账户任意程序访问)
-
验证是否真加密:终端运行
hdiutil imageinfo /path/to/file.dmg | grep encryption,输出必须是encryption: AES-256











