Ich habe ein System, bei dem ich mich nur unter meinem Benutzernamen (myuser) anmelden kann, aber ich muss Befehle als anderer Benutzer (scriptuser) ausführen. Bisher habe ich mir Folgendes ausgedacht, um die Befehle auszuführen, die ich benötige:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
Wenn ich jedoch versuche, einen komplexeren Befehl auszuführen, wie [[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
ich schnell Probleme mit dem Zitieren bekomme. Ich bin nicht sicher, wie ich diesen komplexen Beispielbefehl übergeben könnte bash -c
, wenn \"
bereits die Grenzen des Befehls, den ich übergebe , abgegrenzt sind (und daher weiß ich nicht, wie ich / tmp / Some in Anführungszeichen setzen soll, der ein Leerzeichen enthält.
Gibt es eine allgemeine Lösung, die es mir erlaubt, jeden Befehl weiterzugeben, egal wie komplex / verrückt das Zitieren ist, oder ist dies eine Art von Einschränkung, die ich erreicht habe? Gibt es andere mögliche und vielleicht besser lesbare Lösungen?