GNU/Linux >> Belajar Linux >  >> Linux

Masalah perintah rsync, izin pemilik dan grup tidak berubah

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"!


Linux
  1. Cara Menyalin File Dan Mengubah Kepemilikan, Izin Pada Saat Yang Sama

  2. Cara Menggunakan Perintah chmod (Ubah Mode) di Linux

  3. Garis miring dan perintah rsync

  1. Cara Mengubah Izin dan Pemilik melalui Command Line

  2. Diutamakan Pengguna Dan Pemilik Grup Dalam Izin File?

  3. Bagaimana saya bisa mengurutkan berdasarkan pemilik dan grup?

  1. 12 Contoh Perintah Cown Linux untuk Mengubah Pemilik dan Grup

  2. Ubah pemilik dan grup di C?

  3. Cara yang lebih cepat untuk mengubah pemilik/grup secara rekursif?