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记录会话,但该补丁是老的。
答案4
Sysdig是系统级探索的强大工具——这就是您想要的;)
例子:
sysdig-i spy_用户
类别:安全
spy_users 显示交互式用户活动
列出用户交互启动的每个命令(例如从 bash)以及用户访问的每个目录