Как исправить права доступа после копирования файлов из Time Machine

Вы перенесли файлы из резервной копии 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 «цепляются» особенно сильно. В таком случае:

  1. Откройте Finder, щёлкните правой кнопкой по файлу → «Свойства».
  2. В разделе «Общий доступ и права доступа» нажмите замок внизу для разблокировки.
  3. Удалите все записи в списке 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). Если столкнётесь с неочевидными ошибками, напишите в комментариях – разберёмся вместе.

Добавить комментарий

Все поля обязательны к заполнению. Ваш адрес email не будет виден никому.

Новое
Интересное