Вы перенесли файлы из резервной копии Time Machine, но теперь не можете их редактировать – даже владелец получает ошибку доступа? Это классическая ситуация при копировании через cp -p
вместо специализированных инструментов. Расскажу, как «разблокировать» файлы за пять минут и избежать подобных проблем в будущем.
Причина кроется в расширенных правах доступа (ACL), которые Time Machine добавляет к файлам для защиты резервных копий. Когда вы копируете через обычный cp
, эти ограничения сохраняются, и система продолжает считать файлы «запечатанными». В результате даже смена базовых разрешений через Finder или chmod
не помогает – нужно удалить «невидимый слой» защиты.
Шаг 1. Проверка расширенных прав доступа
Откройте Terminal и перейдите в папку с проблемными файлами. Выполните команду:
ls -laht terminal.md
Обратите внимание на плюс в конце строки прав (например, -rw-r--r--+
). Этот символ указывает на наличие ACL. Для детального просмотра:
ls -elaht terminal.md
В выводе вы увидите строку вида:
0: group:everyone deny write,delete,append,writeattr,writeextattr,chown
Это значит, что для группы «everyone» запрещены запись, удаление и другие операции – даже если основной владелец (вы) имеет права на редактирование.
Шаг 2. Удаление ACL через Terminal
Для сброса расширенных прав выполните:
chmod -N terminal.md
После этого проверьте результат:
ls -laht terminal.md
Плюс в конце должен исчезнуть. Если файлов много, используйте рекурсивное удаление (будьте осторожны – это действие нельзя отменить):
chmod -R -N ~/Documents
Важно:
- Если Terminal выдаёт ошибку «Operation not permitted», запустите его с правами администратора через
sudo chmod -N ...
(введите пароль при запросе). - Для папок сначала обработайте вложенные файлы, иначе система может блокировать доступ к содержимому.
Если не работает через Terminal
Иногда ACL «цепляются» особенно сильно. В таком случае:
- Откройте Finder, щёлкните правой кнопкой по файлу → «Свойства».
- В разделе «Общий доступ и права доступа» нажмите замок внизу для разблокировки.
- Удалите все записи в списке ACL (кроме вашего пользователя), затем добавьте их заново.
Профилактика ошибок при копировании
Чтобы в следующий раз не сталкиваться с ACL:
– Используйте rsync -a
вместо cp
– он корректно обрабатывает метаданные macOS.
– Добавьте флаг --chmod=ugo=rwX
для принудительного сброса прав:
rsync -a --chmod=ugo=rwX /source/path /destination/
– Перед массовым копированием проверьте один файл командой ls -e
– если видите ACL, сразу применяйте chmod -N
.
Стоит запомнить: Time Machine сохраняет не только данные, но и «состояние» системы на момент резервирования. Когда вы копируете файлы вручную, macOS пытается воссоздать оригинальную среду – отсюда и конфликты с правами. Для регулярной работы с резервными копиями рекомендую настроить автоматический сброс ACL через cron
или сторонние утилиты вроде BatChmod.
Если после всех манипуляций файлы всё ещё недоступны, проверьте их расширенные атрибуты:
lsattr terminal.md
Атрибут uchg
(защита от изменений) снимается командой:
chflags nouchg terminal.md
Не забывайте делать резервные копии перед массовым изменением прав – иногда ACL могут быть частью системной защиты (особенно для файлов в /System
или /Library
). Если столкнётесь с неочевидными ошибками, напишите в комментариях – разберёмся вместе.