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
echo
combinado 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,
ksu
executa o comandols
especificado usando a opção-e
, passando/root/
como um argumento por meio da opção-a
.