ユーザー名(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ディレクトリを引用する方法がわかりません)。
クォートがどれほど複雑/クレイジーであっても、コマンドを渡すことができる一般的な解決策はありますか、これは私が到達した何らかの制限ですか?他の可能性のある、おそらくより読みやすいソリューションはありますか?