Extended attributes
25 Feb 2018
And I’m sure I’ve bumped into it before, but today I got confused all over again, so I’m writing it down so I know where to look the next time I get confused.
I had problems with a webpage which couldn’t load a javascript file – the server gave me a 403 (forbidden) status code.
The command ls -l
shows
-rwxr-xr-x@ 1 bronwen staff 22691 24 Feb 19:17 jquery.validate.min.js
and the @
sign means that the file has extended attributes
Run ls -l@
to see the extended attributes
-rwxr-xr-x@ 1 bronwen staff 46285 24 Feb 19:17 jquery.validate.js com.apple.quarantine 26
The com.apple.quarantine
extended attributes are part of the file quarantine feature that Apple added yonks ago (OS X Leopard – 2009?). From the release notes for OS X Leopard
File Quarantine is a new feature in Leopard designed to protect users from trojan horse attacks. It allows applications which download file content from the Internet to place files in “quarantine” to indicate that the file could be from an untrustworthy source. An application quarantines a file simply by assigning values to one or more quarantine properties which preserve information about when and where the file come from.
To remove the file from quarantine:
xattr -d com.apple.quarantine *
And to remove ALL FILES in the folder from quarantine:
find . -iname '*.js' -print0 | xargs -0 xattr -d com.apple.quarantine