Если PYTHONPATH, который вам нужен, постоянен, вы можете использовать / usr / bin / env
(самый недооцененный инструмент unix когда-либо ...):
username ALL=NOPASSWD: /usr/bin/env PYTHONPATH=/usr/lib/python3/dist-packages /usr/bin/python3 /usr/bin/sshuttle --method auto --firewall
Или напишите короткий сценарий оболочки, который настраивает среду до exec
скрипта python.
Если PYTHONPATH является константой , а не , вы можете также использовать username ALL = NOPASSWD: ALL
, поскольку пользователь может переопределить любой пакет python, используемый sshuttle, и поместить код делает там все, что только можно вообразить.
После перезагрузки был еще один снимок с 40 GiB. Я удалил его, и теперь все работает нормально
Дисковое пространство не показано как освобожденное (и на самом деле освобождено) до того, как все обработчики файлов будут закрыты для больших файлов, которые вы удалили. lsof - удобная команда для определения того, какие процессы все еще имеют открытые файлы, решением является перезапуск процессов, которые имеют открытые обработчики файлов.
lsof +D /var/lib/libvirt
покажет открытые файлы и процессы.