Po pätnástich mesiacoch vývoja je dostupná verzia Rsync 3.2.4, utilitky na synchronizáciu súborov a zálohovanie, ktorá minimalizuje prenos dát prostredníctvom inkrementálneho kopírovania zmien. Ako transport môžu byť použité ssh, rsh alebo vlastný protokol rsync. Podporuje sa organizácia anonymných rsync serverov, ktoré sú optimálne pre zabezpečenie synchronizácie zrkadiel. Kód projektu je distribuovaný pod licenciou GPLv3.
Medzi pridané zmeny patrí:
- Bol navrhnutý nový spôsob ochrany argumentov príkazového riadku, ktorý pripomína predtým dostupnú možnosť „—protect-args“ („-s“), ale nenarušuje chod skriptu rrsync (restricted rsync). Ochrana spočíva v escapovaní špeciálnych znakov, vrátane medzier, pri prenose požiadaviek externému príkazovému interpreteru. Nový spôsob neescapuje špeciálne znaky vo vnútri úvodzovkami obklopeného bloku, čo umožňuje používanie jednoduchého vyznačenia názvu súboru úvodzovkami bez dodatočného escapovania, napríklad teraz je povolený príkaz „rsync -aiv host:‘a simple file.pdf’ .“. Na vrátenie starého správania bola navrhnutá možnosť „—old-args“ a premenná prostredia „RSYNC_OLD_ARGS=1“.
- Bola vyriešená dlhodobá problém s spracovaním desatinných čiarok s ohľadom na aktuálnu lokáciu („,“ namiesto „.“). Pre skripty navrhnuté na spracovanie iba znaku „.“ v číslach, v prípade porušenia kompatibility je možné nastaviť lokáciu na „C“.
- Opravená zraniteľnosť (CVE-2018-25032) v súčasti kódu z knižnice zlib, ktorá vedie k pretečeniu vyrovnávacej pamäte pri pokuse o kompresiu špeciálne pripraveného zariadenia znakov.
- Realizovaná možnosť „—fsync“ volania funkcie fsync() pri každej operácii so súborom na prepísanie disku cache.
- V skripte rsync-ssl bola aktivovaná možnosť „-verify_hostname“ pri oslovovaní k openssl.
- Pridaná možnosť „—copy-devices“ na kopírovanie zariadení ako bežných súborov.
- Znížená spotreba pamäte pri inkrementálnom prenose veľkého počtu malých adresárov.
- Na platforme macOS bola zaručená funkčnosť možnosti „—atimes“.
- Realizovaná možnosť aktualizácie atribútov xattrs pre súbory v režime iba na čítanie, ak má používateľ oprávnenie na zmenu prístupových práv (napríklad pri spustení s právami root).
- Pridaná a predvolená možnosť „—info=NONREG“ na zobrazovanie varovaní pri prenose špeciálnych súborov.
- Skript rrsync (restricted rsync) bol prepísaný v jazyku Python. Pridali sa nové možnosti „-munge“, „-no-lock“ a „-no-del“. Predvolene sú zapnuté zámky pre možnosti „—copy-links“ (-L), „—copy-dirlinks“ (-k) a „—keep-dirlinks“ (-K), aby sa sťažilo vykonávanie útokov manipulujúcich so symbolickými odkazmi na adresáre.
- Skript atomic-rsync bol prepísaný v jazyku Python a rozšírený o možnosť ignorovania nenulových kódov návratu. Predvolene sa ignoruje kód 24, ktorý sa vracia pri strate súborov počas práce s rsync (napríklad, kód 24 sa vracia pre dočasné súbory, ktoré boli prítomné počas počiatočnej indexácie, ale boli odstránené do času presunu).
- Skript munge-symlinks bol prepísaný v jazyku Python.
Zdroj: opennet.ru
