Операция не разрешена в режиме root - El Capitan (отключено без root)
Я пытаюсь переместить что-то в /usr/bin на OS X El Capitan. Я отключил rootless с помощью следующих команд: sudo nvram boot-args="rootless=0"; sudo reboot
sudo nvram boot-args="rootless=0"; sudo reboot
, но я продолжаю получать ту же ошибку:
MacBook-Air:~ Mark$ sudo cp class-dump /usr/bin
Password:
cp: /usr/bin/class-dump: Operation not permitted
MacBook-Air:~ Mark$ sudo mv class-dump /usr/bin
mv: rename class-dump to /usr/bin/class-dump: Operation not permitted
Ответы
Ответ 1
Nvm. Если у вас есть другие проблемы, вам необходимо перезагрузить Mac и нажать ⌘ +R при загрузке. Затем перейдите в Утилиты> Терминал и введите следующие команды:
csrutil disable
reboot
Это результат защиты целостности системы. Подробнее здесь.
EDIT
Если вы знаете, что делаете и привыкли работать под Linux, вам следует использовать вышеупомянутое решение, так как многие из ограничений SIP являются полной болью в заднице.
Однако, если вы являетесь носильщиком /noob/"poweruser" и не знаете, что делаете, это может быть очень опасно, и вам лучше использовать ответ ниже.
Ответ 2
Правильное решение - это скопировать или установить на /usr/local/bin
не /usr/bin
. Это связано с защитой целостности системы (SIP), SIP делает /usr/bin
только для чтения, но оставляет /usr/local
как чтение-запись.
SIP не должен быть отключен, как указано в ответе выше, потому что он добавляет еще один уровень защиты от вредоносного ПО, получающего root-доступ. Здесь - это полное объяснение того, что делает SIP и почему он полезен.
Как было предложено в этом ответе не следует отключать SIP (режим без rootless) "Не рекомендуется отключать режим без корней! Лучшей практикой является установка пользовательский материал только для" /usr/local ".
Ответ 3
Если вы хотите взять под контроль /usr/bin/
Вам нужно будет перезагрузить систему:
Сразу после звука загрузки, нажмите и удерживайте Command-R для загрузки в систему восстановления
Нажмите меню Утилиты и выберите Терминал
Наберите csrutil disable и нажмите возврат
Нажмите меню и выберите "Перезагрузить"
После внесения изменений обязательно включите SIP! Это многое делает для защиты вашей системы. (Те же шаги, что и выше, за исключением типа: csrutil enable)
Ответ 4
Если после вызова "csrutil disabled" ваша команда по-прежнему не работает, попробуйте в терминале "sudo", например:
sudo mv geckodriver /usr/local/bin
И это должно работать.