com.apple.quarantine 无处不在,我该如何阻止它?

com.apple.quarantine 无处不在,我该如何阻止它?

不知何故,我记得是最近某个时候,我的系统决定将 com.apple.quarantine 属性添加到某些文件。这非常麻烦,并且阻止我运行用自己的编辑器(BBEdit,我使用多年都没有问题,直到最近几天)编写的脚本。我找到了问题(xattrs),并将 BBEdit 添加到系统偏好设置 > 安全和隐私 > 隐私 > 完全磁盘访问。现在新文件没问题了。

为了追踪其他文件,我运行了该程序/usr/bin/find ~ -xattrname com.apple.quarantine,但文件数量相当多,所以我将其重定向到桌面上的文件。

该文件是1.3 亿大的。

我注意到里面有很多 git 目标文件,但文件数量多得离谱。这是正常的吗?如果不是,我认为这是不正确的,我怎样才能阻止这种事情再次发生?

  • 例如,我应该添加gitFull Disk Access
  • Full Disk Access正确的权限是否可以减轻应用程序的负担?
  • 我是否必须对所有下载任何内容的应用程序执行此操作?
  • 为什么它现在突然变成了一个问题?

我将通过运行xattr -rd com.apple.quarantineDIR 来修复这个问题,但我不完全确定我是否应该运行它,~尽管它让我很恼火,想让它从任何东西中消失,甚至是真正的病毒。

这不是重复的我应该如何处理 com.apple.quarantine?由于范围和背景,我认为这种情况发生在奇怪的下载中是正常的,而不是我的整个帐户(而且我还没有检查过除此之外的情况)。

任何帮助或见解都将不胜感激。

答案1

由于 BBEdit 被错误地标记,com.apple.quarantine这意味着所有以此方式创建的文件也将被标记。解决方案是运行xattr -dr com.apple.quarantine /Applications/BBEdit.app然后重新启动应用程序。从那时起,通过 BBEdit 创建的新项目就不会被标记。

我还运行了这个怪物:

/usr/bin/find ~ -xattrname com.apple.quarantine -type f \
-exec sh -c 'printf "%s" {}; \
  xattr -p com.apple.quarantine {} 2>/dev/null | \
  grep -q BBEdit && xattr -d com.apple.quarantine {} &&\
  printf " - quarantined\n" || printf "\n" ' {} \;

这需要小时.不过,现在它已经消失了。


编辑:我不得不取消标记(我自己的答案!)这是正确的,因为即使 BBEdit 现在没有被标记为隔离,隔离又回来了。我感到遗憾。


进一步编辑:经过进一步调查,我发现该应用程序确实通过删除其隔离属性得到了修复,而我现在遇到的问题只是与命令行工具有关。我给 BBEdit 的创建者发了电子邮件,他们非常乐于助人,通过更改给定的设置这里问题已经解决。

相关内容