Podle toho venv bych řekl, že to je v Pythonu, a ten venv musíš nejdřív aktivovat, aby to fungovalo. Takže všechny potřebné příkazy "zabal" do jednoho skriptu.
V tom pokusu se sudo logicky nebude -u www-data, ale -u leo. A ještě bys to musel povolit v /etc/sudoers. Třeba takhle:
www-data ALL=(leo) NOPASSWD: /nejaky/program *
Ale to jen pokud bys to opravdu potřeboval.
Takže si ve svém home můžeš vyhradit adresář s právy nastavenými tak, aby se tam www-data dostal. Nebo, pro tebe jednodušší varianta, prostě to dej do web rootu, kam už se www-data dostane teď.