Eu baixei alguns arquivos .jar
da internet e quero usá-los no Mac OS X. Mas o sistema operacional parece tê-los marcado com o atributo extended com.Apple.quarantine (sem nenhuma indicação disso até que eu notei o "@
" em o ls -l
e descobri como usar ls [email protected]
) - aparentemente porque eles foram baixados da internet. Qual é o jeito certo de lidar com isso?
Este atributo é adicionado para que ele possa solicitar a confirmação do usuário na primeira vez que o programa baixado for executado, para ajudar a impedir o malware. Após a confirmação, o atributo deve ser removido automaticamente e, em seguida, o programa será executado normalmente.
Você não tem para lidar com isso. Abra-o e o OS X pedirá sua permissão. Ou, como Richard sugeriu, exclua-o usando algo como:
xattr -d com.Apple.quarantine my_jar.jar
Para fazer isso automaticamente, para qualquer arquivo baixado, você pode anexar uma ação de pasta à pasta de download, como descrito em macosxhints.com em 10.5: Remova o sinalizador de aviso 'arquivo baixado' .
E o seguinte foi postado em macosxhints.com há muito tempo, para o Safari: 10.5: Desativar o aviso de arquivo 'baixado da internet' , alegando que um pode remover VerifiedDownloadPlugin.plugin
de /Library/Internet Plug-Ins
. Eu não testei isso.
Como um aparte: às vezes é preciso iniciar um único programa várias vezes em um Mac. Isso pode ser feito usando cd /Applications/some-application/
seguido de open -n "Application Name.app"
. Isso realmente precisa do sufixo .app
; Executar open -n "Application Name"
pode ter um GateKeeper parando o acesso:
"Application Name" não pode ser aberto porque é de um desenvolvedor não identificado.
Suas preferências de segurança permitem a instalação de apenas aplicativos da Mac App Store e dos desenvolvedores identificados.
Acima, mesmo remover o atributo estendido com.Apple.quarantine
não corrige isso, mas usar o sufixo .app
funciona muito bem.
(Eu não estou aconselhando ninguém a se livrar das medidas de segurança.)
xattr -d com.Apple.quarantine /path/to/file
Você pode desativar os avisos permanentemente com defaults write com.Apple.LaunchServices LSQuarantine -bool false
. Ele também desativa as caixas de diálogo do Gatekeeper, mesmo que você não tenha permitido o download de aplicativos de qualquer lugar nas Preferências do Sistema.
Eu encontrei o seguinte comando
find Application.app | while read l; do echo $l; xattr -d com.Apple.quarantine "$l"; done
muito útil ao tentar se livrar do atributo. Observe as aspas duplas em torno de $l
- você precisará delas se sua pasta de aplicativos contiver arquivos com um espaço em branco no nome deles.
o xattr agora tem um sinalizador -r para reciclar. Então você não precisa passar por essas coisas. Também tem um -c que limpará todos os flags (incluindo FinderInfo), nem sempre recomendado, a menos que você esteja realmente zangado com isso. :-)