После полутора лет разработки доступен релиз Rsync 3.2.4, утилиты для синхронизации файлов и резервного копирования, позволяющей минимизировать трафик за счёт инкрементального копирования изменений. В качестве транспорта могут быть использованы ssh, rsh или собственный протокол rsync. Поддерживается организация работы анонимных rsync-серверов, оптимально подходящих для обеспечения синхронизации зеркал.
Код проекта распространяется под лицензией GPLv3.
Среди добавленных изменений:
- Предложен новый метода защиты аргументов командной строки, которая напоминает ранее доступную опцию “–protect-args” (“-s”), но не нарушает работу скрипта rrsync (restricted rsync). Защита сводится к экранированию спецсимволов, включая пробелы, при передаче запросов внешнему командному интерпретатору. Новый метод не экранирует спецсимволы внутри обрамлённого кавычками блока, что позволяет использовать простое выделение имени файла кавычками без дополнительного экранирования, например теперь допустима команда “rsync -aiv host:’a simple file.pdf’ .” Для возвращения старого поведения предложена опция “–old-args” и переменная окружения “RSYNC_OLD_ARGS=1”.
- Решена давняя проблема с обработкой символов десятичной запятой с учётом текущей локали (“,” вместо “.”). Для скриптов, рассчитанных на обработку только символа “.” в числах, в случае нарушения совместимости можно выставить локаль “С”.
- Исправлена уязвимость (CVE-2018-25032) во входящем в состав коде из библиотеки zlib, приводящая к переполнению буфера при попытке сжатия специально подготовленной последовательности символов.
- Реализована опция “–fsync” вызова функции fsync() при каждой операции с файлом для сброса дискового кэша.
- В скрипте rsync-ssl задействована опция “-verify_hostname” при обращении к openssl.
- Добавлена опция “–copy-devices” для копирования файлов устройств как обычных файлов.
- Сокращено потребление памяти при инкрементальной передаче большого числа мелких каталогов.
- На платформе macOS обеспечена работа опции “–atimes”.
- Реализована возможность обновления атрибутов xattrs для файлов в режиме только для чтения, если пользователь имеет полномочия на смену прав доступа (например, при запуске с правами root).
- Добавлен и включён по умолчанию параметр “–info=NONREG” для вывода предупреждений о передаче специальных файлов.
- Скрипт rrsync (restricted rsync) переписан на языке Python. Добавлены новые опции “-munge”, “-no-lock” и “-no-del”. По умолчанию включена блокировка опций “–copy-links” (-L), “–copy-dirlinks” (-k) и “–keep-dirlinks” (-K) для усложнения совершения атак, манипулирующих символическими ссылками на каталоги.
- Скрипт atomic-rsync переписан на языке Python и расширен возможностью игнорирования ненулевых кодов возврата. По умолчанию игнорируется код 24, выдаваемый при пропадании файлов в процессе работы rsync (например, код 24 возвращается для временных файлов, которые присутствовали во время начальной индексации, но были удалены ко времени переноса).
- Скрипт munge-symlinks переписан на языке Python.
Release.
Ссылка here.