Wymuszasz polecenie „otwórz”, aby otworzyć niepodpisaną aplikację?

21

Mam ustawione preferencje zabezpieczeń, aby zezwalać na aplikacje pobrane z „Mac App Store i zidentyfikowanych programistów”. Kiedy próbuję otworzyć niepodpisaną aplikację:

open xyz.app

Widzę następujące:

Nie można otworzyć aplikacji

Zwykle klikam aplikację prawym przyciskiem myszy i klikam „Otwórz”. To wywołuje podobny dialog, ale ten zawiera przycisk typu „i tak otwórz”:

Nie można otworzyć aplikacji za pomocą przycisku Otwórz

Czy można to zrobić tylko za pomocą openpolecenia - coś takiego:

open --even-if-unsigned xyz.app
bonh
źródło

Odpowiedzi:

33
  1. Utwórz i dodaj etykietę Gatekeeper do aplikacji. („Zatwierdzony” to dowolny ciąg.)

    spctl --add --label "Approved" /path/to/xyz.app
  2. Zatwierdź wszystkie aplikacje za pomocą etykiety.

    spctl --enable --label "Approved"

    Należy to zrobić tylko raz, a dodanie tej samej nazwanej etykiety do aplikacji w przyszłości automatycznie umożliwi im dostęp.

  3. Otwórz aplikację jak zwykle.

    open xyz.app

Aby uzyskać więcej informacji o spctl (bezpieczeństwo zasad systemu SecAssessment), zobacz stronę man.

grg
źródło
3
Ach, nowy dodatek do listy rzeczy, które wcześniej znałem tylko z graficznego interfejsu użytkownika, a teraz mogę to zrobić w wierszu poleceń! Dzięki!
LSpice,
19

Możesz usunąć kwarantannę z aplikacji:

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

Możesz chcieć / potrzebować użyć sudotego polecenia, w zależności od uprawnień.

W takim razie Strażnik W ogóle nie jest zaangażowany. Oczywiście oznacza to również, że podpis nie jest weryfikowany, co usuwa ważną funkcję bezpieczeństwa.

Ken Thomases
źródło
Uwielbiam też tę odpowiedź. Szkoda, że ​​mogę wybrać tylko jeden!
bonh
Działa to w przypadku mojej ręcznej instalacji OpenJDK. Dzięki!
fachexot