Como mostrado na man page de su
( man su
), a opção -c
recebe um único comando shell, passado para o seu shell atual para execução por seu comando -c
:
-c
,--command COMMAND
Specify a command that will be invoked by the shell using its-c
.
E, em seguida, de bash
:
If the
-c
option is present, then commands are read from the first non-option argument _command_string_. If there are arguments after the _command_string_, the first argument is assigned to$0
and any remaining arguments are assigned to the positional parameters.
O resultado disso é que você não pode usar -c
com vários comandos.
No entanto, não há nada que o impeça de fornecer um shell como o comando a ser executado por -c
e usá-lo para manipular os vários comandos:
ssh -p 2022 -L 9389:localRDPIP:3389 user@publicIP su -c bash -c '
export HISTCONTROL=ignorespace;
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination localRDP_IP:3389;
iptables -t nat -A POSTROUTING -p tcp -d localRDP_IP --dport 3389 -j SNAT --to-source jumpIP
'
Não sei bem o que você quer alcançar com o seu segundo comando, no entanto. No momento, ele está configurado para executar nano
como usuário root e, em seguida, para executá-lo novamente como sua própria conta. É isto o que você queria? Ou você queria executar nano
duas vezes como usuário root, assim:
ssh -p 2022 -L 9389:localRDPIP:3389 user@publicIP -t su -c bash -c 'nano; nano'