Eu criei um script bash que usa o kdialog exclusivamente para interagir com o usuário. É iniciado a partir de um arquivo ".desktop" para que o usuário nunca veja o terminal. Parece 100% como um aplicativo GUI (mesmo que seja apenas um script bash). É executado apenas no KDE (Kubuntu 12.04).
Meu único problema é lidar com a entrada de senha de forma segura e conveniente. Não consigo encontrar uma solução satisfatória.
O script foi projetado para ser executado como um usuário normal e solicitar a senha quando um comando sudo for necessário pela primeira vez. Dessa maneira, a maioria dos comandos, aqueles que não exigem direitos sudo, são executados como o usuário normal. O que acontece (quando o script é executado no terminal) é que o usuário solicita sua senha uma vez e o tempo limite padrão do sudo permite que o script termine, incluindo quaisquer comandos adicionais do sudo, sem avisar o usuário novamente. É assim que eu quero que funcione quando executado atrás da GUI também.
O principal problema é que usar kdesudo
para iniciar meu script, que é a maneira GUI padrão, significa que o script inteiro é executado pelo usuário root. Portanto, as propriedades dos arquivos são atribuídas ao usuário raiz, não posso confiar ~/
em caminhos e muitas outras coisas são menos que ideais. A execução de todo o script como usuário root é apenas uma solução muito insatisfatória e acho que é uma prática ruim.
Aprecio todas as idéias para permitir que um usuário digite a senha do sudo apenas uma vez via GUI, enquanto não executa o script inteiro como root. Obrigado.