Еще одна вещь, которую вы можете сделать, - это чтобы ваш скрипт автоматически вызывал sudo, если он не был выполнен как root:
import os
import sys
euid = os.geteuid()
if euid != 0:
print "Script not started as root. Running sudo.."
args = ['sudo', sys.executable] + sys.argv + [os.environ]
# the next line replaces the currently-running process with the sudo
os.execlpe('sudo', *args)
print 'Running. Your euid is', euid
Выход:
Script not started as root. Running sudo..
[sudo] password for bob:
Running. Your euid is 0
Используйте sudo -k
для тестирования, чтобы очистить временную метку sudo, чтобы при следующем запуске сценария ему снова потребовался пароль.