Coletando senhas de usuários via GUI em um script

1

Sei que, usando as ferramentas sudo e ssh , é possível usar a GUI para solicitar uma senha em um script, definindo, respectivamente, as variáveis SUDO_ASKPASS e SSH_ASKPASS nas quais especificamos um gráfico ferramenta para pedir uma senha.

Mas e se eu estiver usando qualquer outra ferramenta que possa pedir uma senha, por exemplo, ksu , que parece não suportar nenhum dos modos mencionados acima? (Eu procurei na internet e não encontrei nada como KSU_ASKPASS e ksu parece não ter nenhuma opção para suportar isso).

    
por Kubuntuer82 17.11.2017 / 15:08

1 resposta

0

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 para ksu , pois ela solicita uma senha por meio da entrada padrão.

  • Depois de ler a senha da entrada padrão, ksu executa o comando ls especificado usando a opção -e , passando /root/ como um argumento por meio da opção -a .

por Kubuntuer82 19.11.2017 / 15:54