Você pode desabilitar as perguntas de senha adicionando uma linha específica de script / programa no arquivo / etc / sudoers: yourusername ALL = (TODOS) NOPASSWD: / usr / local / bin / whatever
Estou conectando a um servidor via PuTTY da seguinte forma:
putty.exe -ssh user@host -pw password -noagent -m commands.txt
Depois disso, preciso usar:
su someUser
Ele pedirá uma senha - coloquei isso dentro do comando.txt, mas não está funcionando.
Como posso automatizar o comando su (incluindo senha) em uma única linha que posso colocar dentro do command.txt? Ou talvez haja uma abordagem diferente?
Eu não quero usar o sudo ou executar e tudo. Eu tentei com:
echo password | su someUser
No entanto, a tubulação dessa maneira não funcionou.
Você pode desabilitar as perguntas de senha adicionando uma linha específica de script / programa no arquivo / etc / sudoers: yourusername ALL = (TODOS) NOPASSWD: / usr / local / bin / whatever
É vital para você usar su e salvar a senha em um arquivo? Se não usar uma abordagem diferente, porque:
$ su << LOL
> secretpassword
> LOL
su: must be run from a terminal
$ echo secretpassword|su -
su: must be run from a terminal
Você ficaria melhor com as chaves ssh: Quck ssh-keys intro
Por que você não quer usar sudo
? O su sempre pedirá a senha usando os recursos do terminal, então você precisa criar um pseudo-terminal para se comunicar com ele. expect
pode fazer isso por você.
No entanto, acho que a maneira "correta" de resolver isso é usar um executável suid de propriedade de um usuário específico ou, melhor ainda, usar o sudo
configurado corretamente.