Das perguntas a seguir
vemos que o gksu não será mais suportado a longo prazo e não será instalado por padrão a partir de> = 13.04. Em vez disso, devemos usar o pkexec, que faz seu trabalho bem para aplicativos não gráficos, mas não para aplicações na GUI:
pkexec gedit
ao substituir o gksu em um arquivo .desktop
EXEC=pkexec /usr/bin/gedit
ou quando executo um script python para executar um aplicativo gráfico com permissões de root, recebo o seguinte erro:
>>>subprocess.Popen(['pkexec','gedit'])
** (gedit:3203): WARNING **: Could not open X display
Como eu teria que reescrever meus scripts ou arquivos .desktop para oferecer suporte a um diálogo de autenticação e executar um aplicativo como root, se eu não deveria depender do gksu?
sudo
eu vi disse algo sobre a integração do suporte ao gksu no sudo. Outra coisa a considerar ésudo -A
que, de acordo com a página de manual, lança um (possivelmente) login gráfico.Respostas:
Primeiro, crie um
.policy
arquivo de ação no/usr/share/polkit-1/actions/
. É convencional nomear arquivos de ação de maneira "hierárquica" do fornecedor, comocom.ubuntu.pkexec.gparted.policy
ouorg.debian.apt.policy
Em seguida, cole o seguinte conteúdo:
Substitua
[Short/Full Program Name/Path]
pelos valores apropriados, por exemplogedit
,gedit Text Editor
e/usr/bin/gedit
.<action id>
O valor não precisa corresponder ao nome do arquivo escolhido (e um único arquivo pode conter várias ações), mas convencionalmente o nome do arquivo é o prefixo de todas as suas ações.Depois de salvar o arquivo, o programa específico seria executado com X e GUI e tal.
Outra correção parece ser: Adicione a seguinte linha em /etc/pam.d/polkit-1:
fonte
Mais uma correção para os scripts do usuário: determine as variáveis de ambiente apropriadas dentro do seu script.
Você pode usar um trecho como o seguinte para fazer isso:
(com base na
getXuser
função ACPI )Se você achar que seu
.desktop
arquivo ainda não está funcionando, tente agrupá-lopkexec commandline
em umsh
snippet, por exemplo:O último problema é um bug conhecido, aparentemente:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690339
https://bugzilla.xfce.org/show_bug.cgi?id=9373
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=650038
https://bugzilla.gnome.org/show_bug.cgi?id=686059
fonte