Lëshimi i mjetit të sinkronizimit të skedarëve Rsync 3.2.4

Pas një viti e gjysmë zhvillimi, është i disponueshëm lëshimi i Rsync 3.2.4, një mjet për sinkronizimin dhe rezervimin e skedarëve që ju lejon të minimizoni trafikun duke kopjuar ndryshimet në rritje. Transporti mund të jetë ssh, rsh ose protokolli i pronarit rsync. Ai mbështet organizimin e serverëve anonimë rsync, të cilët janë të përshtatshëm në mënyrë optimale për të siguruar sinkronizimin e pasqyrave. Kodi i projektit shpërndahet nën licencën GPLv3.

Ndër ndryshimet e shtuara:

  • Është propozuar një metodë e re për mbrojtjen e argumenteve të linjës së komandës, e cila i ngjan opsionit të disponueshëm më parë "--protect-args" ("-s"), por nuk e prish funksionimin e skriptit rrsync (rsync i kufizuar). Mbrojtja ka të bëjë me ikjen e karaktereve speciale, duke përfshirë hapësirat, kur dërgoni kërkesa te një përkthyes i jashtëm komandash. Metoda e re nuk i shpëton karaktereve speciale brenda një blloku të cituar, gjë që ju lejon të përdorni thonjëza të thjeshta rreth emrit të skedarit pa ikje shtesë, për shembull, komanda "rsync -aiv host:'a simple file.pdf" tani lejohet .” Për të kthyer sjelljen e vjetër, propozohen opsioni "--old-args" dhe ndryshorja e mjedisit "RSYNC_OLD_ARGS=1".
  • Zgjidhet një problem i kahershëm me trajtimin e karaktereve me pikë dhjetore bazuar në vendndodhjen aktuale (,"" në vend të "."). Për skriptet e krijuara për të përpunuar vetëm "." në numra, në rast të shkeljes së përputhshmërisë, mund të vendosni vendndodhjen në "C".
  • Rregulloi një dobësi (CVE-2018-25032) në kodin e përfshirë nga biblioteka zlib që çon në një tejmbushje buferi kur përpiqeni të kompresoni një sekuencë karakteresh të përgatitur posaçërisht.
  • Zbatoi opsionin "--fsync" për të thirrur funksionin fsync() në çdo operacion skedari për të pastruar cache-në e diskut.
  • Skripti rsync-ssl përdor opsionin "-verify_hostname" kur hyn në openssl.
  • U shtua opsioni "--copy-devices" për të kopjuar skedarët e pajisjes si skedarë të rregullt.
  • Reduktimi i konsumit të memories kur transferoni në mënyrë të vazhdueshme një numër të madh drejtorish të vogla.
  • Në platformën macOS, opsioni "—times" funksionon.
  • Zbatuar aftësinë për të përditësuar atributet xattrs për skedarët në modalitetin vetëm për lexim nëse përdoruesi ka leje për të ndryshuar të drejtat e aksesit (për shembull, kur ekzekutohet si rrënjë).
  • Është shtuar dhe aktivizuar si parazgjedhje parametri “--info=NONREG” për të shfaqur paralajmërimet për transferimin e skedarëve të veçantë.
  • Skripti rrsync (rsync i kufizuar) u rishkrua në Python. U shtuan opsione të reja "-munge", "-no-lock" dhe "-no-del". Si parazgjedhje, bllokimi i opsioneve --copy-links (-L), --copy-dirlinks (-k) dhe --keep-dirlinks (-K) është aktivizuar për t'i bërë më të vështira sulmet që manipulojnë lidhjet simbolike në drejtori.
  • Skripti atomic-rsync është rishkruar në Python dhe është zgjeruar për të injoruar kodet e kthimit jo zero. Si parazgjedhje, kodi 24 shpërfillet kur skedarët humbasin ndërsa rsync po ekzekutohet (për shembull, kodi 24 kthehet për skedarët e përkohshëm që ishin të pranishëm gjatë indeksimit fillestar, por u fshinë në kohën e migrimit).
  • Skripti munge-symlinks rishkruhet në Python.

Burimi: opennet.ru

Shto një koment