
リモートサーバーからスーパーユーザーとしてコマンドを実行しようとしていますssh
。これを行うには、macOSでssh -t
次のコマンドを渡します。
bash-5.2$ ssh -t [email protected] "sudo echo Hi"
サーバーにログインするとパスワードプロンプトが表示されますが、sudoのパスワードプロンプトの代わりに次のエラーが表示されます(sudoで使用するコマンドに関係ありません)。
bash: line 1: sudo: command not found
Connection to server.com closed.
なぜこれが起こるのかわかりません。サーバーにログインして個別にコマンドを実行すると、正常に動作します。だからこれはうまくいきます:
bash-5.2$ ssh [email protected]
... Password:
Last login: ...
bash-5.1$ sudo echo hi
Password:
Last login: ...
hi
私はこれに非常に慣れていないので、明らかなことを見落としているかもしれません。
答え1
インストールされている場合は、sudo
パスにない可能性があります。
sudo
またはを実行して、パスがwhich sudo
正しいことを確認してくださいecho $PATH
。 sudo がパスにない場合、パス変数が破損している可能性があります。一般的な場所を実行するか、その場所を見つけるためにsudo /usr/bin/sudo
実行してlocate sudo | grep bin
それをテストできます。