Forçando o comando `open` para abrir o aplicativo não assinado?


21

Eu tenho minhas preferências de segurança definidas para permitir aplicativos baixados da "Mac App Store e desenvolvedores identificados". Quando tento abrir um aplicativo não assinado:

open xyz.app

Eu vejo o seguinte:

O aplicativo não pode ser aberto

Normalmente, clico com o botão direito do mouse no aplicativo e clico em "Abrir". Isso abre um diálogo semelhante, mas este inclui um botão do tipo "abrir de qualquer maneira":

O aplicativo não pode ser aberto, com o botão Abrir

Existe uma maneira de fazer isso apenas usando o opencomando - algo como:

open --even-if-unsigned xyz.app

Respostas:


33
  1. Crie e adicione um rótulo do Gatekeeper ao aplicativo. ('Aprovado' é uma sequência arbitrária.)

    spctl --add --label "Approved" /path/to/xyz.app
  2. Aprove todos os aplicativos com o rótulo.

    spctl --enable --label "Approved"

    Isso precisa ser feito apenas uma vez e a adição do mesmo rótulo aos aplicativos no futuro permite automaticamente o acesso deles.

  3. Abra o aplicativo como de costume.

    open xyz.app

Para obter mais informações sobre spctl (segurança da política do sistema SecAssessment), consulte a página do manual


3
Ah, uma nova adição à lista de coisas que antes eu sabia apenas fazer GUI-ly, e agora posso fazer na linha de comando! Obrigado!
LSpice

19

Você pode retirar a quarentena do aplicativo:

xattr -r -d com.apple.quarantine /path/to/xyz.app

Você pode querer / precisar usar sudoesse comando, dependendo das permissões.

Então o Gatekeeper não está envolvido. Obviamente, isso também significa que a assinatura não é verificada, o que remove um importante recurso de segurança.


Eu amo essa resposta também. É uma pena que só posso escolher um!
bonh

Isso funcionou para minha instalação manual do OpenJDK instalada. Obrigado!
fachexot 29/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.