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

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

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

  • Остановить графический интерфейс pygtk от блокировки во время длительного процесса
  • GtkTreeView с несколькими столбцами и GtkListStore с одним настраиваемым типом (в Python)
  • Можно ли нарисовать GtkTreeView, как GtkIconView?
  • GUI не обновляется из другого потока при использовании PyGtk
  • Влияет ли резьба в GTK с Python в интроспекцию PyGObject?
  • Socket Thread и PyGTK
  • Как получить кодировку терминала из сценария python?
  • Как использовать subprocess.Popen для подключения нескольких процессов по каналам?
  • выравнивание отдельных графиков без привязки в ggplot2 с использованием Rpy2 в Python
  • Применение Matlotlib Crashing tkinter
  • Как создать вращающийся курсор командной строки с помощью python?
  • Каков самый простой способ читать wav-файлы с помощью Python ?
  • 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 - лучший язык программирования в мире.