Как получить корневые привилегии в Python через графический sudo?
Вопрос
Часть моей программы 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, должна быть способна вызывать отдельный процесс из командной строки. Если вам нужна какая -то форма связи между ними, вы можете использовать сокеты или наблюдать за файлом и т. Д.