Blokir Aplikasi Tertentu di macOS

15

Apakah ada cara untuk memblokir daftar aplikasi tertentu di MacOS?

Saya telah mencari solusi seperti Cisdem, tetapi ada beberapa lubang dalam cara kerjanya yang tidak saya sukai.

  1. Kecuali jika Anda juga memblokir Monitor Aktivitas, Terminal, dan Preferensi Sistem, Anda cukup keluar dari proses Cisdem atau membuat pengguna baru untuk mengatasinya.
  2. Anda harus memblokir Monitor Aktivitas, Terminal, dan Preferensi Sistem agar berfungsi dengan baik.

Saya ingin memblokir aplikasi agar tidak berjalan atau bahkan diinstal pada Mac saya. Aplikasi ini dapat diinstal melalui App Store dan web. Tidak yakin bagaimana caranya. Mengaktifkan Kontrol Orang Tua tidak akan berfungsi karena hak administrator diperlukan.

Aplikasi spesifik yang ingin saya blokir adalah Apple Configurator.

Ada ide?

pembuatan tenda
sumber

Jawaban:

14

Gunakan Gatekeeper untuk mengontrol akses ke Aplikasi

Anda dapat menggunakan spctl(Gatekeeper) untuk membuat daftar aplikasi yang disetujui dan tidak disetujui.

Misalnya, Anda ingin memperbolehkan Mail tetapi memblokir Chrome.

sudo spctl --add --label "ApprovedApps" /Applications/Mail.app 
sudo spctl --add --label "DeniedApps" /Applications/Chrome.app

Perintah di atas akan masing-masing "memberi label" Mail dan Chrome sebagai "Disetujui" dan "Ditolak" (Anda dapat menggunakan deskriptor Anda sendiri).

Sekarang, untuk mengaktifkan / menonaktifkan aplikasi, Anda mengeluarkan perintah:

sudo spctl --enable --label "ApprovedApps" 
sudo spctl --disable --label "DeniedApps" 

Keuntungan yang dimilikinya adalah menambahkan aplikasi lain ke daftar mana pun, Anda hanya perlu menambahkan label yang sesuai:

sudo spctl --add --label "ApprovedApps" /Applications/Another.app

Selain itu, Anda dapat melarang kode dari Mac App Store agar tidak berjalan (ditemukan di spctlhalaman manual - man spctl).

spctl --disable --label "Mac App Store"

Ini akan mencegah siapa pun mengunduh Aplikasi dari App store dan menginstal / menjalankannya.

Berurusan dengan Admin /sudoers

Seperti yang dinyatakan dalam komentar, apa pun yang Admin dapat lakukan, Admin lain dapat membatalkan. Menggunakan spctlmembutuhkan root, tetapi mengedit file sudoers untuk membatasi akses ke perintah tertentu dapat mencegah pengguna / admin lain membatalkan perubahan Anda.

Lihat Bagaimana mencegah pengguna sudo menjalankan perintah tertentu? untuk detail tentang cara mengkonfigurasi "daftar putih dengan pengecualian" di sudoersfile Anda .

Misalnya, untuk mengizinkan pengguna Sam mengakses semua perintah kecuali spctl , Anda akan memasukkan file sudoers:

sam ALL = ALL, !/usr/sbin/spctl

Sekarang, ini cara "cepat dan kotor" untuk mencegah akses, spctltetapi pada akhirnya, itu tidak efektif karena jika admin lain bijak dengan strategi Anda, yang harus ia lakukan hanyalah mengganti nama perintah dan mereka memiliki akses.

Dari sudoershalaman manual:

Secara umum, jika pengguna memiliki sudo SEMUA tidak ada yang mencegah mereka membuat program mereka sendiri yang memberi mereka shell root (atau membuat salinan shell mereka sendiri) terlepas dari `! ' elemen dalam spesifikasi pengguna.

Untuk benar-benar menguncinya, Anda harus memaksa pengguna lain untuk sumenjadi pengguna yang berbeda (yaitu operator) atau membuat daftar putih dari perintah yang diizinkan untuk memblokir semua yang lain. Namun, itu memakan waktu dan cukup berbahaya karena Anda dapat mengunci orang keluar dari fungsi-fungsi penting.

Allan
sumber
Bagus! Itulah tepatnya yang saya cari. Kerja bagus. Terima kasih banyak!
Membuat tenda
Jawaban yang benar-benar luar biasa Allan - Saya tidak berpikir ini akan dapat diterima untuk mencegah akses file atau berhenti mengirim sinyal sigkill - bukan? apple.stackexchange.com/questions/332124/...
bmike
@bmike - Baru saja melihat komentar ini. Terima kasih untuk kata-kata yang baik. Adapun sigkill, saya tidak berpikir Anda bisa mencegah itu karena secara teknis, Anda dapat membunuh proses Anda sendiri.
Allan
2
Ini kedengarannya hebat, tapi itu tidak bekerja untuk saya (pada 10.14.3). Perubahan berlaku, tetapi saya masih bisa meluncurkan aplikasi yang saya "tolak". Gatekeeper diaktifkan.
BSUK
Juga tidak bekerja untuk saya (pada 10.14.1).
Siswa