Efter halvandet års udvikling er udgaven Rsync 3.2.4 tilgængelig, et værktøj til filsynkronisering og backup, der minimerer trafikken ved inkrementel kopiering af ændringer. SSH, RSH eller det eget Rsync-protokol kan anvendes som transport. Understøttelse af anonym Rsync-servere, der er optimalt tilpasset til synkronisering af spejlinger, er blevet implementeret. Projektkoden distribueres under GPLv3-licensen.
Blandt de tilføjede ændringer:
- En ny metode til beskyttelse af kommandolinjeargumenter er blevet foreslået, som minder om den tidligere tilgængelige mulighed «—protect-args» («-s»), men forstyrrer ikke rrsync (restricted rsync) scriptets funktionalitet. Beskyttelsen består i at undslippe specielle tegn, inklusive mellemrum, ved overførsel af anmodninger til eksterne kommandotolkere. Den nye metode undslipper ikke specielle tegn indeni anførselstegn, hvilket gør det muligt at bruge enkle filnavne med anførselstegn uden ekstra undslipning, for eksempel er kommandoen «rsync -aiv host:’a simple file.pdf’ .» nu tilladt. For at genskabe den tidligere adfærd er mulighederne «—old-args» og miljøvariablen «RSYNC_OLD_ARGS=1» blevet introduceret.
- Et gammelt problem med behandling af decimaltegn under hensyntagen til den aktuelle lokalitet («,» i stedet for «.») er blevet løst. For scripts, der kun er designet til at behandle tegnet «.» i tal, kan lokaliteten «C» indstilles, hvis der opstår inkompatibilitet.
- En sårbarhed (CVE-2018-25032) i den inkluderede kode fra zlib-biblioteket, som førte til buffer-overløb ved forsøg på at komprimere en specielt tilberedt sekvens af tegn, er blevet rettet.
- Muligheden «—fsync» for at kalde funktionen fsync() ved hver filhandling for at tømme diskens cache er blevet implementeret.
- I rsync-ssl-scriptet er muligheden «-verify_hostname» aktiveret ved kald til openssl.
- Muligheden «—copy-devices» er blevet tilføjet for at kopiere enhedsfiler som almindelige filer.
- Hukommelsesforbruget ved inkrementel overførsel af et stort antal små kataloger er blevet reduceret.
- Under macOS-platformen er muligheden «—atimes» blevet aktiveret.
- Muligheden for at opdatere xattrs-atributter for filer i skrivebeskyttet tilstand er blevet implementeret, hvis brugeren har ret til at ændre adgangsrettigheder (for eksempel ved kørsel med root-rettigheder).
- Parameteren «—info=NONREG» er blevet tilføjet og aktiveret som standard for at vise advarsler om overførsel af specielle filer.
- Rrsync-skriptet (restricted rsync) er genopskrevet i Python. Nye muligheder «-munge», «-no-lock» og «-no-del» er tilføjet. Som standard er mulighederne «—copy-links» (-L), «—copy-dirlinks» (-k) og «—keep-dirlinks» (-K) aktiveret for at gøre det sværere at udføre angreb, der manipulerer med symbolske links til direktorier.
- Atomic-rsync-skriptet er genopskrevet i Python og udvidet med muligheden for at ignorere ikke-nul returkode. Som standard ignoreres kode 24, der gives, når filer forsvinder under kørsel af rsync (for eksempel returneres kode 24 for midlertidige filer, der var til stede under den indledende indeksering, men blev slettet inden overførslen).
- Munge-symlinks-skriptet er genopskrevet i Python.
Kilde: opennet.ru
