请帮助我理解这个ps aux
输出
ps aux | grep daniel
root 2564 0.2 0.5 8404 2764 ? Ss 04:11 0:00 sshd: daniel [priv]
daniel 2621 0.0 0.2 8404 1424 ? S 04:11 0:00 sshd: daniel@pts/0
daniel 2622 2.7 0.5 5684 2756 pts/0 Ss 04:11 0:00 -zsh
daniel 2637 0.0 0.2 2760 1064 pts/0 R+ 04:11 0:00 ps aux
daniel 2638 0.0 0.1 3372 756 pts/0 S+ 04:11 0:00 grep daniel
我不明白前两行是什么意思sshd
。据我所知,我是唯一一个通过 ssh 进入我的 VPS 的人。那么为什么会sshd
出现两个实例呢?
另外,如果我错了,请纠正我。 是-zsh
因为我已通过 ssh 进入 zsh shell,ps aux
和grep
是 因为这些是我刚刚运行的命令。
答案1
第一个进程是 sshd 响应您的连接而启动的子进程,第二个进程是将伪终端绑定到 ssh 会话而启动的子进程。
这完全正常,您会注意到第二个进程在您的凭据下运行,而第一个进程由 root 拥有。这有助于防止特权升级 - 您正在与之交互的进程具有您的特权,因此您无法利用它来执行 root 特权操作。
是的,zsh 进程是你的 shell,是grep
你的当前命令。
f
如果使用参数,则可以更容易地可视化流程之间的关系ps
:
ps auwxf | less
这将为您提供一棵显示父/子关系的树。
答案2
您是否考虑过这种可能性:您可能意外退出了 ssh 会话,但并未结束/关闭它?如果没有,请尝试重新启动 VPS,看看它是否恢复。