Memaksa perintah `open` untuk membuka aplikasi yang tidak ditandatangani?

21

Saya mengatur preferensi Keamanan saya untuk memungkinkan aplikasi diunduh dari "Mac App Store dan pengembang yang diidentifikasi." Ketika saya mencoba membuka aplikasi yang tidak ditandatangani:

open xyz.app

Saya melihat yang berikut ini:

Aplikasi tidak dapat dibuka

Biasanya, saya klik kanan pada aplikasi dan klik "Open". Ini menampilkan dialog yang serupa, tetapi yang ini menyertakan tombol -tipe "open anyway":

Aplikasi tidak dapat dibuka, dengan tombol terbuka

Apakah ada cara untuk melakukan ini hanya menggunakan openperintah - sesuatu seperti:

open --even-if-unsigned xyz.app
bonh
sumber

Jawaban:

33
  1. Buat dan tambahkan label Gatekeeper ke aplikasi. ('Disetujui' adalah string yang arbitrer.)

    spctl --add --label "Approved" /path/to/xyz.app
  2. Setujui semua aplikasi dengan label.

    spctl --enable --label "Approved"

    Ini hanya perlu dilakukan sekali dan menambahkan label dengan nama yang sama ke aplikasi di masa depan secara otomatis memungkinkan akses mereka.

  3. Buka aplikasi seperti biasa.

    open xyz.app

Untuk informasi lebih lanjut tentang spctl (Keamanan kebijakan sistem SecAssessment), lihat halaman manual.

GRG
sumber
3
Ah, tambahan baru dalam daftar hal-hal yang sebelumnya saya hanya tahu bagaimana melakukan GUI, dan sekarang bisa dilakukan di baris perintah! Terima kasih!
LSpice
19

Anda dapat menghapus karantina dari aplikasi:

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

Anda mungkin ingin / perlu menggunakan sudountuk perintah itu, tergantung pada izin.

Maka Gatekeeper sama sekali tidak terlibat. Tentu saja, itu juga berarti bahwa tanda tangan tidak diverifikasi, yang menghilangkan fitur keselamatan penting.

Ken Thomases
sumber
Saya suka jawaban ini juga. Sayang sekali saya hanya bisa memilih satu!
bonh
Ini berfungsi untuk instalasi OpenJDK manual saya yang diinstal. Terima kasih!
fachexot