Tengo un sistema en el que solo puedo iniciar sesión con mi nombre de usuario (myuser), pero necesito ejecutar comandos como otro usuario (scriptuser). Hasta ahora, se me ocurrió lo siguiente para ejecutar los comandos que necesito:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
Sin embargo, si trato de ejecutar un comando más complejo, como [[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
rápidamente me meto en problemas con las citas. No estoy seguro de cómo podría pasar este comando complejo de ejemplo bash -c
, cuando \"
ya delimita los límites del comando que estoy pasando (por lo que no sé cómo citar / tmp / Some directorio, que incluye espacios).
¿Existe una solución general que me permita pasar algún comando sin importar cuán compleja / loca sea la cita, o es esta una especie de limitación que he alcanzado? ¿Hay otras soluciones posibles y quizás más legibles?