gksudo continua pedindo minha senha ao usar um iniciador de Unity personalizado

2

Eu escrevi um arquivo .desktop personalizado que contém uma linha Exec

#!/usr/bin/env xdg-open
[Desktop Entry]
(...)
Exec=gksudo /my/path/to/bash_script.sh
(...)

Este script lança algumas chamadas do zenity.

Em seguida, fiz este arquivo da área de trabalho para aparecer na barra lateral do lançador unity-2d.

Meu problema é que toda vez que eu uso este atalho de iniciador ele continua pedindo minha senha ... Enquanto o comportamento esperado é perguntar uma vez, então lembre-se por algum tempo. Estava agindo assim no gnome / Lucid, então algo mudou, mas o que?

(Eu também tentei a opção '-k', mas não mudei meu problema)

Se tentar essa linha de comando a partir de um terminal (como meu usuário regular)

gksudo /my/path/to/bash_script.sh

Funciona como esperado (= o mesmo comportamento que no Lucid): pergunta a senha apenas no primeiro lançamento.

O que estou perdendo aqui?

    
por martin-mystere 29.11.2012 / 14:26

2 respostas

1

Tanto quanto eu sei, é o ambiente de terminal que lembra a senha por um determinado período de tempo.

Por exemplo, o comando

gksudo nautilus

no terminal pedirá a senha apenas uma vez em um determinado período de tempo. Enquanto o mesmo comando no launcher alt + f2 pede sempre.

De qualquer maneira, se você quer rodar algo como root, não é tão estranho perguntar a senha toda vez. Dessa forma, você sabe que estará executando o comando como root.

    
por Timo 29.11.2012 / 15:43
1

Isso é absolutamente normal. No terminal, você sempre tem a mesma "sessão", então ele se lembra da autenticação, mas não é o mesmo com um lançador .desktop.

Eu recomendo que você simplesmente adicione um arquivo ao /etc/sudoers.d (nomeie-o como my_script ou algo parecido), para que você sempre possa usar o seu comando sem senha (se o seu script não aceita argumentos que devem ser seguros) - mas faça isso por sua própria conta e risco :

Crie um novo arquivo com o seguinte conteúdo

your_username ALL=(ALL) NOPASSWD: /my/path/to/bash_script.sh

Quando eu testei com o gksu, ele funcionou diretamente depois, mas se isso não ocorrer, tente entrar e sair novamente ou reinicializar.

    
por jPlatte 29.11.2012 / 15:55