Masalah perintah Rsync, izin pemilik dan grup tidak berubah


28

Saya mencoba mengatur pemilik dan grup melalui rsyncdan sepertinya tidak berfungsi.

Ini perintahnya:

sudo rsync -rlptDvz --owner=cmsseren --group=cmsseren /home/serena/public_html/ -e ssh root@ip:/home/cmsseren/public_html2/

File disinkronkan dengan benar tetapi tampaknya tidak mengubah pemilik dan grup.

Jawaban:


14

Kedengarannya seperti itu berfungsi dengan benar. Gunakan --ownerdan --groupuntuk melestarikan (tidak mengatur) 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 yang meminta pada sisi penerima. Jika Anda ingin menentukan beberapa pengguna lain, Anda perlu menambahkan chownperintah 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


1
Jadi, bagaimana saya bisa mengetahui pengguna dan grup secara remote? Melalui ssh? Bisakah Anda memberi tahu saya caranya? Saya memiliki akses root untuk kedua server. Saya tidak ingin menggunakan kunci ssh, tetapi katakan semua opsi yang Anda tahu, saya akan menghargainya. Terima kasih atas tanggapan cepat
Arnoldo Bazaldua

Perintahnya akan terlihat seperti ini: ssh root@ip 'chown -R cmsseren:cmsseren /home/serena/public_html2/*'
user3150166

Saya sudah mencobanya, tetapi tidak berhasil, pemilik dan penggunanya sama. Setelah membuat perintah itu mengatakan: stdin: bukan tty
Arnoldo Bazaldua

Sekarang berfungsi, masalah firewall. Sekarang saya hanya perlu mengotomatiskan input kata sandi untuk ssh dan rsync
Arnoldo Bazaldua

Saya akan memposting ini di pertanyaan lain, terima kasih atas bantuan Anda
Arnoldo Bazaldua

61

Versi 3.1.0 dari rsync memperkenalkan --usermapdan --groupmapdisebutkan oleh Thomas, tetapi juga opsi kenyamanan --chown, yang berfungsi 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, opsi -odan -gdiperlukan. Mengecualikan mereka akan gagal memperbarui atribut masing-masing, tetapi tidak menghasilkan kesalahan.

rsync -og --chown=cmsseren:cmsseren [src] [dest]

Ini disebutkan secara tidak langsung di halaman manual , yang menyatakan bahwa --chownopsi "diimplementasikan menggunakan --usermapdan secara --groupmapinternal", dan:

Agar --usermapopsi memiliki efek, opsi -o( --owner) harus digunakan (atau tersirat), dan penerima harus dijalankan sebagai pengguna super (lihat juga --fake-superopsi).

Agar --groupmapopsi memiliki efek, opsi -g( --groups) harus digunakan (atau tersirat), dan penerima harus memiliki izin untuk mengatur grup itu.


5
Mengapa -og wajib diisi? Tampaknya tidak masuk akal bagi saya tetapi itu juga diperlukan pada sistem saya.
Yai0Phah

4
@ FrankScience Setuju, sepertinya tidak masuk akal. Pertanyaan yang sama ditanyakan pada milis rsync . "Saya akan menyarankan bahwa dokumen untuk --chownsebaiknya menyebutkan --owner( --super) dan --groupdiperlukan" .
TachyonVortex

5

Versi terakhir (setidaknya 3.1.1) dari rsync memungkinkan Anda menentukan "kepemilikan jarak jauh":

--usermap=tom:www-data

Mengubah kepemilikan untuk data-www (alias PHP / Nginx). Jika Anda menggunakan Mac sebagai klien, gunakan minuman untuk meningkatkan ke versi terakhir. Dan di server Anda, unduh sumber arsip, lalu "buat" itu!


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.