Mam system, do którego mogę się logować tylko pod moją nazwą użytkownika (myuser), ale muszę uruchamiać polecenia jako inny użytkownik (scriptuser). Do tej pory wymyśliłem następujące polecenia, aby uruchomić potrzebne mi polecenia:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
Jeśli jednak, gdy spróbuję uruchomić bardziej złożone polecenie, takie jak [[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
szybko, mam problem z cytowaniem. Nie jestem pewien, w jaki sposób mógłbym przekazać to przykładowe złożone polecenie bash -c
, gdy \"
już wyznaczam granice przekazywanego polecenia (a więc nie wiem, jak cytować katalog / tmp / Some, który zawiera spacje.
Czy istnieje ogólne rozwiązanie pozwalające mi przekazać dowolne polecenie bez względu na to, jak skomplikowane / szalone jest cytowanie, czy też jest to jakieś ograniczenie, które osiągnąłem? Czy istnieją inne możliwe i być może bardziej czytelne rozwiązania?