
Я нашел здесь похожие вопросы, но предоставленные на них ответы не решают мою проблему.
Если я сделаю:
sudo chown <username> main.m
Я получаю сообщение об ошибке «Операция не разрешена».
Общее решение предыдущих ошибок было следующим:
sudo chflags nouchg main.m
для очистки флага блокировки. Однако после этого я все еще не могу chown-файл. Я также пробовал:
chflags noschg main.m
в однопользовательском режиме безуспешно - получаю ошибку «Операция не разрешена».
Если у кого-то есть какие-то мысли, мне было бы интересно.
решение1
Файлы Mac можно защитить четырьмя способами: триразличные способы, о которых я знаю:
- Стандартные права собственности и разрешения Unix, такие как r/w/x для пользователя/группы/других, которые вы видите
ls -l
и исправляете с помощьюchown(1)
иchmod(1)
. - Флаги файлов, такие как
uchg
иschg
, которые вы видите с помощьюls -lO
и исправляете с помощьюchflags(1)
. Старые метаданные Finder "Бит блокировки", которые вы видите с помощьюНеважно,GetFileInfo filename
. Вы также можете увидеть наличие метаданных Finder, но не их значение, с помощьюls -l@
. Вы можете исправить это с помощьюSetFile(1)
.uchg
теперь это отображено на флаге.- Списки контроля доступа (ACL), которые вы видите
ls -le
и исправляете с помощью аргументов, связанных с ACL, дляchmod(1)
.
Давайте посмотрим, что не так с вашим файлом, объединив все эти флаги в ls
:
ls -lO@e main.m
Похоже, вы уже знаете, как справиться с пунктами 1 и 2.
Если вы видите ACL (#4), вы можете исправить это с помощью аргументов, связанных с ACL, для chmod(1)
.
Если вы все еще в затруднении, обновите свой ответ выводом той комбинированной ls
команды, которую я предложил выше, чтобы мы могли увидеть, что происходит.