Saya memiliki layanan rsync yang menyinkronkan file dari mesin jarak jauh ke mesin yang menjatuhkannya pada drive jaringan.
Saya perlu file yang disalin untuk mengambil izin asli dari folder tujuan.
Proses sinkronisasi berjalan dengan baik, tetapi setelah selesai, saya tidak dapat mengakses beberapa folder - Izin Ditolak.
Saya masuk sebagai admin domain; itu tidak akan memungkinkan saya untuk memodifikasi izin pada folder tersebut, baik. Apa yang menyebabkannya?
jalankan perintah:
rsync.exe -v -rlt -z --delete "src_path" "dst_path"
windows
permissions
rsync
avguchenko
sumber
sumber
Jawaban:
(dari http://www.samba.org/ftp/rsync/rsync.html )
Singkatnya: untuk memberikan file tujuan (lama dan baru) izin sumber, gunakan
--perms
.Untuk memberi file baru izin tujuan-default (sambil membiarkan file yang ada tidak berubah), pastikan bahwa
--perms
opsi tidak aktif dan gunakan--chmod=ugo=rwX
(yang memastikan bahwa semua bit yang tidak bertopeng diaktifkan).Jika Anda ingin membuat perilaku yang terakhir ini lebih mudah diketik, Anda bisa mendefinisikan alias popt untuknya, seperti meletakkan baris ini di file ~ / .popt (berikut ini mendefinisikan opsi -Z, dan termasuk --no- g untuk menggunakan grup default dari dir tujuan):
sumber
Keamanan "posix" Cygwin telah menyebabkan saya banyak masalah dengan izin file Windows NTFS - bahkan digunakan
--no-perms
dengan rsync.Saya menemukan bahwa file / folder yang baru dibuat tidak mewarisi dengan benar izin default, tetapi setiap file / folder berakhir dengan banyak
<not inherited>
entri di file / folder Windows Keamanan canggih. (Dan masalah ini bukan hanya terkait rsync).Saya menemukan posting terkait ini dan tautan ini sangat membantu dalam cara mengatasi masalah ini menggunakan
noacl
opsi dalam/etc/fstab
file cygwin . Kelemahan dari solusi ini adalah bahwa cygwin kehilangan kemampuan untuk mengatur izin file / folder, tetapi dalam banyak kasus ini tidak penting.(Googling topik ini Anda mungkin akan menemukan referensi untuk menetapkan variabel lingkungan CYGWIN = NONTSEC, tapi ini untuk cygwin v1.5 dan tidak berfungsi di cygwin v1.7 dan seterusnya.)
sumber
Pada Windows dengan DeltaCopy saya dapat membuatnya bekerja dengan:
Itu bekerja bahkan dengan
--recursive
sumber
rsync, setidaknya di Cygwin memiliki sakelar berikut:
-A, --acls melestarikan ACL (menyiratkan --perms)
Versi Cygwin saya adalah:
CYGWIN_NT-6.3 1.7.29 (0.272 / 5/3) 2014-04-07 13:46 x86_64 Cygwin
Semoga ini membantu!
sumber
Jawaban berperingkat teratas hanya berfungsi jika Anda menggunakan rsync over ssh ke windows. Jika Anda menggunakan daemon cygwin rsync hanya menggunakan noacl di / etc / fstab tidak membantu, untuk alasan apa pun itu tidak menghormati warisan bahkan jika Anda menyingkirkan pengguna dan mencoba noacl, menimpa, dll. Hal ini tampaknya terjadi jika Anda rsyncing ke drive tingkat atas dan gunakan path = / cygdrive / apa pun di /etc/rsyncd.conf. Sebagai gantinya, Anda perlu membuat titik mount terpisah di / etc / fstab dan menggunakannya di rsyncd.conf Anda sebagai gantinya:
di /etc/rsyncd.conf, Anda akan memiliki sesuatu seperti ini:
Kemudian saya harus me-reboot sistem windows, hanya me-restart layanan rsync saja sepertinya tidak membantu, ia terus melempar chroot dan chdir error (walaupun / d_drive sudah di-mount dan menggunakan chroot = false dan saya bisa menulis ke sana). Kemudian ketika Anda masuk ke sistem windows gunakan:
sumber
Di masa lalu saya baru saja menetapkan ulang izin di Windows untuk pengguna saya saat ini kemudian menggunakan
takeown
pada prompt perintah yang ditinggikan sebagai:takeown /f <NameOfFolder> /r /d Y
Tentu saja, jika Anda menggunakan
rsync
flag yang benar di tempat pertama maka ini tidak perlu tetapi jika Anda tidak ingin menjalankan kembalirsync
untuk file yang sudah Anda salin maka saya akan merekomendasikan ini.sumber
correct rsync flags
> dan apa yang akan terjadi?Saya punya masalah dengan ini
rsnapshot
, yang menggunakan rsync untuk cadangan. Saya menimpanya menghapus--relative
darirsync_long_args
. Setelah itu folderc
untuk disk itu sendiri dengan izin aneh tidak dibuat.sumber