rsync menggertak ACL tujuan untuk bersenang-senang

1

Saya memiliki ACL berikut yang dikonfigurasi pada direktori ( .ssh ) di tujuan rsync saya:

# file: .ssh
# owner: jsmith
# group: jsmith
user::rwx
user:backup:r-x
group::---
group:backup:r-x
mask::r-x
other::---
default:user::rwx
default:user:backup:r-x
default:group::---
default:group:backup:r-x
default:mask::r-x
default:other::---

saya menggunakan rsync dengan opsi -aXzv untuk mentransfer .ssh direktori antara dua server, dan setelah transfer, tujuannya memiliki ACL berikut:

# file: .ssh
# owner: jsmith
# group: jsmith
user::rwx
user:backup:r-x            #effective:---
group::---
group:backup:r-x           #effective:---
mask::---
other::---
default:user::rwx
default:user:backup:r-x
default:group::---
default:group:backup:r-x
default:mask::r-x
default:other::---

Direktori sumber memiliki ACL ini:

# file: .ssh
# owner: jsmith
# group: jsmith
user::rwx
group::---
other::---

Perhatikan tujuannya mask telah berubah dari r-x (sebelum rsync) ke --- (setelah rsync).

Mengapa hal ini terjadi, dan bagaimana saya bisa menggunakan rsync untuk mempertahankan pengguna sumber, grup, dan izin lainnya sambil mempertahankan ACL yang diperluas tujuan sehingga backup pengguna memiliki izin eksekusi dan tulis penuh setelah operasi rsync?

EDIT: Kedua server menjalankan rsync 3.0.9, kedua sistem file server memiliki ACL diaktifkan. Server sumber menggunakan ext3 dan server tujuan menggunakan ext4.

Xenon
sumber

Jawaban:

3

Topeng tujuan diubah menjadi --- karena Anda menjalankan rsync dengan -a opsi, yang menyiratkan -p / --perms. Apa ini artinya itu rsync akan mencoba untuk melestarikan izin sumber, yang kemudian secara efektif mencoba melakukan a chmod 700 di tempat tujuan. Lihat https://serverfault.com/questions/352783/why-do-chmod1-on-the-group-affect-the-acl-mask/352915#352915 untuk penjelasan mengapa mengubah izin grup dengan chmod akan mengubah topeng ACL.

Adapun untuk menghormati ACL tujuan dan menjaga akses ke grup "cadangan", mungkin berjalan bersama --no-p --chmod=g=rwX? Ini akan membuat file baru menggunakan ACL default direktori, dan memperbarui file tanpa mengubah izin mereka - yaitu, itu hanya akan berfungsi jika izin file yang ada tidak berubah.

Davor Cubranic
sumber