Запуск команды с os.popen с помощью sudo в python

У меня есть команда /usr/bin/virsh dumpxml <UUID>, которую мне нужно запустить внутри программы на Python, дело в том, что команда должна работать как sudo -u <user> sudo /usr/bin/virsh dumpxml <UUID>, я пытаюсь вызвать ее с помощью следующего кода:

cmd = "sudo -u <user> sudo /usr/bin/virsh dumpxml %s" % uuid
data = os.popen(cmd).read()
...

Но я получаю сообщение об ошибке, указывающее, что домен не найден, но если я запускаю ту же команду из bash, она работает нормально.

Команда /usr/bin/virsh dumpxml находится внутри /etc/sudoers.d/

Кроме того, мне нужно запустить второй 'sudo', потому что иначе он не будет работать.

Любые идеи?


person happygopher    schedule 12.12.2019    source источник
comment
Во-первых, я сомневаюсь, что вам действительно нужен второй sudo в вашей команде. Кроме того, ваш текст указывает на то, что в конце команды требуется UUID, но вы не передаете его в своем коде.   -  person Cargo23    schedule 12.12.2019
comment
извините, обновил   -  person happygopher    schedule 12.12.2019
comment
вероятно, лучше использовать библиотеку подпроцессов   -  person GiovaniSalazar    schedule 12.12.2019
comment
проверьте это - › stackoverflow.com/questions/44684764/   -  person GiovaniSalazar    schedule 12.12.2019