前言
使用苹果系统(macOS)的朋友一定遇到过这样的情况:从网络上下载了一个文件,打开该文件时系统提示我们该文件不安全,或者提示我们该软件来自未认证的开发者(非 Mac App Store 软件)。
出现提示的原因是,苹果系统有一个GateKeeper保护机制(自 OSX 10.5 加入)。从互联网上下载来的文件,会被自动打上com.apple.quarantine标志,翻译过来就是免疫隔离,系统根据这个附加属性对这个文件作出限制。
苹果系统加入文件附加属性应该是有系统安全的考量,保护用户免受恶意软件的侵害。但是对一些专业用户而言,这个功能就显得有点不是很舒服了…
所幸,我们方便地去掉这些自动加上的附加属性(extended attributes)。
移除附加属性
对于一个打上附加属性的文件,文件的权限位会多出一个@
。
$ ls -al@
使用ls -al@
命令可以很清楚的看到文件的附加属性(xattr也可以查看)。
macOS 提供了一个xattr
系统工具,我们可以它利用来清除文件附加属性。
$ xattr -d <com.apple.quarantine> <filename>
命令格式:xattr
+ -d
+ 附加属性 + 文件名
更详细的说明可以查看: xattr –help 或 man xattr
xattr
+ 文件名 可以直接查看文件的附加属性。-r
选项作用于目录,表示递归删除。
参考资料
- StackOverflow 的问答: https://superuser.com/questions/28384/what-should-i-do-about-com-apple-quarantine