Open1
shellでsuと&&を同時に使えない。-cでsuにコマンドを渡そう

sshコマンドでログインユーザーからユーザーを変更した上でコマンドを打ちたかった。
例えば
ssh (略) "sudo su (ユーザー名) && (suで変更したユーザ名で実行したいコマンド類)"
といった感じ。だけどこれは通らない。
sudo su は新しいプロンプトを返す。&&は1つ目のコマンドが正常終了した場合に2つ目のコマンドを実行するが、その前のsuで止まってしまう。
単にsuには-c
というオプションがあるのでそれを使えば良い。
ssh (略) "sudo su (ユーザー名) -c (suで変更したユーザ名で実行したいコマンド類)"
ちなみにsudo suの是非はあるし、そもそもsudo suとsshを併用する構造自体どうなのという話はあるが、今回は許容