su
faz isatty(3)
para certificar-se de que o STDIN se refere realmente a um TTY.
Portanto, você não pode usar qualquer variável para passar a senha para su
via STDIN.
Eu tenho várias contas temporárias no meu PC que eu uso para testes e alterno entre elas com muita frequência. Digamos que um deles seja test
e outro seja test1
. Eu estou trabalhando em test
e tenho que ir para test1
. Normalmente, eu faria su - test1
, o que retornaria um campo Password:
pedindo senha para test1
. Então eu digitei a senha e pressione Enter
. Existe alguma maneira de armazenar a senha em uma variável pass
e alimentá-lo com o comando su
para escapar do campo Password:
?
Observação: estou ciente do risco de segurança envolvido em usá-lo com su
e salvar senha em uma variável. Eu não estou preocupado com eles, pois são apenas algumas contas temporárias.
su
faz isatty(3)
para certificar-se de que o STDIN se refere realmente a um TTY.
Portanto, você não pode usar qualquer variável para passar a senha para su
via STDIN.
Então, eu li heemail como resposta e fiquei desarmada. Então eu notei a sugestão de Ulrich Schwarz em fazê-lo com ssh
. Fiz algumas leituras em ssh
e tropecei em algo chamado sshpass
. Ele pega a senha e dá entrada para o comando ssh. Eu passaria pela documentação do furo / man page.
Resolva meu problema: Assumindo meu password
para test1
1tset
, o comando para meu problema será: sshpass -p '1tset' ssh test1@host