
スクリプトがリモートで呼び出されないようにしようとしています。ユーザーはまずSSHログインしてからスクリプトを実行する必要があります。
ssh remote-server "script.sh"
失敗するはず
ssh remote-server
ログイン後は
./script.sh
動作するはずです
所有権を変更して適用することはできますchmod
が、リモートユーザーはssh remote-server "sudo -u newuser ./script.sh"
AWS EC2インスタンスの使用
答え1
ssh foo@remote-server
の後に を実行すると、./script.sh
を実行するのと同じになりssh foo@remote-server ./script.sh
、ssh foo@remote-server
の後にを実行するとsudo -u bar ./script.sh
、 と同等になりますssh foo@remote-server sudo -u bar ./script.sh
(ただし、sudo
TTY が必要なので失敗する可能性がありますが、これは簡単に回避できます)。したがって、質問の内容が意味をなさないことは残念です。 または の存在をテストするなど、この人為的な違いを回避するために行うことは、$TERM
おそらく[ -t 0 ]
簡単に回避できます。