Да, Mac имеет много улучшений Unix в области файлов. Не обращая внимания на целую ветвь ресурсов , которая больше не используется, есть:
- на стандартные разрешения Unix
ugo
rwx
и так далее. Применяются обычные инструменты Unix.
- ACL , с возможностью просмотра
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, будут перечислены ls -lO
как имеющие restricted
флаг и / или будут перечислены ls -l@
как имеющие com.apple.rootless
атрибут.
Вам может быть отказано в операциях с файлом из-за разрешений Unix, ACL, файловых флагов или 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
sudo xattr -d com.apple.rootless file # Remove SIP protection from file
Если защита целостности системы (SIP) включена, sudo chflags norestricted
а sudo xattr -d com.apple.rootless
также будет выдано сообщение об ошибке «Операция не разрешена». Чтобы снять флажок и / или атрибут, вам нужно загрузиться в macOS Recovery и запустить команды из Терминала (вам, возможно, придется сначала использовать Дисковую утилиту, чтобы разблокировать и смонтировать загрузочный диск, затем помните, что ваши файлы будут находиться под /Volumes/Macintosh HD
вашей загрузкой или вне зависимости от того, что вы загрузили имя диска) или вообще отключите SIP и затем перезагрузите компьютер, после чего команды должны работать. Имейте в виду, однако, что будущие обновления ОС, скорее всего, восстановят restricted
флаг и com.apple.rootless
атрибут всех файлов, из которых вы его удалили.
Отключение протокола SIP не рекомендуется, поскольку оно снимает большую защиту от вредоносных программ и случайных повреждений, а также не требуется, если вы можете просто снять защиту для каждого файла отдельно. Если вы отключите SIP, включите его снова после внесения изменений.
Обратите внимание, что, если ls -lO
показывает, что schg
флаг установлен, вы должны войти в однопользовательский режим, чтобы сбросить его. Я не буду вдаваться в подробности, потому что есть большие вопросы о том, почему в файле установлен этот флаг и почему вы пытаетесь с ним связываться и каковы будут последствия.
sudo chgrp wheel ./entries
?