我应该如何处理 com.apple.quarantine?

我应该如何处理 com.apple.quarantine?

.jar从互联网上下载了一些文件,想在 Mac OS X 下使用它们。但操作系统似乎已用扩展属性 com.apple.quarantine 标记它们(直到我注意到@中的“ ”ls -l并弄清楚如何使用 时才发现这一点ls -l@)——显然是因为它们是从互联网上下载的。处理这个问题的正确方法是什么?

答案1

添加此属性是为了在首次运行下载的程序时要求用户确认,以帮助阻止恶意软件。确认后,该属性应自动删除,然后程序将正常运行。

答案2

你不需要来处理它。打开它,OS X 会请求你的许可。或者像 richard 建议的那样,使用类似下面的命令删除它:

xattr -d com.apple.quarantine my_jar.jar

要自动对任何下载的文件执行此操作,您可以将文件夹操作附加到下载文件夹,如 macosxhints.com 中所述10.5:删除“已下载文件”警告标志

以下内容很久以前就已在 macosxhints.com 上发布,适用于 Safari:10.5:禁用“从互联网下载”文件警告,声称可以VerifiedDownloadPlugin.plugin从中删除/Library/Internet Plug-Ins。我没有测试过。

另外:有时需要在 Mac 上多次启动一个程序。可以使用cd /Applications/some-application/后跟 来完成open -n "Application Name.app"。这确实需要.app后缀;运行open -n "Application Name"可能会让一个 GateKeeper 停止访问:

无法打开“应用程序名称”,因为它来自未知的开发商。

您的安全偏好设置仅允许安装来自 Mac App Store 和已识别开发商的应用程序。

上面,即使删除扩展属性也com.apple.quarantine无法解决这个问题,但使用.app后缀就可以了。

(我并不是建议任何人真正放弃安全措施。)

答案3

 xattr -d com.apple.quarantine /path/to/file

答案4

我找到了以下命令

find Application.app | while read l; do echo $l; xattr -d com.apple.quarantine "$l"; done

在尝试删除该属性时非常有用。请注意周围的双引号$l- 如果您的应用程序文件夹包含名称中带有空格的文件,则需要它们。

相关内容