Для конкретности, предположим, что ваша программа выглядела так:
import subprocess
import shlex
proc = subprocess.Popen(shlex.split('fdisk -l'))
proc.communicate()
proc = subprocess.Popen(shlex.split('fdisk -l'))
proc.communicate()
Запуск его как обычного пользователя не возвращает вывода.
Но если вы запустите
% sudo python /path/to/test.py
, затем вам предлагается один раз ввести пароль root, и обе команды subprocess.Popen
будут выполняться от имени root.