Ho un sistema a cui posso accedere solo con il mio nome utente (myuser), ma devo eseguire i comandi come altro utente (scriptuser). Finora, ho elaborato quanto segue per eseguire i comandi di cui ho bisogno:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
Se tuttavia, quando provo ad eseguire un comando più complesso, come ad esempio [[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
mi metto rapidamente nei guai con la citazione. Non sono sicuro di come potrei passare questo comando di esempio complesso bash -c
, quando \"
delimita già i limiti del comando che sto passando (e quindi non so come citare / tmp / Some directory, che include uno spazio.
Esiste una soluzione generale che mi consente di passare qualsiasi comando, non importa quanto sia complessa / folle la citazione, o è una sorta di limitazione che ho raggiunto? Esistono altre soluzioni possibili e forse più leggibili?