Eu tenho um sistema no qual só posso fazer login com meu nome de usuário (myuser), mas preciso executar comandos como outro usuário (scriptuser). Até agora, vim com o seguinte para executar os comandos necessários:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
Se, no entanto, quando tento executar um comando mais complexo, [[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
rapidamente encontro problemas com a citação. Não tenho certeza de como poderia passar esse exemplo de comando complexo para bash -c
, quando \"
já delimita os limites do comando que estou passando (e, portanto, não sei como citar o diretório / tmp / Some, que inclui espaços.
Existe uma solução geral que me permita passar qualquer comando, não importa quão complexa / louca seja a citação, ou é algum tipo de limitação que eu alcancei? Existem outras soluções possíveis e talvez mais legíveis?