web-dev-qa-db-ja.com

サーバーにsshしてユーザーを切り替え、ディレクトリを変更する

サーバーにsshしてから、ユーザーを切り替えてディレクトリを変更し、コマンドを実行する必要があります。今やっているssh -t username@hostname "Sudo su - otheruser && cd /path/to/directory && command"。しかし、これは、ユーザーを切り替えてコマンドを実行したディレクトリを変更するものではありません。

1
kuldeep

-cスイッチを使用して、コマンドをsuに渡します。複雑なコマンドは、引用符または二重引用符で囲む必要があります。すでに二重引用符を使用しているため、単一引用符を使用するか、内側の二重引用符のペアをエスケープします。

例:

ssh -t username@hostname "Sudo su - otheruser -c \"cd /path/to/directory && command\""
ssh -t username@hostname "Sudo su - otheruser -c 'cd /path/to/directory && command'"
ssh -t username@hostname 'Sudo su - otheruser -c "cd /path/to/directory && command"'
6
Garstlig