2

Я пытаюсь скопировать некоторый файл в папку /usr /share, но терминал сказал, что операция не разрешена, даже если я делаю это с помощью sudo.
sudo cp ~/Downloads/kellys.vim /usr/share/vim/vim73/colors/
результат
cp: /usr/share/vim/vim73/colors/kellys.vim: Operation not permitted
Когда я пытаюсь изменить разрешение этой папки, она возникла с той же проблемой. Я запускаю EI Capitan на Mac. Я долго гуглял, но все еще растерялся. Как мне решить проблему?

3 ответа3

3

Похоже, проблема, которая у вас возникла, больше связана с установкой Vim colorschemes.

Они могут быть установлены в ~/.vim/colors/ .

mkdir -p ~/.vim/colors
cp ~/Downloads/kellys.vim ~/.vim/colors/

И затем установите его с

:colorscheme kellys

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

Однако папка, которую вы можете изменить, - это /usr/local/share .

Так что вы можете вместо этого сделать

cp ~/Downloads/kellys.vim /usr/local/share/vim/vim73/colors/
0

Хотя другой ответ относительно SIP правильный, важно знать, почему Apple реализовала эту функцию безопасности в 10.11 и более поздних версиях.

Он предназначен для предотвращения вмешательства в критические системные процессы и (из того, что вы видели) в определенные файлы / места на диске. Файл rootless.conf определяет, что / где защищено в файловой системе. Это также означает, что больше не требуется функция «Fix Permissions Permissions». Для более глубокого обзора того, что делает SIP, пожалуйста, смотрите этот пост на Ask Different.

Вообще говоря, это плохая идея, чтобы постоянно отключать SIP. Что лучше, так это отключить его в режиме восстановления, внести изменения, а затем снова включить его. (К вашему сведению, сброс PRAM снова включит SIP.)

-1

Вам нужно отключить защиту целостности системы.

  1. перезапустить и использовать команду ⌘-R при загрузке
  2. откройте терминал и выполните команду: csrutil disable
  3. перезагрузить нормально
  4. ТЕПЕРЬ вы можете написать в /usr dir tree
  5. (необязательно) перезапустите снова, используйте команду ⌘-R при загрузке и выполните снова csrutil enable

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .