Как получить root-права в python с помощью графического sudo? - PullRequest
6 голосов
/ 06 ноября 2010

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

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

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

gksudo(my_func, 'description of why password is needed')

Ответы [ 2 ]

5 голосов
/ 06 ноября 2010

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

3 голосов
/ 07 ноября 2010

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

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

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

, которыйвызовет запрос на ввод пароля и запустит that_file.py от имени пользователя root

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

...