Bagaimana rsync mempertahankan kepemilikan file bergantung pada dua hal:
-
Apakah Anda pengguna super (root) di tujuan?
Jika tidak, Anda tidak dapat membuat file dan direktori dengan pengguna lain selain milik Anda. -
Bendera opsi mana yang Anda gunakan?
-a
opsi termasuk -o, --owner
, -g, --group
pilihan yang dirancang untuk mempertahankan kepemilikan.
Pada tingkat sistem file, kepemilikan pengguna dan grup disimpan di UID resp. nomor GID. Ketika tidak ada pemetaan dari UID/GID ke nama pengguna dan nama grup, alat hanya akan menampilkan nomor tersebut.
Pengguna dan grup dengan nama yang sama dapat memiliki nomor UID/GID yang berbeda pada sistem yang berbeda.
Secara default rsync akan mencoba mencocokkan kepemilikan dengan nama pengguna resp. nama grup . Dengan kata lain saat pengguna vmail
adalah pemilik file pada sumbernya, rsync akan membuat pengguna vmail
juga pemilik di tempat tujuan (walaupun mereka memiliki nomor UID/GID yang berbeda).
Itu biasanya cukup tangguh dan paling dapat diprediksi oleh manusia karena kami biasanya tidak melihat kepemilikan dalam bentuk nomor UID/GID.
Saat tidak ada pengguna yang cocok vmail
hadir di tujuan jarak jauh, maka skenario mundur akan terjadi. Rsync kemudian akan mempertahankan nomor UID/GID yang sebenarnya dan nomor UID dari vmail
pengguna pada sumber akan digunakan untuk mengatur pemilik.
Itu harus mempertahankan kepemilikan yang benar saat Anda membalikkan arah rsync dan memulihkan cadangan.
man rsync
:
-o, --owner
This option causes rsync to set the owner of the destination file to be the same as the source file,
but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super
options). Without this option, the owner of new and/or transferred files are set to the invoking user
on the receiving side.
The preservation of ownership will associate matching names by default, but may fall back to using the
ID number in some circumstances (see also the --numeric-ids option for a full discussion).
--numeric-ids
With this option rsync will transfer numeric group and user IDs rather than using user and group names
and mapping them at both ends.
By default rsync will use the username and groupname to determine what ownership to give files. The
special uid 0 and the special group 0 are never mapped via user/group names even if the --numeric-ids
option is not specified.
If a user or group has no name on the source system or it has no match on the destination system, then
the numeric ID from the source system is used instead. See also the comments on the "use chroot" set‐
ting in the rsyncd.conf manpage for information on how the chroot setting affects rsync’s ability to
look up the names of the users and groups and what you can do about it.
Apa rsync
salinan adalah id pengguna numerik dari file, terlepas dari apakah itu ada di sistem target. Jika pengguna dengan id tersebut tidak ada, ls
dll. hanya akan menampilkan nomor itu alih-alih nama. Jika id pengguna itu milik nama pengguna lain di sistem target, pengguna ini sekarang akan memiliki file tersebut.
Pencadangan dan pemulihan akan berfungsi tanpa masalah dalam skenario ini.
Dengan kasus Anda secara khusus, masalah sebenarnya muncul ketika tiba waktunya untuk memulihkan file. Kuncinya adalah menentukan pemilik/grup yang diinginkan saat Anda menarik kembali file. --chown=vmail:vmail
Dengan asumsi bahwa Anda telah membuat vmail pengguna di mesin baru yang akan Anda pulihkan, Anda akan mengeluarkan sesuatu seperti berikut:
sudo rsync -av --chown=vmail:vmail --force --delete --progress [email protected]_backup_server:/home/user/backups/vmail/ /vmail/
Melakukannya dengan cara ini berarti tidak masalah siapa yang memiliki file di server cadangan selama Anda dapat melakukan rsync ke/dari pengguna tersebut (yang tersirat sudah benar dalam contoh Anda).