移除苹果系统下载文件的附加属性

Posted by zihengCat on 2017-08-13

前言

使用苹果系统(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选项作用于目录,表示递归删除。

参考资料