Solusi 1:
Versi 3.1.0 dari rsync memperkenalkan --usermap
dan --groupmap
disebutkan oleh Thomas, tetapi juga opsi kenyamanan --chown
, yang bekerja dengan baik untuk skenario Anda.
--chown=USER:GROUP
This option forces all files to be owned by USER with group GROUP.
This is a simpler interface than using --usermap and --groupmap directly,
but it is implemented using those options internally, so you cannot mix them.
If either the USER or GROUP is empty, no mapping for the omitted user/group will
occur. If GROUP is empty, the trailing colon may be omitted, but if USER is
empty, a leading colon must be supplied.
If you specify "--chown=foo:bar, this is exactly the same as specifying
"--usermap=*:foo --groupmap=*:bar", only easier.
Juga, -o
dan -g
opsi diperlukan. Mengecualikannya akan gagal memperbarui atributnya masing-masing, tetapi tidak menghasilkan kesalahan.
rsync -og --chown=cmsseren:cmsseren [src] [dest]
Ini disebutkan secara tidak langsung di halaman manual, yang menyatakan bahwa --chown
opsi "diimplementasikan menggunakan --usermap
dan --groupmap
secara internal", dan:
Untuk
--usermap
opsi untuk memiliki efek apa pun,-o
(--owner
) opsi harus digunakan (atau tersirat), dan penerima harus dijalankan sebagai pengguna super (lihat juga--fake-super
opsi).Untuk
--groupmap
opsi untuk memiliki efek apa pun,-g
(--groups
) harus digunakan (atau tersirat), dan penerima harus memiliki izin untuk menyetel grup tersebut.
Solusi 2:
Kedengarannya seperti itu bekerja dengan benar. Gunakan --owner
dan --group
untuk melestarikan (not set) nama pemilik dan grup... artinya Anda tidak ingin mereka berubah setelah transfer.
Jika Anda tidak menggunakan opsi ini, pengguna dan grup akan diubah menjadi pengguna pemanggil di pihak penerima. Jika Anda ingin menentukan pengguna lain, Anda perlu menambahkan chown
perintah ke skrip Anda.
-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...
-g, --group
This option causes rsync to set the group of the destination file to be the same as
the source file. If the receiving program is not running as the super-user (or if
--no-super was specified), only groups that the invoking user on the receiving side
is a member of will be preserved. Without this option, the group is set to the default
group of the invoking user on the receiving side...
man rsync
Solusi 3:
Versi terakhir (setidaknya 3.1.1) rsync memungkinkan Anda menentukan "kepemilikan jarak jauh":
--usermap=tom:www-data
Mengubah kepemilikan tom menjadi www-data (alias PHP/Nginx). Jika Anda menggunakan Mac sebagai klien, gunakan minuman untuk memutakhirkan ke versi terakhir. Dan di server Anda, unduh sumber arsip, lalu "buat"!