Acho que encontrei a solução no final ...
Suponha, por exemplo, que você deseja listar o conteúdo da pasta /root/ e, para fazer isso, você precisa de um acesso raiz e só pode usar a ferramenta ksu (no sudo / su / ssh ).
Primeiro, você pergunta a senha usando uma ferramenta gráfica como zenity e a armazena em uma variável local.
pw=$(zenity --entry --title="Password needed" --text="Enter password:" --hide-text)
Depois disso, você pode executar ls /root/ via ksu usando o seguinte comando.
echo $pw | ksu -e /bin/ls -a /root/
Explicação:
-
Ao usar
echocombinado com|, você está enviando a senha paraksu, pois ela solicita uma senha por meio da entrada padrão. -
Depois de ler a senha da entrada padrão,
ksuexecuta o comandolsespecificado usando a opção-e, passando/root/como um argumento por meio da opção-a.