如何移除 macOS 文件的 quarantine 属性
本文介绍了 macOS 系统中的 quarantine 属性,这是一个用于防止恶意软件的安全机制。文章详细说明了如何查看和移除这个属性,包括使用命令行(xattr)和图形界面(Finder)两种方法。同时提供了安全建议和预防措施,帮助用户在保护系统安全的同时,正常使用可信文件。

在 macOS 系统中,当我们从互联网下载文件或者通过 AirDrop 接收文件时,系统会自动为这些文件添加 com.apple.quarantine
属性。这是一个安全机制,用于防止潜在的恶意软件。但有时候,这个机制可能会妨碍我们正常使用一些可信的文件。
什么是 quarantine 属性?
quarantine(隔离)属性是 macOS 的一个安全特性,用于标记从不受信任的来源获取的文件。当你遇到以下情况时,可能就是因为文件带有 quarantine 属性:
- 双击运行应用程序时,提示"无法打开,因为它来自身份不明的开发者"
- 运行脚本时提示权限不足或安全限制
- 首次打开文件时出现警告提示
- 某些程序无法正常执行
常见场景
以下情况下的文件通常会被自动添加 quarantine 属性:
- 从浏览器下载的文件
- 通过 AirDrop 接收的文件
- 从邮件附件保存的文件
- 从即时通讯软件接收的文件
如何查看文件是否有 quarantine 属性
可以使用终端命令来查看文件的 quarantine 属性:
xattr -l /path/to/file
例如,要查看下载的 Chrome.app 是否有 quarantine 属性:
xattr -l /Applications/Google\ Chrome.app
如果文件有 quarantine 属性,会显示类似这样的输出:
com.apple.quarantine: 0081;65xxxxx;Chrome;...
移除 quarantine 属性的方法
方法一:使用 xattr 命令(推荐)
- 删除指定的 quarantine 属性:
xattr -d com.apple.quarantine /path/to/file
例如,移除 Chrome.app 的 quarantine 属性:
xattr -d com.apple.quarantine /Applications/Google\ Chrome.app
如果要批量处理某个文件夹中的所有文件:
xattr -rd com.apple.quarantine /path/to/folder
- 删除所有扩展属性:
xattr -c /path/to/file
对于文件夹及其内部所有文件,使用 -r
参数进行递归操作:
xattr -rc /path/to/folder
注意:使用 -c
参数会删除文件的所有扩展属性,不仅仅是 quarantine。在使用前请确保这些属性不是必需的。
方法二:通过 Finder(适合不熟悉命令行的用户)
这是一种无需使用命令行的简单方法:
- 在 Finder 中找到文件
- 按住键盘上的 Option 键(⌥)
- 右键点击文件,会看到"打开"选项(而不是直接双击打开)
- 在弹出的警告框中选择"打开"
如果遇到 "Apple could not verify xxx is free of malware..." 的提示,可以:
- 打开"系统设置"(System Settings)
- 选择"隐私与安全性"(Privacy & Security)
- 在"安全性"部分找到被阻止的应用提示
- 点击"仍要打开"(Open Anyway)
这种方法的优点是:
- 无需使用命令行
- 操作简单直观
- 不会完全移除属性,而是在系统中标记为可信
注意事项
-
安全建议
- 在移除 quarantine 属性之前,请确保文件来源可信
- 不建议批量移除整个文件夹的 quarantine 属性
- 优先考虑使用 App Store 下载应用程序
-
权限问题
- 某些系统文件可能需要管理员权限才能移除属性
- 使用 sudo 命令获取管理员权限:
sudo xattr -d com.apple.quarantine /path/to/file
预防措施
如果想避免文件被添加 quarantine 属性,可以:
-
使用可信的文件传输方式
- 使用 U 盘等物理存储设备
- 通过本地网络传输
- 使用版本控制系统(如 Git)
-
下载建议
- 优先从官方网站下载
- 使用 App Store 安装应用
- 验证下载文件的数字签名
记住,quarantine 属性是 macOS 的一个重要安全特性,它的存在是为了保护你的系统安全。在移除该属性时,请务必确保你了解相关的安全风险。如果不确定文件的安全性,建议保留该属性。