Как получить корневые привилегии в Python через графический sudo?

StackOverflow https://stackoverflow.com/questions/4112737

  •  29-09-2019
  •  | 
  •  

Вопрос

Часть моей программы Python требует доступа к администратору. Как я могу получить корневые привилегии, используя всплывающее окно с графическим интерфейсом, похожим на gksudo командование?

Мне нужны только корневые привилегии для небольшой части моей программы, поэтому было бы предпочтительным иметь только привилегии для определенной функции.

Я надеюсь сделать что -то вроде:

gksudo(my_func, 'description of why password is needed')
Это было полезно?

Решение

У вас есть два варианта здесь:

Вам нужно будет сделать часть программы, которая требует привилегий ROOT отдельный файл, а затем выполнить файл таким образом:

>>> import subprocess
>>> subprocess.call(['gksudo','python that_file.py'])

который поднимет подсказку пароля и запустит это_file.py как root

Вы также можете потребовать, чтобы программа была запущена как root с самого начала, и просто попросил пользователя программы «gksudo python your_program.py» в командной строке с самого начала, что, очевидно, не лучшая идея, если ваша программа обычно запущена из меню.

Другие советы

Gksudo можно использовать для запуска программ, работающих с привилегиями администратора. Часть вашего приложения, которая должна работать как root, должна быть способна вызывать отдельный процесс из командной строки. Если вам нужна какая -то форма связи между ними, вы можете использовать сокеты или наблюдать за файлом и т. Д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top