如何查看用户在他们的 ssh 会话中正在做什么

LIN*_*YUS 3 linux ssh administration w

我以 root 身份登录服务器并执行了操作w,这让我看到用户正在编辑文件。

someuser  pts/5    10.117.0.53      14:03    3:25   1.20s  1.14s vi somefile.py
Run Code Online (Sandbox Code Playgroud)

然后我断开连接,稍后再次以 root 身份重新连接。我又做了w一次,但这次它显示了一些不同的东西。

someuser  pts/5    10.117.0.53      14:03    5:20   0.20s  0.02s sshd: someuser [priv]
Run Code Online (Sandbox Code Playgroud)

我可以从其他字段中看出这是同一个用户,但这次他们在做什么是隐藏的。

为什么变成了隐藏?我怎么看他们在做什么?

Rui*_*iro 5

如果用户正在使用bash,您可以添加到他的/etc/bash.bashrc

readonly PROMPT_COMMAND='history -a >(logger -t "commandlog $USER[$PWD] $SSH_CONNECTION")'
Run Code Online (Sandbox Code Playgroud)

这会将所有用户命令记录到 syslog。

我会将syslog日志配置为将日志转发到锁定的中央系统日志服务器,因此如果发生黑客攻击或流氓系统管理员,他们将无法篡改证据。