![如何查找启动进程的 ssh 会话](https://linux22.com/image/86409/%E5%A6%82%E4%BD%95%E6%9F%A5%E6%89%BE%E5%90%AF%E5%8A%A8%E8%BF%9B%E7%A8%8B%E7%9A%84%20ssh%20%E4%BC%9A%E8%AF%9D.png)
如何找到从某个 ssh 会话启动的进程。
例如,我为我的几个朋友提供了相同的 ssh 凭据(又名 userzxc/passwordzxc),其中我已经知道哪些 IP。
我的目标是找出特殊 ssh 会话和某些正在运行/启动的进程之间的链接,以控制谁可以导致崩溃/崩溃/破坏/等。我的机器上的服务。
- 也许有相应的应用程序/服务
- 或者也许有几个命令可以实现它
谢谢。
答案1
关于什么
pstree -lnu | less
或者
pstree -lnupa | less
在其输出中查找sshd
或 用户名。
答案2
- 为您的每个朋友添加特殊用户和组
- 使用SELinux使用宽容模式
答案3
每个用户都应该有自己的凭据,因此只需显示给定用户的所有进程即可。如果您有进程 ID,您可以通过运行ps -Af
并查看“USER”列来知道哪个用户启动了它(许多其他选项组合将列出此信息,请检查ps
系统上的手册页)。给定一个用户bob
,ps -u bob
将列出该用户的所有进程。如果您想查看系统上正在运行哪些进程,顶部是一个方便的交互式流程浏览器。
命令who
列出活动会话。对于 SSH 会话,它列出原始 IP 地址。您可以在系统日志中找到更多信息(位置取决于您的发行版,例如/var/log/auth.log
带有 SysVinit 的 Debian)。命令last
和lastcomm
(包的一部分acct
,通常默认情况下不安装)提供有关过去会话的一些信息。