Как отключить защиту целостности системы (SIP) AKA «без потерь» на macOs [OS X]

Apple внедрила защиту целостности системы , также известную как «без корней», с OS X 10.11, El Capitan , Я понимаю, что это шаг для общей защиты от вредоносного ПО, но как разработчик мне нужен доступ на запись к некоторым файлам, которые он блокирует.

Как отключить эту защиту?

133 голоса | спросил bdnchr 1 +03002015-10-01T22:09:37+03:00312015bEurope/MoscowThu, 01 Oct 2015 22:09:37 +0300 2015, 22:09:37

5 ответов


130

Документация Apple включает в себя отключение SIP, О защите целостности системы на вашем Mac и Настройка защиты целостности системы .

Статья о lifehacker.com перечисляет эти шаги:

  
  1. Перезагрузите Mac в режим восстановления, перезагрузив компьютер и удерживая Command + R , пока на вашем экране не появится логотип Apple.
  2.   
  3. Нажмите «Утилиты»> Терминал.
  4.   
  5. В окне терминала введите csrutil disable и нажмите Enter .
  6.   
  7. Перезагрузите Mac.
  8.   

Вы можете проверить, ограничен ли файл или папка, выдав эту команду ls, используя капитал O (а не ноль 0), чтобы изменить длинный флаг флага:

ls -lO /System /usr 

Найдите текст ограниченный , чтобы указать, где применяется SIP.

По умолчанию (= SIP включен) следующие папки ограничены (см. страница поддержки Apple ):

/System
/usr
/bin
/sbin
Apps that are pre-installed with OS X

... и следующие папки свободны:

/Applications
/Library
/usr/local
ответил Mike Scott 1 +03002015-10-01T22:16:41+03:00312015bEurope/MoscowThu, 01 Oct 2015 22:16:41 +0300 2015, 22:16:41
91

Можно отключить SIP, загрузив Recovery HD и выполнив следующую команду:

csrutil disable

введите изображение здесь »> </a> </p>

<p> Также возможно включить защиту SIP и выборочно отключить ее аспекты, добавив один или несколько флагов в команду <code>csrutil enable</code>. Все они требуют загрузки из Recovery для их установки: </p>

<p> <strong> Включить SIP и разрешить установку беззнаковых расширений ядра </strong> </p>

<pre><code>csrutil enable - без kext
</code></pre>

<p> <a href=введите изображение здесь »> </a> </p>

<p> <strong> Включить SIP и отключить защиту файловой системы </strong> </p>

<pre><code>csrutil enable --without fs
</code></pre>

<p> <a href=введите изображение здесь »> </a> </p>

<p> <strong> Включить SIP и отключить ограничения отладки </strong> </p>

<pre><code>csrutil enable - без отладки
</code></pre>

<p> <a href=введите изображение здесь »> </a> </p>

<p> <strong> Включить SIP и отключить ограничения DTrace </strong> </p>

<pre><code>csrutil enable - без dtrace
</code></pre>

<p> <a href=введите изображение здесь »> </a> </p>

<p> <strong> Включить SIP и отключить ограничения на запись в NVRAM </strong> </p>

<pre><code>csrutil enable - без nvram
</code></pre>

<p> <a href=введите изображение здесь »> </a> </p>

<p> У меня также есть сообщение с дополнительной информацией о SIP: </p>

<p> <a href= Защита целостности системы â - Добавление другого уровня в модель безопасности Apple

ответил Rich Trouton 6 +03002015-10-06T21:26:55+03:00312015bEurope/MoscowTue, 06 Oct 2015 21:26:55 +0300 2015, 21:26:55
9

Если цель состоит в том, чтобы действительно просто отключить защиту целостности системы, а затем загрузиться в раздел восстановления HD, как было рекомендовано ранее в других ответах, используя Command + r при загрузке не самый быстрый способ сделать это.

Вы можете комбинировать загрузку одного пользователя с загрузкой HD-загрузки в недокументированной комбинации клавиш:

  • https://support.apple.com/en-us/HT204904 охватывает нормальное восстановление
  • удерживайте Command + r + s для загрузки в режим восстановления одиночного пользователя.

Это приведет вас к минимальной минимальной среде, которая необходима для этого напрямую .

ответил LangLangC 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 14 Sep 2017 02:23:40 +0300 2017, 02:23:40
4

Если вам нужен доступ /usr /local, посмотрите эту страницу: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/El_Capitan_and_Homebrew.md

Идея состоит в том, чтобы временно отключить SIP, используя csrutil disable, добавить /usr/local, использовать chflags, чтобы установить этот каталог в не- ограничено

 sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local

, а затем снова включить SIP, используя csrutil enable.

Если /usr/local уже существует во время вашего обновления, то даже указанное выше не требуется. Вы можете просто запустить

sudo chown -R $(whoami):admin /usr/local
ответил m_cuffa 31 +03002015-10-31T15:02:11+03:00312015bEurope/MoscowSat, 31 Oct 2015 15:02:11 +0300 2015, 15:02:11
4

Было бы безопаснее изменить /etc/paths, чтобы /usr/local/bin был только до usr/bin. Таким образом, вы можете выполнять свою разработку в /usr/local/bin без необходимости отключения SIP.

Чистые установки ОС заказали /etc/paths таким образом, что El Capitan, но если вы обновляете ОС от Yosemite или ранее, вам придется вручную изменить порядок маршрутов.

ответил user260467 15 MaramWed, 15 Mar 2017 08:16:09 +03002017-03-15T08:16:09+03:0008 2017, 08:16:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132