Блокувати конкретні програми на 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

Вищенаведена команда буде "позначати" пошту та Chrome відповідно "затвердженими" та "відхиленими" відповідно (ви можете використовувати власні дескриптори).

Тепер, щоб увімкнути / вимкнути програми, ви видаєте команди:

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

Перевага цього полягає в тому, що щоб додати ще одну програму до будь-якого списку, потрібно просто додати відповідну мітку:

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

Крім того, ви можете заборонити запуск коду з магазину додатків Mac (знайдений на spctlсторінці man - man spctl).

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

Це не дозволить будь-кому завантажувати додаток із магазину додатків та встановлювати / запускати його.

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

Як зазначено в коментарях, все, що може зробити адміністратор, інший адміністратор може скасувати. Використання spctlвимагає root, але редагування файлу sudoers для обмеження доступу до певної команди може перешкодити іншим користувачам / адміністраторам скасувати зміни.

Див. Розділ Як запобігти користувачам sudo виконувати певні команди? для детальної інформації про те, як налаштувати "білий список із виключенням" у вашому sudoersфайлі.

Наприклад, щоб дозволити користувачеві Саму доступ до всіх команд, за винятком spctl , ви введете у файл sudoers:

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

Тепер це "швидкий і брудний" спосіб запобігання доступу, spctlале, в кінцевому рахунку, він не ефективний, оскільки якщо інший адміністратор розумне до вашої стратегії, все, що він / вона повинен зробити, - це перейменувати команду, і вони мають доступ.

На sudoersчоловіковій сторінці:

Взагалі, якщо користувач має sudo ВСЕ, нічого не заважає їм створити власну програму, яка дає їм кореневу оболонку (або зробити власну копію оболонки) незалежно від будь-якого `! ' елементи в специфікації користувача.

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


Приємно! Це саме те, що я шукав. Хороша робота. Дуже дякую!
наметів

Дійсно приголомшлива відповідь Аллан - я не думаю, що це може бути недоступним для запобігання доступу до файлів або припинення надсилання сигналу sigkill. apple.stackexchange.com/questions/332124/…
bmike

@bmike - Щойно побачив цей коментар. THX для добрих слів. Що стосується sigkill, я не думаю, що ви могли це запобігти, оскільки технічно ви можете вбити власні процеси.
Аллан

2
Це все звучить чудово, але для мене це просто не працює (10.14.3). Зміни застосовуються, але я все одно можу запустити програми, які я "відмовив". Включений шлюз.
БСУК

Не працює і для мене (10.14.1).
Студент
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.