Если вы можете инкапсулировать только необходимые функциональные возможности, требующие повышенных привилегий, в отдельный исполняемый файл, вы можете использовать бит setuid в исполняемой программе и вызывать его из своего сценария Python на уровне пользователя.
Таким образом, только действие в исполняемом файле setuid запускается от имени пользователя root, однако для его выполнения НЕ требуются права sudo, то есть права root. Только создание / изменение исполняемого файла setuid требует sudo.
Есть несколько последствий для безопасности, таких как обеспечение того, чтобы ваша исполняемая программа setuid должным образом дезинфицировала любой пользовательский ввод (например, параметры), чтобы ее нельзя было заставить сделать то, что не следует (запутанная проблема заместителя).
ссылка:
http://en.wikipedia.org/wiki/Setuid#setuid_on_executables
edit: setuid, похоже, работает только для скомпилированных исполняемых файлов (двоичных файлов), а не для интерпретируемых сценариев, поэтому вам может понадобиться использовать скомпилированную оболочку setuid.