Để xử lý ACL cho Windows với Cygwin rsync


10

Tôi đang chạy một rsynclệnh, sao chép các tệp của tôi từ máy chủ sang máy Windows của tôi như:

rsync -rt --partial-dir=".rsync" --del rsync://server/a/ a/

Bất cứ khi nào lệnh này tạo một thư mục, nó có xu hướng tạo một thư mục có ACLs / quyền điên. Đối với tôi, nó có xu hướng tạo ra mười <not inherited>mục, với một mục từ chối cho người dùng đã chạy rsynclệnh và những mục khác cũng không có nhiều ý nghĩa. Điều này thậm chí xảy ra bằng cách sử dụng --chmod=ugo=rwXtùy chọn, mà một chủ đề tương tự đề xuất.

Tôi có thể làm gì để ngăn chặn việc rsynccố gắng thiết lập quyền (và chỉ để lại quyền cho thừa kế ACL trong Windows)?

Câu trả lời:


12

Gắn thư mục trong câu hỏi với noacltùy chọn, như được mô tả trong hướng dẫn .

(Và nếu bạn muốn biết lý do tại sao việc ánh xạ quyền Unix sang Windows ACL không đơn giản, hãy xem tại đây .)


noaclkhông ngăn chặn các quyền điên, nhưng vì nó giả mạo các quyền với bit "chỉ đọc", tôi nhận được một loạt các thư mục chỉ đọc một phần kỳ lạ. Đây là một cải tiến.
palswim

1
Trên thực tế, có vẻ như tôi nhận được triệu chứng "chỉ đọc một phần" đó trên bất kỳ thư mục nào (dù có rsynctạo ra hay không). Có vẻ như Windows đang nói rằng các thư mục không có thuộc tính chỉ đọc .
palswim

2
Câu trả lời của ak2 rất hữu ích, nhưng phải mất khá nhiều thời gian để tìm cách thiết lập noaclin / etc / fstab đúng cách. Tôi thấy liên kết này khá hữu ích. Sử dụng đã noaclkhắc phục sự cố rsync của tôi - cảm ơn.
đạp xe

1
@miking đã đưa ra một gợi ý hay với liên kết đó và noacltùy chọn. Đã không làm việc với tôi với MobaXterm (di động), vì điều đó dường như được tạo lại /etc/fstabmỗi lần bắt đầu. Tôi một phần có xung quanh mà đặt mount -c /drives -o binary,posix=0,user,auto,noaclvào của tôi .bashrc. "Một phần" vì điều này chỉ ảnh hưởng đến "ký tự ổ đĩa Windows" (chứ không phải ví dụ /home).
Izzy

1
@SimonEast - Tìm thấy điều này trong khi bạn trả lời. Bạn có thể thử điều này và trả lời? - developers.redhat.com/blog/2018/02/07/ trên - # Nếu bạn phân phối không có tệp fstab, điển hình cho cwRsync, điều đó dễ dàng được sửa. Tạo tệp tại $MY_RSYNC_DIST_DIR/etc/fstabvà dán nội dung sau:none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
Alex S
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.