jalankan rsync sebagai root tetapi pertahankan kepemilikan pengguna

36

Saya ingin membuat cadangan file pengguna dari satu server ke server lain dengan rsync. tapi saya perhatikan bahwa folder pengguna berubah menjadi root. bagaimana saya bisa menjaga izin pengguna dengan rsync (berjalan dengan root)?

edotan
sumber
rsync perlu dijalankan sebagai root ketika Anda membuat salinan drive serta ketika Anda menyalin file kembali ke drive. Jika Anda melakukan salah satu langkah sebagai pengguna dengan izin lebih rendah, maka file root akan didemosiasikan ke pengguna tersebut.
Eric Leschinski

Jawaban:

46

Gunakan -abendera, yang mencakup antara lain, opsi -odan -g, yang melindungi pemilik dan grup. Ini mengharuskan Anda menjalankan rsyncsebagai root.

Juga lihat man rsync.

Sven
sumber
1
Apakah itu juga mungkin tanpa menjadi root? Apakah ada opsi untuk menyimpan pemetaan dalam file sespan terpisah?
thomas.mc.work
1
Ketinggalan komentar ini. Tidak, itu tidak berfungsi tanpa menjadi rootkarena Anda tidak diizinkan untuk mengubah pemilik ke orang lain selain pengguna Anda sendiri. File pemetaan tidak akan membantu sama sekali dengan ini.
Sven
15

Menjaga izin dicapai melalui mode "arsip" -a,. Contoh umum adalah -avz:

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

Ini memastikan bahwa tautan simbolik, perangkat, atribut, izin, kepemilikan, dll. Dipertahankan dalam transfer. Selain itu, kompresi akan digunakan untuk mengurangi ukuran porsi data transfer.

Jeremy L
sumber
5

Jika Anda menggunakan rsync untuk cadangan, saya benar-benar dapat merekomendasikan menggunakan rsnapshot sebagai gantinya (menggunakan rsync). Ini memutar cadangan dan menggunakan tautan keras sehingga Anda dapat melihat perbedaan antara cadangan harian Anda (tetapi folder masih terlihat memiliki konten lengkap). Saya menggunakan ini untuk membuat cadangan server Windows dan Linux di tempat kerja. Sempurna untuk kita!

Simon Fredriksson
sumber