我可以使用 screen 或 tmux 连接到其他终端会话,或共享它们。但这只有在我们首先知道我们将使用它们时才有效。
由于 root 可以访问所有内容,有没有办法在不运行 screen 的情况下做同样的事情?一些管道通过 tee 等。
例如远程接管某人打开的控制台或 ssh 会话。允许查看正在运行的内容并正确关闭。
答案1
我只知道systemtap 配方。非常基础,但也许有技能的人可以改进它。
或者你可以看看conspy
。我知道您使用 Debian,只需 apt-get 即可。它只能访问控制台,而不能访问 ssh。
ttysnoop
很好,但正如您所说,需要先安装。
答案2
过去我使用过 TTYsnoop,它似乎仍然包含在 Debian 和 Ubuntu 中。
答案3
简短的回答:不使用库存工具。
您可以拼凑一些东西来戳内核并通过文件描述符进行搜索,但您付出的努力将远远大于您从中获得的回报。
答案4
查看 SSHLog:https://github.com/sshlog/agent
它是一个 Linux 守护进程,使用 eBPF 过滤器允许管理员用户“附加”到服务器上的其他会话。因此,如果其他用户在该服务器上运行,您可以看到他们:
jim@devlaptop:~$ sshlog sessions
User Last Activity Last Command Session Start Client IP TTY
jim just now /usr/bin/gcc 2023-04-10 16:16:18 127.0.0.1:58668 17
billy 10 min ago /usr/sbin/fdisk 2023-04-10 12:11:05 15.12.5.8:58669 32
并附加到它们:
jim@devlaptop:~$ sshlog attach 32
Attached to TTY 32. Press CTRL+Q to exit
billy@devlaptop:~$