Отключить sip mac OS

Отключить sip mac OS

Я пытаюсь установить Scrapy Python framework в OSX 10.11 (El Capitan) через pip. Сценарий установки загружает необходимые модули и в какой-то момент возвращает следующую ошибку:

OSError: Operation not permitted: ‘/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info’

Я попытался отключить функцию rootless в OSX 10.11 с помощью команды:

sudo nvram boot-args=»rootless=0″;sudo reboot

но я все равно получаю ту же ошибку при перезагрузке машины.

любая подсказка или идея от моих коллег StackExchangers?

Если это поможет, полный скрипт вывод следующий:

sudo -s pip install scrapy Collecting scrapy Downloading Scrapy-1.0.2-py2-none-any.whl (290kB) 100% |████████████████████████████████| 290kB 345kB/s Requirement already satisfied (use —upgrade to upgrade): cssselect>=0.9 in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use —upgrade to upgrade): queuelib in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use —upgrade to upgrade): pyOpenSSL in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from scrapy) Collecting w3lib>=1.8.0 (from scrapy) Downloading w3lib-1.12.0-py2.py3-none-any.whl Collecting lxml (from scrapy) Downloading lxml-3.4.4.tar.gz (3.5MB) 100% |████████████████████████████████| 3.5MB 112kB/s Collecting Twisted>=10.0.0 (from scrapy) Downloading Twisted-15.3.0.tar.bz2 (4.4MB) 100% |████████████████████████████████| 4.4MB 94kB/s Collecting six>=1.5.2 (from scrapy) Downloading six-1.9.0-py2.py3-none-any.whl Requirement already satisfied (use —upgrade to upgrade): zope.interface>=3.6.0 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from Twisted>=10.0.0->scrapy) Requirement already satisfied (use —upgrade to upgrade): setuptools in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from zope.interface>=3.6.0->Twisted>=10.0.0->scrapy) Installing collected packages: six, w3lib, lxml, Twisted, scrapy Found existing installation: six 1.4.1 DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project. Uninstalling six-1.4.1: Exception: Traceback (most recent call last): File «/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/basecommand.py», line 223, in main status = self.run(options, args) File «/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/commands/install.py», line 299, in run root=options.root_path, File «/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_set.py», line 640, in install requirement.uninstall(auto_confirm=True) File «/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_install.py», line 726, in uninstall paths_to_remove.remove(auto_confirm) File «/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_uninstall.py», line 125, in remove renames(path, new_path) File «/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/utils/__init__.py», line 314, in renames shutil.move(old, new) File «/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py», line 302, in move copy2(src, real_dst) File «/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py», line 131, in copy2 copystat(src, dst) File «/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py», line 103, in copystat os.chflags(dst, st.st_flags) OSError: Operation not permitted: ‘/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info’

В операционной системе Mac OS X El Capitan интегрирована защита на изменения системных файлов. Называется она System Integrity Protection или SIP.

SIP – очень правильная и нужная вещь, которая дополняет и без того неплохую защиту операционной системы Mac OS от вирусов, скриптов, троянов и прочих вредоносных кодов. Но иногда нужно внести какие-то изменения в файлы системы, а сделать это с включенным SIP невозможно.

При включенном SIP в программе Finder с системными файлами вы ничего не сможете сделать. Не будут доступны функции изменения содержимого, удаления, переименования. А при попытки изменения файлов через Терминал будет возникать ошибка:

Operation not permitted

Для внесения изменений в дефолтные файлы операционной системы нужно будет отключить SIP. Это делается следующей консольной командой в программе Терминал:

csrutil disable
reboot

После этой команды компьютер перезагрузится и защита файлов SIP будет отключена.

После всех изменений, которые вам нужно провести с системными файлами, обязательно опять включите защиту этих файлов. Ведь защита SIP была внедрена не просто так. Для того, чтобы всё вернуть на свои места нужна следующая команда:

Защита целостности системы или SIP (System Integrity Protection) — это одна из новых технологий, которую Apple внедрила в свою операционную систему для обеспечения безопасности. Впервые эта функция появилась в OS X El Capitan, ее главная задача уберечь пользователя от возможного заражения компьютера вредоносным ПО. По сути, если раньше администратор Mac имел доступ ко всей системе и программам, то сейчас SIP ограничивает его права суперпользователя root, он не может больше изменять системные файлы и папки, а также удалять предустановленные программы в macOS. Для него закрыт доступ к защищенным областям системы:

  • /Система
  • /usr
  • /bin
  • /sbin

А это означает, что сторонние приложения не могут вмешиваться в работу системы, доступ имеют только процессы с подписью Apple. Зачем же тогда отключать эту функцию, раз она стоит на страже нашей же безопасности?

Например, Вы хотите понизить версию iTunes после очередного обновления или попросту удалить одну из программ Apple: Safari, iTunes, Photo…, но все это предустановленные приложения и удалить их Вы не сможете. Но если отключить SIP, то такая возможность у вас появится.

Как отключить SIP на Mac (macOS)

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

Шаг 1 Выключите/включите или перезагрузите Mac

Шаг 2 При загрузке компьютера удерживайте зажатыми клавиши ⌘Cmd + R пока на дисплее не появится логотип Apple

Реклама

Шаг 3 По завершению загрузки перед вами появится окно выбора языка (может появляться не у всех), выберите нужный для вас и Вы попадете в режим Recovery (на экране отобразится окно утилит «Служебные программы / Утилиты»)

Шаг 4 В строке меню выберите Утилиты → Терминал

В терминале введите команду csrutil disable и нажмите Enter

Шаг 5 Перезагрузите Mac, кликните на значок  в левом верхнем углу и выберите соответствующий пункт или просто введите в терминале reboot и нажмите Enter

Иногда отключение SIP может привести к цикличной загрузке Mac в режим Recovery вместо обычного режима. Чтобы устранить эту проблему, при последующей перезагрузке удерживайте на клавиатуре клавишу ⌥Option (Alt) для загрузки в режим выбора дисков. Далее выберите диск с системой и кликните по нем мышкой или нажмите Enter

После загрузки Mac Вы сможете внести нужные для вас изменения, но помните, нужно быть предельно осторожным, чтобы не «наломать дров», так как после отключения защиты целостности системы все вносимые изменения в систему Вы делаете на свой страх и риск.

По внесению всех изменений рекомендуется обратно включить SIP, проделайте те же шаги — снова перезагрузитесь в «Режим восстановления», запустите терминал, только теперь введите команду:


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *