2013-03-31 2 views
0

В моем проекте у меня есть процесс демона и пользовательский интерфейс python для его настройки.Как реализовать аутентификацию Linux в python?

Одним из вариантов является запуск/остановка демона. Для этого пользователю необходимо предоставить пароль root, чтобы вызвать остановку демона. Так, нажав на кнопку остановки должен показать ему всплывающее окно аутентификации (например, в этой ссылке: http://i.stack.imgur.com/qcAk6.png

enter image description here

).

Может ли кто-нибудь предоставить мне ссылку или пример о том, как она работает?

+0

Так же, как и информация, я знаю, что использование gksudo запрашивает пароль root в графическом режиме, но это не то же самое, что я хочу. – ZedTuX

+1

Я не знаю ответа, но я думаю, что вы хотите иметь дело с PolicyKit. Этот вопрос в Ask Ubuntu может помочь вам в правильном направлении. http://askubuntu.com/questions/159722/root-tasks-using-dbus-and-policykit – zigg

+0

Спасибо @zigg, это именно то, что я искал! – ZedTuX

ответ

0

Пример программы с использованием gksudo и subprocess:

#!/usr/bin/env python 
import subprocess 

# change gnome-terminal to command to start/stop daemon 
call = ["gksudo", "--description", "Start daemon", "gnome-terminal"] 

# runs, and doesn't block 
proc = subprocess.Popen(call, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 

Мы не можем предположить, что пользователь не отменить запрос, так что демон должен быть обнаружен другим способом. Если возможно, D-Bus будет лучшим. См. tutorial для python.

Смежные вопросы