我已将 Kali 4.19 加载到 Raspberry Pi 4 上,并使用单独主机上的 ParrotOS VM 与其进行通信。
通过 SSH 向我的 Kali Pi 发送命令时,我注意到一些奇怪的行为。我可以向它发送熟悉的命令,例如ifconfig
和shutdown
,并且两者都有预期的行为(前者显示有关远程计算机的正确信息,后者立即关闭它)。
在 Kali Pi 本身上,如果我打开终端并输入上述任一命令,我会得到
brendon@kali:~$ ifconfig
bash: ifconfig: command not found
brendon@kali:~$ shutdown
bash: shutdown: command not found
据我所知,它ifconfig
已被弃用,并且shutdown
可以来自不同的包,因此两者都不一定保证存在。
但令我困惑的是它可以通过 SSH 运行,但在机器上却不行。我假设当我发送命令时,它会被加密为文本,发送到另一台机器,解密为文本,然后使用exec*
调用或类似的方式在本地进行评估。然后响应发生相反的情况。但它通过 SSH 运行的事实表明还有其他事情正在发生。
如果我which ifconfig
通过 SSH,我会得到返回码 1,这表示“一个或多个指定的命令不存在或不可执行”。但它仍然有效。
有人可以解释这里发生了什么吗?
答案1
$PATH
本地 shell 和远程 shell 的设置之间存在差异。出现错误信息的原因是ifconfig
本地shell中缺少 的父目录$PATH
。