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

Iai*_*ain 8 security permissions file-permissions macos-mojave macos-catalina

不知何故,在某个时刻,我相信最近,我的系统决定将 com.apple.quarantine 属性添加到某些文件中。这是相当痛苦的,并且阻止我运行我在自己的编辑器中编写的脚本(BBEdit,我已经使用了很多年,直到最近几天)。我找到了问题(xattrs)并将 BBEdit 添加到系统偏好设置 > 安全和隐私 > 隐私 > 全磁盘访问。现在新文件就可以了。

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

该文件有130M大。

我注意到那里有很多 git 对象文件,但文件数量多得荒唐。这是正常的吗?如果不是,而且我认为这是不正确的,我怎样才能阻止这种情况再次发生?

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

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

这不是重复的我应该对 com.apple.quarantine 做什么?由于范围和上下文,我认为这种情况发生在奇怪的下载上是正常的,而不是我的整个帐户(而且我还没有检查过)。

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

Iai*_*ain 6

由于 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" ' {} \;
Run Code Online (Sandbox Code Playgroud)

这花了几个小时。不过,现在已经消失了。


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


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