rsync mengatur pemilik grup, izin grup

10

Saya ingin menggunakan rsync untuk mentransfer file dari komputer saya ke sistem Linux jarak jauh. Terlepas dari kepemilikan grup file lokal, saya ingin mengatur nilai-nilai ini di sisi jarak jauh.

Jika saya menggunakan sistem Linux jarak jauh, saya dapat membuat direktori dan mengatur kepemilikan dan izin sebagai:

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

Jika saya membuat direktori secara lokal dan kemudian menggunakan rsync (ingat, saya tidak punya my_group secara lokal), saya lakukan:

rsync -ae ssh --chmod=ug+rw,Dug+rwx my_directory remoteserver:dest

Itu bekerja, tapi saya tidak tahu cara mengatur pemilik grup melalui rsync. Jika saya melakukan chmod g+s dest, my_directory memiliki pemilik grup yang benar tetapi semua file di dalamnya memiliki pemilik grup yang salah.

ChrisInEdmonton
sumber
Hai @ChrisInEdmonton, apakah Anda menemukan cara untuk membuat pekerjaan ini pada akhirnya? Saya sekarang dihadapkan dengan masalah yang sama, saya menjalankan cygwin ke file rsync dari windows ke kotak linux tetapi tidak dapat mengatur id grup yang benar dari file baru yang dikirim melalui: rsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ [email protected]:/var/prox/File mendarat sebagai john: john bukannya john: projx ( di mana projx adalah nama grup)
John
1
Saya baru saja menemukan rsync 3.1 termasuk --groupmap=*:group-name'.. tepat setelah saya diposting ha.
John

Jawaban:

8

Tepat saat ini, saya sedang mencari cara untuk melakukan ini dalam operasi rsync sendiri, sebagai lawan dalam operasi selanjutnya. Saya ingin beberapa file tidak dapat dibaca dunia dan menetapkan grup, sehingga membatasi akses ke proses server jauh dalam grup itu. Tetapi saya belum menemukan satu.

Satu-satunya hal yang dapat saya bayangkan adalah:

  1. gunakan --delay-update untuk membuat menempatkan file jarak jauh dalam tugas operasi yang lebih atomik dan instan
  2. g + rwx, o + rwx dalam opsi rsync --chmod

lalu jalankan:

ssh remoteserver chgrp -R {groupname} /my/dest/folder/* && \
chmod -R o-rwx /my/dest/folder/*

sumber
Ya, saya pikir itulah yang akan kita lakukan. Saya terkejut tidak ada cara Anda atau saya bisa menemukan ini hanya dengan rsync, tapi hei.
ChrisInEdmonton
6

Saya pikir flag -p hilang dari perintah Anda ..

--chmod

Opsi ini memberi tahu rsync untuk menerapkan satu atau lebih string "chmod" yang dipisahkan koma dengan izin file dalam transfer. Nilai yang dihasilkan diperlakukan seolah-olah itu adalah izin yang diberikan pihak pengirim untuk file, yang berarti bahwa opsi ini tampaknya tidak berpengaruh pada file yang ada jika --perma tidak diaktifkan .

h3.
sumber
1
The -pbendera secara implisit dimasukkan sebagai bagian dari -a(arsip) pilihan.
Anthony Geoghegan