У меня есть служба rsync, которая синхронизирует файлы с удаленного компьютера на компьютер, который сбрасывает их на сетевой диск.
Мне нужно, чтобы скопированные файлы имели собственные разрешения для папки назначения.
Процесс синхронизации работает нормально, но после его завершения я не могу получить доступ к некоторым папкам - «Отказано в доступе».
Я вошел как администратор домена; это также не позволит мне изменять какие-либо разрешения для указанных папок. Что дает?
Команда Run:
rsync.exe -v -rlt -z --delete "src_path" "dst_path"
windows
permissions
rsync
avguchenko
источник
источник
Ответы:
(с http://www.samba.org/ftp/rsync/rsync.html )
В итоге: чтобы дать конечным файлам (как старым, так и новым) исходные разрешения, используйте
--perms
.Чтобы дать новым файлам целевые разрешения по умолчанию (оставляя существующие файлы без изменений), убедитесь, что эта
--perms
опция отключена и используется--chmod=ugo=rwX
(что обеспечивает включение всех немаскированных битов).Если вы хотите упростить ввод этого последнего поведения, вы можете определить для него псевдоним popt, например, поместить эту строку в файл ~ / .popt (ниже определяется параметр -Z, и он включает в себя --no- g использовать группу по умолчанию для каталога dir):
источник
Безопасность posix в Cygwin вызвала у меня множество проблем с правами доступа к файлам Windows NTFS - даже при использовании
--no-perms
rsync.Я обнаружил, что вновь созданные файлы / папки не наследуют должным образом разрешения по умолчанию, но каждый файл / папка заканчивается множеством
<not inherited>
записей на вкладке Расширенная безопасность файла / папки Windows. (И эта проблема не только связана с rsync).Я нашел этот связанный пост и эту ссылку очень полезными в том, как решить эти проблемы, используя
noacl
опцию в/etc/fstab
файле cygwin . Недостатком этого решения является то, что cygwin теряет возможность устанавливать разрешения для файлов / папок, но во многих случаях это не важно.(В этой теме вы, вероятно, найдете ссылки на установку переменной среды CYGWIN = NONTSEC, но это для cygwin v1.5 и не работает в cygwin v1.7 и далее.)
источник
На Windows с DeltaCopy я мог заставить его работать с:
Это работало даже с
--recursive
источник
rsync, по крайней мере, на Cygwin имеет следующий переключатель:
-A, --acls сохраняют ACL (подразумевает --perms)
Моя версия Cygwin:
CYGWIN_NT-6.3 1.7.29 (0.272 / 5/3) 2014-04-07 13:46 x86_64 Cygwin
Надеюсь это поможет!
источник
Ответ с наивысшим рейтингом работает, только если вы используете rsync через ssh в Windows. Если вы используете демон cygwin rsync, просто использование noacl в / etc / fstab не помогает, по какой-то причине он не соблюдает наследование, даже если вы избавляетесь от пользователя и пытаетесь noacl, override и т. Д. Это, кажется, происходит если вы выполняете rsyncing на диске верхнего уровня и используете path = / cygdrive / что угодно в /etc/rsyncd.conf. Вместо этого вам нужно создать отдельную точку монтирования в / etc / fstab и использовать ее в вашем rsyncd.conf:
в /etc/rsyncd.conf у вас будет что-то вроде этого:
Затем мне пришлось перезагрузить систему Windows, просто перезапуск службы rsync сам по себе, похоже, не помог, она продолжала выдавать ошибки chroot и chdir (хотя / d_drive был смонтирован и использовал chroot = false, и я мог писать в него). Затем, когда вы rsync в систему Windows, используйте:
источник
В прошлом я просто переназначал разрешения в Windows для текущего пользователя, а затем использовал
takeown
в командной строке с повышенными правами :takeown /f <NameOfFolder> /r /d Y
Конечно, если вы
rsync
в первую очередь использовали правильные флаги, то в этом нет необходимости, но если вы не хотите повторно запускатьrsync
файлы, которые вы уже скопировали, я бы порекомендовал это.источник
correct rsync flags
> а что бы это были?У меня была эта проблема
rsnapshot
, которая использует rsync для резервного копирования. Я переопределил это удаление--relative
изrsync_long_args
. После этого папкаc
для самого диска со странными разрешениями не создается.источник