аутентификация в скрипте python для запуска от имени root

Я выполняю проект в Linux на системном уровне в Python. Поэтому, я хочу знать, что если я запускаю свой код как обычный пользователь, и если я обращаюсь к системным файлам, тогда у него должны быть права root для него, тогда как я могу запросить пароль root и запустить дополнительный код в качестве суперпользователя. Я хочу знать, как запустить скрипт python в качестве суперпользователя с запросом пароля для него.

Любая помощь будет оценена. Заранее спасибо..

  • Как изменить шрифты в matplotlib (python)?
  • как использовать distutils для создания исполняемого файла .zip?
  • Процесс Python не будет вызывать atexit
  • Секундомер в Python
  • Генерация подсписок с использованием умножения (*) неожиданного поведения
  • Как читать CSV-файл из потока и обрабатывать каждую строку, когда она написана?
  • Соединение PySFTP работает, но get () не работает
  • Virtualenv ". venv / bin / активировать "vs" источник venv / bin / activate "
  • 2 Solutions collect form web for “аутентификация в скрипте python для запуска от имени root”

    Другое, что вы можете сделать, это заставить скрипт автоматически вызывать 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, поэтому при следующем запуске сценария снова потребуется пароль.

     import os euid = os.geteuid() if euid != 0: raise EnvironmentError, "need to be root" exit() 

    Это не будет запрашиваться в середине скрипта, но скорее заставит пользователя повторно запустить его с помощью sudo или root

    Python - лучший язык программирования в мире.