да, 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
флаг установлен, вы должны войти в однопользовательский режим, чтобы удалить его. Я не собираюсь вдаваться в это здесь, поскольку есть большие вопросы о том, почему в файле установлен этот флаг, и почему вы пытаетесь его испортить и каковы будут последствия.