Владение файлами / каталогами Linux: я могу скопировать файл, но не сделать резервную копию через unison

У меня есть вопрос о владении файлом / каталогом Linux, который позволяет мне копировать файл, используя cp, но не резервное копирование через утилиту unison, Проблема заключается в смене владельца временного файла unison. Я хотел бы знать, как это исправить.

Файл находится в структуре каталогов, которая выглядит следующим образом:

/.../A/B/C/D.txt

Владение и разрешения выглядят так:

A is root:root, 500 (rx)
B is me:root, 500 (rx)
C is me:root, 700 (rwx)
D.txt is me:root, 600 (rw)

Если я cp D.txt с идентичной принадлежащей и разрешенной файловой структурой на моем рабочем столе, которая начинается в B, все в порядке. С другой стороны, если я использую unison для копирования структуры каталогов, произойдет сбой при смене владельца файла ".unison.D.txt.nnnnn". Есть ли исправление?

UNISON 2.48.3 начал распространять изменения в 02:53:54.51 20 ноября 2018 года

[BGN] Копирование B/C/D.txt из /.../A в /home/me/Desktop/ [то есть в /home/me/Desktop/B/C/D.txt]

Ошибка: Ошибка в настройке владельца файла:
Операция не разрешена [chown(/home/me/Desktop/B/C/.unison.testing.txt.a14bcb4fe76cb8c262af6a50e2043619.unison.tmp)]

Ошибка [B/C/D.txt]: Ошибка в настройке владельца файла:
Операция не разрешена [chown(/home/me/Desktop/B/C/.unison.testing.txt.a14bcb4fe76cb8c262af6a50e2043619.unison.tmp)]

UNISON 2.48.3 завершил распространение изменений в 02:53:54.51 20 ноября 2018 года

Справочная информация: я пытаюсь использовать unison & incron для резервного копирования онлайн-файловой системы Keybase, которая существует на /run/user/1000/keybase/kbfs, Ниже этого каталога я обнаружил, что все папки принадлежат мне:root. Все каталоги в режиме 500 (rx), за исключением моего (/.../kbfs/private/me), который равен 700 (rwx). Все файлы в режиме 600 (rw). Я хочу, чтобы это отражалось на моем рабочем столе.

1 ответ

Решение

Проблема, похоже, не в унисон, но в том, что на одной стороне копии находится файловая система, управляемая базой ключей. Keybase позволяет мне записывать в его каталог и сообщать мне: владелец root, но когда unison пытается создать файл me: root на моем рабочем столе, происходит сбой. Я понимаю, что файловые системы могут в значительной степени сообщать обо всем, что они хотят в отношении разрешений, и вести себя так, как они хотят в отношении возможности чтения / записи / выполнения.

Решение для унисон заключается в использовании group = false чтобы он не пытался синхронизировать корневую собственность. В этом случае также необходимо perms = 0o1700 чтобы не пытаться установить биты прав доступа root или других пользователей.

Это работает, когда unison запускается из cli, но продолжает вызывать проблемы при использовании с incrond - но это уже другой вопрос...

Другие вопросы по тегам