uruchom rsync jako root, ale zachowaj własność użytkownika

36

Chciałbym wykonać kopię zapasową plików użytkownika z jednego serwera na drugi za pomocą rsync. ale zauważyłem, że foldery użytkowników zmieniają się na root. jak mogę zachować uprawnienia użytkownika za pomocą rsync (uruchamianego przez root)?

edotan
źródło
rsync musi być uruchomiony jako root podczas tworzenia kopii dysku, a także podczas kopiowania pliku z powrotem na dysk. Jeśli wykonasz jeden z tych kroków jako użytkownik o niższych uprawnieniach, pliki root zostaną zdegradowane do tego użytkownika.
Eric Leschinski

Odpowiedzi:

46

Użyj -aflagi, która obejmuje między innymi opcje -oi -gktóra chroni właścicieli i grupy. Wymaga to uruchomienia rsyncjako root.

Zobacz także man rsync.

Sven
źródło
1
Czy to również możliwe bez rootowania? Czy istnieje opcja przechowywania mapowania w osobnym pliku sidecar?
thomas.mc.work
1
Brakuje tego komentarza. Nie, to nie działa bez bycia, rootponieważ nie możesz zmienić właściciela na nikogo innego niż własnego użytkownika. Plik odwzorowania nie pomógłby przy tym.
Sven
15

Utrzymanie uprawnienia uzyskuje się poprzez tryb „archiwum” -a. Typowym przykładem jest -avz:

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

Zapewnia to zachowanie dowiązań symbolicznych, urządzeń, atrybutów, uprawnień, praw własności itp. Podczas przesyłania. Dodatkowo zostanie zastosowana kompresja w celu zmniejszenia rozmiaru części danych transferu.

Jeremy L.
źródło
5

Jeśli używasz rsync do tworzenia kopii zapasowych, naprawdę mogę polecić użycie rsnapshot (używa rsync). Obraca kopie zapasowe i używa twardych łączy, dzięki czemu można zobaczyć różnice między codziennymi kopiami zapasowymi (ale foldery nadal wyglądają, jakby zawierały całą zawartość). Używam tego do tworzenia kopii zapasowych serwerów Windows i Linux w pracy. Idealny dla nas!

Simon Fredriksson
źródło