Блокировать определенные приложения в macOS

15

Есть ли способ заблокировать список определенных приложений на macOS?

Я искал такие решения, как Cisdem, но в его работе есть некоторые дыры, которые мне не нравятся.

  1. Если вы также не заблокируете Монитор активности, Терминал и Системные настройки, вы можете просто выйти из процесса Cisdem или создать нового пользователя, чтобы обойти его.
  2. Вы должны заблокировать Монитор активности, Терминал и Системные настройки, чтобы он работал хорошо.

Я хочу заблокировать запуск или даже установку приложения на моем Mac. Приложение может быть установлено через App Store и Интернет. Не уверен, как это сделать. Включение родительского контроля не будет работать, так как необходимы права администратора.

Конкретное приложение, которое я хочу заблокировать, - это Apple Configurator.

Любые идеи?

Делание палаток
источник

Ответы:

14

Используйте Gatekeeper для управления доступом к приложениям

Вы можете использовать spctl(Gatekeeper) для создания списков утвержденных и неутвержденных приложений.

Например, предположим, что вы хотите разрешить Mail, но заблокировать Chrome.

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

Приведенная выше команда будет «помечать» Mail и Chrome как «Одобрено» и «Отклонено» соответственно (вы можете использовать свои собственные дескрипторы).

Теперь, чтобы включить / отключить приложения, вы вводите команды:

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

Преимущество этого состоит в том, что для добавления другого приложения в любой список, вам просто нужно добавить соответствующий ярлык:

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

Кроме того, вы можете запретить запуск кода из Mac App Store (см. spctlСправочную страницу - man spctl).

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

Это предотвратит загрузку приложения из магазина приложений и его установку / запуск.

Работа с администраторами /sudoers

Как указано в комментариях, все, что может сделать администратор, может отменить другой администратор. Для использования spctlтребуется root, но редактирование файла sudoers для ограничения доступа к определенной команде может помешать другим пользователям / администраторам отменить ваши изменения.

См. Как запретить пользователям sudo запускать определенные команды? для получения подробной информации о том, как настроить «белый список с исключением» в вашем sudoersфайле.

Например, чтобы разрешить пользователю Sam доступ ко всем командам, кроме spctl , вы должны поместить в файл sudoers:

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

Теперь, это «быстрый и грязный» способ предотвращения доступа, spctlно в конечном итоге он не эффективен, потому что, если другой администратор получает мудрость для вашей стратегии, все, что он / она должен сделать, это переименовать команду, и у них будет доступ.

Со sudoersстраницы руководства :

В общем, если у пользователя есть sudo ALL, ничто не мешает ему создать свою собственную программу, которая дает ему корневую оболочку (или делает свою собственную копию оболочки) независимо от любого `! ' элементы в пользовательской спецификации.

Чтобы действительно его заблокировать, вам нужно либо заставить другого пользователя suстать другим пользователем (то есть оператором), либо создать белый список разрешенных команд, по умолчанию блокирующий все остальное. Однако это отнимает много времени и довольно опасно, так как вы можете заблокировать людей от выполнения критических функций.

Аллан
источник
Ницца! Это именно то, что я искал. Отличная работа. Спасибо огромное!
изготовление палаток
Действительно потрясающий ответ Аллан - я не думаю, что это можно было бы предотвратить, чтобы предотвратить доступ к файлу или прекратить посылать сигнал sigkill - не так ли? apple.stackexchange.com/questions/332124/...
bmike
@bmike - Только что видел этот комментарий. спасибо за добрые слова. Что касается sigkill, я не думаю, что вы могли бы предотвратить это, потому что технически вы можете убить свои собственные процессы.
Аллан
2
Все это звучит великолепно, но у меня просто не работает (10.14.3). Изменения применяются, но я все еще могу запускать приложения, которые я "отклонил". Гейткипер включен.
БСУК,
У меня тоже не работает (на 10.14.1).
Студент