Почему chown сообщает" операция не разрешена " в OS X?

Я пытаюсь сделать следующее На моем Mac (10.6.7):

sudo chown myusername:wheel ./entries

но Unix / Mac возвращает "операция не разрешена". Когда Я ls -lash файл виновника, он выглядит следующим образом:

8 -rwxrwxrwx   1 myusername  staff   394B Apr 26 23:26 entries

Я пробовал sudo и sudo su; ничего не работает. Есть идеи, что случилось?

Я пытаюсь chmod файлы, которые я скопировал из моего старого ящика Ubuntu. Большинство файлов успешно chmod ' ed рекурсивно; только этот застрял, и я не понимаю, почему.

17
задан G-Man
01.01.2023 15:01 Количество просмотров материала 2531
Распечатать страницу

2 ответа

да, Mac имеет множество улучшений Unix в области файлов. Игнорируя все ресурсов вещь, которая больше не используется, есть:

  • стандартные разрешения Unix ugo rwx и так далее. Применяются обычные инструменты Unix.
  • ACLs, видимый с ls -le и переменчивый с chmod [ -a | +a | =a ].
  • флаги просмотр ls -lO и переменчивый с chflags.
  • расширенные атрибуты, видимой с ls -l@ (только ключи атрибутов) и видимые и изменяемые с помощью xattr. (Используйте xattr -h если man xattr ничего вам не дает.)
  • начиная с OS X 10.11 "El Capitan",Защита Целостности Системы (SIP) дополнительно защищает некоторые файлы от изменений в обычных процессах, даже при использовании sudo запустить как root. Будут перечислены файлы, защищенные SIP by ls -lO как restricted флаг.

операции с файлом можно запретить из-за разрешений Unix, списков управления доступом, флагов файлов или SIP. Чтобы полностью разблокировать файл:

sudo chmod -N file        # Remove ACLs from file
sudo chmod ugo+rw file    # Give everyone read-write permission to file
sudo chflags nouchg file  # Clear the user immutable flag from file
sudo chflags norestricted file  # Remove the SIP protection from file

если включена защита целостности системы (SIP),sudo chflags norestricted также возвращает ошибку "операция не разрешена". Чтобы очистить restricted флаг, который нужно загрузить в восстановление macOS и либо run chflags norestricted из терминала (возможно, вам придется сначала использовать дисковую утилиту для разблокируйте и смонтируйте загрузочный диск, а затем помните, что ваши файлы будут находиться под /Volumes/Macintosh HD или как там называется ваш загрузочный диск) или отключить SIP вообще, а затем перезагрузка и sudo chflags norestricted должно работать. Имейте в виду, однако, что будущие обновления ОС, скорее всего, восстановить restricted флаг для любых файлов, из которых вы его удалили.

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

обратите внимание, что если ls -lO показывает schg флаг установлен, вы должны войти в однопользовательский режим, чтобы удалить его. Я не собираюсь вдаваться в это здесь, поскольку есть большие вопросы о том, почему в файле установлен этот флаг, и почему вы пытаетесь его испортить и каковы будут последствия.

76
отвечен Old Pro 2023-01-02 22:49

у меня была та же проблема. Оказывается, файлы-нарушители были помечены ОС как "заблокированные". Я нашел это решение, и он решил проблемы в считанные секунды:

http://explanatorygap.net/2005/07/10/unlocking-files-recursively-from-the-command-line/

Кажется rm команда изменилась в Tiger так, что если вы используете rm -Rf с повышенными привилегиями, это будет au

18
отвечен 2023-01-03 01:06

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх