O que devo fazer sobre com.apple.quarantine?

84

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 extendido com.apple.quarantine (sem nenhuma indicação disso até que eu notei o " @ " no ls -l e descobri como usar ls -l@ ) - aparentemente porque eles foram baixados da internet. Qual é o jeito certo de lidar com isso?

    
por Jason S 23.08.2009 / 23:10

5 respostas

57

Esse 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 interromper o malware. Após a confirmação, o atributo deve ser removido automaticamente e, em seguida, o programa será executado normalmente.

    
por 23.08.2009 / 23:39
75

Você não tem para lidar com isso. Abra-o e o OS X pedirá sua permissão. Ou, como Richard sugeriu, exclua 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 'baixado do aviso de arquivo da Internet , alegando que um pode remover VerifiedDownloadPlugin.plugin de /Library/Internet Plug-Ins . Eu não testei isso.

Como um aparte: às vezes é necessário iniciar um único programa várias vezes em um Mac. Isso pode ser feito usando cd /Applications/some-application/ seguido por open -n "Application Name.app" . Isso realmente precisa do sufixo .app ; a execução de open -n "Application Name" pode ter um GateKeeper parando o acesso:

"Application Name" can't be opened because it is from an unidentified developer.

Your security preferences allow installation of only apps from the Mac App Store and identified developers.

Acima, mesmo removendo 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.)

    
por 23.08.2009 / 23:40
19
 xattr -d com.apple.quarantine /path/to/file
    
por 23.08.2009 / 23:33
4

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.

    
por 03.05.2012 / 15:36
1

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 em seus nomes.

    
por 31.03.2010 / 22:44