Plink não está trocando de usuário usando o comando su

1

Estou conectando a um servidor via plink da seguinte forma:

plink -ssh -l username -pw password example.host.com -m C:\Putty\input.txt > C:\Putty\output.txt

input.txt contém

whoami
su - newsuser
whoami

output.txt contém

username
username

SU não está funcionando via plink.

Se você tentar o mesmo comando em putty está funcionando bem e obtendo a saída como "newsuser" .

Linux PuTTY - automatiza o su para questões relacionadas a senhas

eu tentei a solução acima, mas não funciona para mim.

obrigado

    
por Gopi Krishnan 25.07.2017 / 14:38

1 resposta

2

Primeiro, não funciona do jeito que você pensa.

Os comandos no script são executados em seqüência. O su (teve sucesso) executaria uma sessão de shell interativa e aguardaria a entrada do usuário (comandos). Somente quando o su existir, o segundo whoami será executado (mostrando username ).

De qualquer forma, seu su não funciona de fato.

Primeiro, o su com certeza envia alguma mensagem de erro. O que é isso? Você captura apenas uma saída padrão em seus comandos. Capture uma saída de erro também ( 2>&1 ). É mais provável que ele falhe, porque su pode precisar de um terminal interativo, enquanto o Plink com -m usa terminal não interativo por padrão. Adicionar -t switch ajuda nesse caso.

Observe que a automação de su geralmente é uma má ideia. Se você precisar executar alguns comandos que exijam privilégios de root, uma solução melhor é associar uma chave privada dedicada aos comandos no arquivo sudoers . E, em seguida, use sudo e chave privada no Plink.

    
por 27.07.2017 / 07:53