Bagaimana cara mengatur izin tujuan dengan rsync (chown chmod)

13

Saya mencoba melakukan rsync lokal, dari titik mount ke folder lokal. Saya perlu mengatur pemilik, grup, dan izin ke pengaturan tertentu. Inilah yang saya gunakan:

 rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test

Saya berakhir dengan izin 760 pada direktori dan file, dan root: root on ownership (rsync dijalankan sebagai root).

Apa yang saya lakukan salah?

TIA

Roger Creasy
sumber
Apakah sistem file target mirip dengan NTFS, karena itu "Drive_D"?
Sami Kuhmonen
target filesystem ext4
Roger Creasy
Apakah menambahkan -p membantu?
Sami Kuhmonen
-p membuat chmod pada file yang dipindahkan berfungsi. Saya perlu menguji untuk memastikan tidak menimpa izin pada file yang ada. Terima kasih. Dan, saya masih memiliki masalah chown
Roger Creasy
1
Untuk itu Anda benar-benar perlu -ya saya pikir
Sami Kuhmonen

Jawaban:

19

rsync perlu diberi tahu bahwa Anda ingin mengatur izin dan informasi pemilik / grup. Adalah logis untuk berasumsi bahwa memiliki --chmodatau --chownakan mengatakan itu tetapi mereka tidak.

Agar izin untuk menyebar, Anda memerlukan bendera --permsatau -pdan untuk pemilik / grup Anda perlu --owner --groupatau -ogbendera untuk informasi pemilik / grup / izin yang akan ditetapkan.

Dokumentasi sedikit tidak jelas ditulis sehingga tidak jelas bagaimana izin ditangani dengan kombinasi yang berbeda atau jika file yang ada terpengaruh.

Sami Kuhmonen
sumber
masih belum jelas, karena berjalan sebagai sudo, yang perlu saya lakukan, docs linux.die.net/man/1/rsync menunjukkan bahwa Anda hanya dapat menetapkan tujuan yang sama dengan sumbernya. Masalahnya adalah, saya perlu mengaturnya untuk apa pengguna yang dicatat, misalnya$(whoami)
Brian Thomas
1

Saya menemukan versi StackOverflow dari pertanyaan yang sama ini menjadi lebih bermanfaat, karena tampaknya Roger dan saya memiliki rsyncs dengan preferensi berbeda untuk format --chmod(milik saya 3.1.3 dari paket Debian).

Seperti kata Sami, rsync perlu diberi tahu "izin", jadi sertakan -p, atau masukkan secara implisit dengan menggunakan -a. Tetapi kemudian, untuk mendapatkan perintah untuk benar-benar berjalan, Anda perlu (misalnya untuk direktori 755 dan file 644) --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r, daripada format "D755, F644".

FarFetchd
sumber