Jak mogę „otworzyć aplikację od niezidentyfikowanego programisty” bez korzystania z GUI?

13

Zasadniczo użyłem natywnej Safari.appprzeglądarki internetowej do pobrania aplikacji innej firmy i chcę ją uruchomić openw zaciszu mojej bashpowłoki / Terminal.appinterfejsu CLI; pomimo następującego komunikatu o błędzie:

“<unidentified_thirdparty.app>” cant 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. Safari downloaded this file on <today's_date> 
 from <the.inter.net>.
                                          |[OK]|
głosy
źródło

Odpowiedzi:

31

Musisz albo zmienić ustawienia w Preferencjach systemowych > Bezpieczeństwo i prywatność > Ogólne > Zezwól aplikacjom pobieranym z: na Dowolne miejsce lub w Terminalu , xattr usuń atrybut com.apple.quarantine z pobranych plików.

xattr -dr com.apple.quarantine "unidentified_thirdparty.app"
użytkownik3439894
źródło
Byłem świadomy metody GUI. Kolejna część wygląda jednak trafnie. Do czego dokładnie odnosi się com.apple.quarantineargument (atrybut)?
głosy
1
@ tjt263, Przykro mi, ale do tej pory nie widziałem twojego komentarza ... Wszystkie obiekty systemu plików mają atrybuty, np. informacje, które zobaczysz w danych wyjściowych ls -l filepolecenia. Obiekty systemu plików mają również rozszerzone atrybuty, które com.apple.quarantinesą przypisane do obiektów pobranych z Internetu przez OS X, aby zapobiec przypadkowemu wykonaniu, a tym samym jeden poziom ochrony systemu. Użycie ls -lR@ filelub xattr −lr filespowoduje wyświetlenie informacji o rozszerzonych atrybutach, z których ta ostatnia wyświetli bardziej szczegółowe informacje. Zobacz man xattrpo więcej informacji.
user3439894,
Łał. To interesujące. Nie wiedziałam o tym. Czy w innych systemach operacyjnych jest coś takiego?
głosy
Możesz także użyć kliknięcia prawym przyciskiem myszy (aka kliknięcie z wciśniętym klawiszem Ctrl) i wybranie opcji „Otwórz”, aby umożliwić uruchomienie tylko tej aplikacji.
Hawken Rives
1
@HawkenRives, Tak, ponieważ jest to ustawienie globalne, a nie faktyczne uruchamianie lub otwieranie pliku, tak jak robi to kliknięcie prawym przyciskiem myszy. Korzystając z xattrczęści mojej odpowiedzi, zakryj wiersz poleceń i Terminal.
user3439894
0

Wpisz to w terminalu na koncie administratora: sudo spctl --master-disable

John Smith
źródło
To całkowicie wyłącza Strażnika Wrót. I to nie jest odpowiedź na pytanie.
l1ghthouse
0

Aby zrobić to mądrze w wierszu poleceń

  • attr -p com.apple.quarantine unidentified_thirdparty.app wypisuje coś podobnego 0081;5e7fec61;Chrome;6585C1D3-E260-4275-9E6E-505DF8D6B7EE
  • Skopiuj ciąg wyjściowy, zamień pierwsze 4 znaki na 00c1
  • biegać attr -w com.apple.quarantine 00c1;5e7fec61;Chrome;6585C1D3-E260-4275-9E6E-505DF8D6B7EE unidentified_thirdparty.app

lub

Połączono te kroki w jedno polecenie

attr -w com.apple.quarantine "$(attr -p com.apple.quarantine unidentified_thirdparty.app | sed 's/^.\{4\}/00c1/' )" unidentified_thirdparty.app

Mój blog na ten temat.

transang
źródło