Оставьте обработку ACL для Windows с Cygwin rsync


10

Я запускаю rsyncкоманду, копирую мои файлы с сервера на мой компьютер с Windows, например:

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

Всякий раз, когда эта команда создает каталог, она стремится создать каталог с безумными ACL / разрешениями. Для меня это имеет тенденцию создавать десять <not inherited>записей, с одной запрещающей записью для пользователя, который выполнил rsyncкоманду, а другие не имеют особого смысла. Это даже происходит с использованием --chmod=ugo=rwXопции, предложенной аналогичной веткой .

Что я могу сделать, чтобы вообще не rsyncпытаться устанавливать разрешения (и просто оставить разрешения для наследования ACL в Windows)?

Ответы:


12

Смонтируйте соответствующий каталог с помощью noaclопции, как описано в руководстве .

(И если вы хотите знать, почему сопоставление разрешений Unix с ACL Windows не является простым, см. Здесь .)


noaclдействительно предотвращает сумасшедшие разрешения, но так как он подделывает разрешения с помощью бита «только для чтения», я получаю кучу странных частичных каталогов, доступных только для чтения. Это улучшение.
Palswim

1
На самом деле, похоже, что я получаю этот симптом «частичного чтения только» в любом каталоге (независимо от того, rsyncсоздан он или нет). Похоже, Windows говорит, что каталоги не имеют свойства только для чтения .
Palswim

2
Ответ ak2 был очень полезен, но потребовалось немало гугля, чтобы найти, как правильно настроить noacl/ etc / fstab. Я нашел эту ссылку весьма полезной. Использование noaclфиксированного моей RSync проблемы - спасибо.
Миккинг

1
@miking уже дал хороший совет с этой ссылкой и noaclопцией. У меня не получилось с MobaXterm (портативным), так как это, кажется, воссоздает /etc/fstabпри каждом запуске. Я частично обошел это место mount -c /drives -o binary,posix=0,user,auto,noaclв моем .bashrc. «Частично», поскольку это влияет только на «буквы дисков Windows» (но не например /home).
Иззи

1
@SimonEast - нашел это, пока вы отвечали. Не могли бы вы попробовать это и ответить? - developers.redhat.com/blog/2018/02/07/… - # Если в вашем дистрибутиве нет файла fstab, что типично для cwRsyncэтого, это легко исправить. Создайте файл в $MY_RSYNC_DIST_DIR/etc/fstabи вставьте следующее содержимое:none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
Alex S
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.