Примечание: этот вопрос начал разрастаться, поэтому я переписал его.
У меня есть папка, которую я пытаюсь восстановить из резервной копии Time Machine. Использование cp -R
работает нормально, но некоторые папки не могут быть восстановлены ни с помощью Time Machine, ни с помощью Finder.
Другие пользователи сообщили об аналогичных ошибках, и был предложен обходной путь cp -R
(например, Восстановление с Time Machine - Ошибка прав доступа). Но я хотел понять:
- Почему
cp -R
работает, когда Finder и пользовательский интерфейс Time Machine не работают. - Могу ли я предотвратить ошибки, изменив права доступа к файлам перед резервным копированием.
Кажется, действительно есть некоторые разрешения, с которыми работает Finder, а некоторые - нет. Я сузил ошибки до папок с пользователем ben
(это я) и групповым wheel
.
Вот упрощенное воспроизведение. У меня есть четыре папки с комбинациями владелец / группа, которые я видел до сих пор:
ben ~/Desktop/test $ ls -lea
total 16
drwxr-xr-x 7 ben staff 238 27 Nov 14:31 .
drwx------+ 17 ben staff 578 27 Nov 14:29 ..
0: group:everyone deny delete
-rw-r--r--@ 1 ben staff 6148 27 Nov 14:31 .DS_Store
drwxr-xr-x 3 ben staff 102 27 Nov 14:30 ben-staff
drwxr-xr-x 3 ben wheel 102 27 Nov 14:30 ben-wheel
drwxr-xr-x 3 root admin 102 27 Nov 14:31 root-admin
drwxr-xr-x 3 root wheel 102 27 Nov 14:31 root-wheel
Каждый содержит один файл с именем file
с тем же владельцем / группой:
ben ~/Desktop/test $ cd ben-staff
ben ~/Desktop/test/ben-staff $ ls -lea
total 0
drwxr-xr-x 3 ben staff 102 27 Nov 14:30 .
drwxr-xr-x 7 ben staff 238 27 Nov 14:31 ..
-rw-r--r-- 1 ben staff 0 27 Nov 14:30 file
В резервной копии они выглядят так:
ben /Volumes/Deimos/Backups.backupdb/Ben’s MacBook Air/Latest/Macintosh HD/Users/ben/Desktop/test $ ls -leA
total 16
-rw-r--r--@ 1 ben staff 6148 27 Nov 14:34 .DS_Store
0: group:everyone deny write,delete,append,writeattr,writeextattr,chown
drwxr-xr-x@ 3 ben staff 102 27 Nov 14:51 ben-staff
0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
drwxr-xr-x@ 3 ben wheel 102 27 Nov 14:51 ben-wheel
0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
drwxr-xr-x@ 3 root admin 102 27 Nov 14:52 root-admin
0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
drwxr-xr-x@ 3 root wheel 102 27 Nov 14:52 root-wheel
0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
Из них ben-staff
можно восстановить с помощью Finder без ошибок. root-wheel
и root-admin
запрашивают мой пароль и затем восстанавливают без ошибок. Но ben-wheel
не запрашивает мой пароль и выдает ошибку:
The operation can’t be completed because you don’t have permission to access “file”.
Интересно, что я могу восстановить file
из этой папки, перетаскивая его непосредственно на мой локальный диск (вместо перетаскивания его родительской папки), но когда я делаю это, его разрешения изменяются на ben
/staff
.
Вот разрешения после восстановления для трех папок, которые работали правильно, и файл из ben-wheel
который был изменен на ben
/staff
.
ben ~/Desktop/test-restore $ ls -leA
total 16
-rw-r--r--@ 1 ben staff 6148 27 Nov 14:46 .DS_Store
drwxr-xr-x 3 ben staff 102 27 Nov 14:30 ben-staff
-rw-r--r-- 1 ben staff 0 27 Nov 14:30 file
drwxr-xr-x 3 root admin 102 27 Nov 14:31 root-admin
drwxr-xr-x 3 root wheel 102 27 Nov 14:31 root-wheel
Кто-нибудь может объяснить это поведение? Почему Finder и пользовательский интерфейс Time Machine ломаются с разрешениями ben
/ wheel
? И почему cp -R
работает (даже без sudo
)?