Я хотел заблокировать конфигурацию на некоторых компьютерах Mac и хотел узнать, есть ли способ изменить файлы и папки, которые защищает SIP. Я знаю, что его можно отключить и просмотреть его текущие правила, но есть ли способ добавить свои собственные защищенные каталоги?
Спасибо
В SIP можно добавить собственный защищенный каталог:
Отметить всю папку или отдельные файлы или папки:
sudo chflags restricted /example
sudo chflags restricted /example/example.app
sudo chflags restricted /example/subdir/file
или иерархия папок:
sudo chflags -R restricted /example
Если вы хотите исключить подкаталог после использования параметра -R, вы должны удалить там флаг ограничения:
sudo chflags norestricted /example/subdir
Теперь папки example , example.app и файл /example/subdir/file защищены. Вы по-прежнему можете добавлять или удалять файлы в/из /example/subdir .
Флаг ограничения не действует, если SIP отключен — применяются обычные разрешения POSIX/ACL. При включенном SIP файлы/папки защищены.
Также можно добавлять, удалять или изменять файлы и каталоги, защищенные SIP, с помощью установочного пакета, подписанного собственным центром сертификации Apple. Поскольку обычный пользователь/клиент обычно не имеет доступа к этому центру сертификации, эта возможность исключается.
В более ранней версии этого ответа утверждалось, что необходимо изменить файл /System/Library/Sandbox/rootless.conf и добавить что-то вроде:
/example
/example/example.app
* /example/subdir
/example/subdir/file
Это не верно! Для защиты достаточно просто пометить файл или папку как ограниченные .
Насколько я знаю, нет способа изменить, какие каталоги защищает SIP; SIP либо включен, либо выключен . Apple, похоже, также не упоминает о такой возможности в своих документах для разработчиков.
Не обращайте на это внимания, у @kanomath есть лучший ответ. Последняя часть моего ответа остается в силе в ограниченной степени.
Если вы хотите заблокировать файлы конфигурации, измените разрешения файловой системы либо через графический интерфейс Finder , либо с помощью утилиты командной строки chown
.
LаngLаngС