Estou escrevendo um programa GUI usando o módulo wx em python. No programa, sempre que estou acessando uma pasta que requer privilégios de root, ele solicita a senha no terminal, mas quero exibir a caixa de diálogo ao usuário para inserir a senha e autenticá-lo. Como chamar essa caixa de diálogo e autenticar o usuário no ubuntu?
13
sudo
, mas não tenho conhecimento suficiente de Python ou PolicyKit para escrever uma boa resposta explicando como. Talvez alguém possa.Respostas:
Existem duas perguntas e respostas diferentes no stackoverflow, respondendo à sua pergunta: aqui e aqui .
Ambas as respostas usam o comando
gksudo
(já mencionado por @khamer). Se você executargksudo command
(também sem python), ele basicamente fará o quesudo
faz, mas com uma interface gráfica - ou seja, solicite uma senha ao usuário e execute o comando como root se o usuário estiver no arquivo sudoers.Para implementar a solução sugerida a partir das respostas vinculadas no python, você pode usar algo como mostrado no exemplo a seguir:
Crie um arquivo
run.py
:E um arquivo
create.py
:Em seguida, execute
python run.py
e depois de digitar sua senha, um arquivo pertencente ao root será criado. Se você executar,python create.py
ele será de sua propriedade (o arquivo não deverá existir antes da execução do script).fonte
Embora tenha certeza de que há uma solução python mais sofisticada, a versão para baixo e suja é usar gksudo. O gksudo faz o mesmo que o sudo, exceto que ele cria o diálogo para autenticação que você mencionou, em vez de perguntar na linha de comando.
Consulte https://help.ubuntu.com/community/RootSudo#Graphical_sudo
fonte
gksu
/gksudo
em um programa Python?Insira este script no seu código:
fonte