Como codificar o parâmetro de senha rdesktop em um script de shell?

3

Eu posso me conectar com este script do Linux a uma sessão do Windows RDP:

#!/bin/bash
/usr/bin/rdesktop -N -x m -u Administrator -p secret123 -d DOMAIN1 127.0.0.1:33891

(A porta rdp do servidor remoto do Windows é encapsulada com segurança para a porta 33891 no host local)

Mas este script não transmite a senha corretamente:

#!/bin/bash
/usr/bin/rdesktop -N -x m -u Administrator -p #secret$123# -d DOMAIN2 127.0.0.1:33892

Como eu tenho que codificar os caracteres especiais na senha?

Também estou me perguntando se isso faz diferença se eu escolher / bin / sh como o shell do script.

Editar:

Descobri que isso funciona:

\#secret\3\#

    
por mit 02.11.2010 / 19:10

2 respostas

4

Eu recomendo que você armazene a senha em um arquivo e passe-a para rdesktop através de um pipe. Dessa forma, a senha não aparecerá como um argumento na linha de comando ao executar ps ou similar.

cat secretfile | /usr/bin/rdesktop -N -x m -u Administrator -p - -d ...

Para responder à sua pergunta, no entanto, basta citar o argumento para que isso funcione:

/usr/bin/rdesktop -N -x m -u Administrator -p '#secret$123#' -d ...

Editar:

Para usar uma variável (o valor será visível na saída de ps ):

var='#secret$123#'
/usr/bin/rdesktop -N -x m -u Administrator -p "$var" -d ...

ou

var=$(<secretfile)    # read from a file (doesn't work in sh)
/usr/bin/rdesktop -N -x m -u Administrator -p "$var" -d ...
    
por 02.11.2010 / 19:27
4

Caracteres especiais precisam ser escapados com um '\' na linha de comando do Linux.

Você pode postar sua senha e eu mostrarei como ela deve ficar. ;) Brincadeira ... claro.

    
por 02.11.2010 / 19:13