У меня есть система, в которую я могу войти только под своим именем пользователя (myuser), но мне нужно запускать команды от имени другого пользователя (scriptuser). До сих пор я придумал следующее для запуска необходимых мне команд:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
Однако, если я пытаюсь выполнить более сложную команду, например, у [[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
меня быстро возникают проблемы с цитированием. Я не уверен, как можно передать этот пример сложной команды bash -c
, когда \"
уже разграничивает границы команды, которую я передаю (и поэтому я не знаю, как заключить в каталог / tmp / Some каталог, который содержит пробелы.
Есть ли общее решение, позволяющее мне передавать любую команду независимо от того, насколько сложным / сумасшедшим является цитирование, или это какое-то ограничение, которого я достиг? Есть ли другие возможные и, возможно, более читаемые решения?