怎么为MacOS特定文件夹创建加密映像并设置访问权限

老辰酱_6846

老辰酱_6846

2026-04-09

218人浏览

原创

最可靠方法是用 hdiutil create -type sparsebundle -fs apfs -volname "securefolder" -encryption aes-256 -agentpass 创建加密 apfs 稀疏束,配合 chmod 600 锁定映像文件、设置 com.apple.finderinfo 隐藏锁定标志,并卸载后清理钥匙串密钥。

怎么为macos特定文件夹创建加密映像并设置访问权限

用 hdiutil 创建加密 APFS 映像最可靠

macOS 12+ 推荐用 APFS 格式而非旧的 HFS+,它原生支持文件级加密、快照和更细粒度的权限控制。用 hdiutil 命令行创建比磁盘工具 GUI 更可控,尤其适合脚本化或避免 GUI 意外选错格式。

执行前确认目标文件夹路径无空格或特殊字符(或用引号包裹),且你有该路径的读取权限:

hdiutil create -type SPARSEBUNDLE -fs APFS -volname "SecureFolder" \
  -encryption AES-256 \
  -agentpass \
  ~/Desktop/SecureFolder.sparsebundle
  • -type SPARSEBUNDLE:生成稀疏束(可动态增长,比固定大小映像更实用)
  • -encryption AES-256:必须显式指定,否则默认不加密;none 或省略即明文
  • -agentpass:触发钥匙串弹窗输入密码,避免密码出现在 shell 历史或进程列表中
  • 生成后不会自动挂载,需手动双击或运行 hdiutil attach

挂载后修改 .sparsebundle 的 ACL 权限要谨慎

APFS 映像本身是只读容器,其内部卷的权限由挂载后的卷宗(Volume)决定;但映像文件(如 SecureFolder.sparsebundle)自身的文件系统权限也影响能否被其他用户挂载或篡改。

常见错误是仅改了卷内文件权限,却忘了锁住映像文件本身:

  • 禁止他人读取映像文件:chmod 600 ~/Desktop/SecureFolder.sparsebundle
  • 禁止他人执行挂载操作(即使有读权限也不行):chmod 600 ~/Desktop/SecureFolder.sparsebundle/token(如果存在)
  • 若需限制特定用户访问,用 chmod +a "user:alice:deny:read,write,execute" 添加 ACL 规则
  • 注意:chown 改属主对稀疏束无效——APFS 映像元数据归 root 管理,普通用户无法 chown 成功

挂载时自动应用用户权限的关键是 com.apple.FinderInfo

即使映像内文件设置了 chmod 700,Finder 仍可能因未识别权限上下文而允许其他用户“打开”映像(只是进不去内容)。真正起作用的是映像 bundle 的扩展属性:

xattr -wx com.apple.FinderInfo \
  $(printf "%08x%08x%08x%08x%08x%08x%08x%08x" \
    0 0 0 0 0 0 0 80000000) \
  ~/Desktop/SecureFolder.sparsebundle

其中末尾的 80000000 表示「隐藏并锁定」标志位。这个设置会让 Finder 把它当系统级敏感项处理,配合 chmod 600 后,非属主用户双击会直接提示“您没有权限打开此文档”。

该属性不会影响命令行挂载,所以仍需靠 hdiutil attach -owners on 显式启用挂载时的权限继承。

卸载后彻底清除内存中的解密密钥残留

macOS 在挂载加密映像后,密钥可能短暂缓存在内核密钥环(keychain)或内核内存中。单纯拖出卷宗或 hdiutil detach 不保证密钥立即释放。

  • 卸载后立刻运行:security find-generic-password -s "com.apple.diskimages.<code>xxhash" -w 2>/dev/null | xargs -I{} security delete-generic-password -s {}(需先用 hdiutil info 查到实际 hash)
  • 更稳妥的做法:卸载后重启钥匙串访问(在活动监视器里强制退出 SecurityAgent 进程)
  • 若在共享 Mac 上使用,务必禁用“登录时自动挂载”——该选项会把密码存入登录钥匙串,且默认允许所有钥匙串项目访问

APFS 加密映像的安全边界不在“能不能打开”,而在“谁能在挂载后看到什么”。很多问题其实源于混淆了映像文件权限、挂载时权限策略、以及 Finder 层面的 UI 隐藏逻辑——三者缺一不可。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2472

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

836

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

729

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2236

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4112

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

667

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.2万人学习