запустите rsync от имени пользователя root, но сохраните права собственности пользователя

36

Я хотел бы сделать резервную копию пользовательских файлов с одного сервера на другой с помощью rsync. но я заметил, что пользовательские папки меняются на корневые. Как я могу сохранить права пользователя с помощью rsync (работает от имени пользователя root)?

edotan
источник
rsync должен запускаться с правами суперпользователя при создании копии диска, а также при копировании файла обратно на диск. Если вы выполните любой из этих действий как пользователь с более низким разрешением, корневые файлы будут понижены в правах для этого пользователя.
Эрик Лещинский

Ответы:

46

Используйте -aфлаг, который включает в себя, среди прочего, параметры -oи -g, который сохраняет владельцев и группы. Это требует, чтобы вы работали rsyncот имени пользователя root.

Также смотрите man rsync.

Свен
источник
1
Это тоже возможно без рута? Есть ли возможность сохранить сопоставление в отдельном файле коляски?
thomas.mc.work
1
Пропустил этот комментарий. Нет, это не работает, rootпотому что вы не можете сменить владельца на кого-то другого, кроме вашего собственного пользователя. Файл сопоставления вообще не поможет с этим.
Свен
15

Сохранение разрешений достигается в режиме «архив» -a. Общий пример -avz:

rsync -avz foo:src/bar/ /data/bar

Это гарантирует, что символические ссылки, устройства, атрибуты, разрешения, владельцы и т. Д. Будут сохранены при передаче. Кроме того, сжатие будет использоваться для уменьшения размера порций данных при передаче.

Джереми Л
источник
5

Если вы используете rsync для резервного копирования, я действительно могу порекомендовать использовать rsnapshot (он использует rsync). Он вращает резервные копии и использует жесткие ссылки, чтобы вы могли видеть различия между вашими ежедневными резервными копиями (но папки по-прежнему выглядят так, как будто имеют полное содержимое). Я использую это для резервного копирования серверов Windows и Linux на работе. Идеально для нас!

Саймон Фредрикссон
источник