实时查看另一个用户执行的 Linux shell 命令?

实时查看另一个用户执行的 Linux shell 命令?

Linux 中的 root 用户是否可以实时(或接近实时)查看通过终端或 SSH 登录的另一个用户正在运行的 shell 命令?显然,它们存储在 .bash_history 中,但只有在用户注销时才会保存,也可以禁用。

编辑:理想情况下可以轻松打开和关闭某些东西。

答案1

作为 root,你可以用一个简单的包装脚本替换他们的 shell,该脚本在将命令传递给真正的 shell 之前记录他们的命令。这只在他们登录之前有效。

答案2

使用嗅嗅的如果您想闯入用户的会话或者screen -x如果您有合作。

但请注意,根据当地法律法规,监视用户可能会受到监管,甚至完全违法。

答案3

更改 shell 很容易避免,修补 shell 本身更好,但您必须修补所有 shell。我们最喜欢的破解者使用这种方法,作为奖励,他不必费心禁用 bash_history。

ssh host /bin/sh -i  

史努比是 exec 函数的包装器,并记录任何 外部二进制执行的内容(不是 shell 内置命令)

@David Schmitt 的建议嗅嗅的使用更好的方法,它利用伪终端。

ttysnoop使用相同的方法,但无人维护。(我可能在记录 ssh 连接时遇到了问题,记不清了)

您可以尝试修补 ssh记录会话,但该补丁是老的

伪足根什可用于记录合法的 sudo。并且水泵监控登录是另一回事。

答案4

Sysdig是系统级探索的强大工具——这就是您想要的;)

例子:

sysdig-i spy_用户

类别:安全

spy_users 显示交互式用户活动

列出用户交互启动的每个命令(例如从 bash)以及用户访问的每个目录

相关内容