Substitua sudo no arquivo .desktop por gksudo .
Isso ocorre porque sudo não pode perguntar a senha fora do terminal, mas o comando precisa de sudo access para que congele na etapa sudo (aparentemente ainda está aguardando a senha).
gksudo solicitará graficamente a senha.
Atualização: para executar sem senha:
Precisamos definir nopasswd nesse script.
- Edite
/etc/sudoerscom o comandosudo visudo /etc/sudoers -
Adicione a linha:
%sudo ALL=NOPASSWD: /full/path/to/script.shSubstituindo
/full/path/to/script.shpelo caminho completo real. - Salve ( Ctrl + O ) e saia ( Ctrl + X ).
Agora você deve conseguir executá-lo sem senha. Além disso, você pode usar sudo em vez de gksudo .