我试图通过ssh作为超级用户在远程服务器上运行一个命令。为此,我使用ssh -t从macOS传递命令如下:
bash-5.2$ ssh -t user@server.com "sudo echo Hi"我获得登录到服务器时的密码提示,但是与sudo的密码提示符不同,我得到了以下错误(无论我在sudo中使用哪个命令):
bash: line 1: sudo: command not found
Connection to server.com closed.我不明白为什么会这样。当我登录到服务器并分别在服务器上运行命令时,它可以正常工作。因此,这是可行的:
bash-5.2$ ssh user@server.com
... Password:
Last login: ...
bash-5.1$ sudo echo hi
Password:
Last login: ...
hi我对此很陌生,所以我可能忽略了一些显而易见的东西。
发布于 2022-11-07 07:58:01
如果安装了sudo,可能没有安装在您的路径中。
通过运行sudo或echo $PATH查看是否是您的路径。如果sudo不在您的路径中,那么路径变量可能会被破坏。您可以尝试通过为sudo /usr/bin/sudo执行公共位置或运行locate sudo | grep bin来尝试查找其位置来测试此位置。
https://unix.stackexchange.com/questions/723922
复制相似问题