Linux ssh 如何实时显示某个用户远程发出的命令
要实时显示某个用户远程发出的命令,可以通过监控用户的 shell 历史记录来实现。下面是一种方法:
- 进入用户的家目录,找到用户的
.bashrc(或.bash_profile)文件,可以使用下面的命令进行查找:
cd ~username
ls -a | grep "bash"
- 打开
.bashrc(或.bash_profile)文件,添加以下内容:
export PROMPT_COMMAND='history -a >(logger -t "COMMANDLOG" -p local6.info)'
这将在用户每次执行命令后,将命令写入日志文件中。
- 在
/etc/rsyslog.conf文件中添加以下内容来配置日志文件的位置和格式:
local6.* /var/log/commands.log
- 重启 rsyslog 服务,使配置生效:
sudo systemctl restart rsyslog
- 现在,当用户远程登录并执行命令时,命令将被记录在
/var/log/commands.log文件中。你可以使用tail命令实时查看日志内容:
sudo tail -f /var/log/commands.log
这样就可以实时显示用户远程发出的命令了。请注意,这种方法只能监控用户使用的 shell(例如 bash)的命令,对于其他的交互式程序可能无效
原文地址: https://www.cveoy.top/t/topic/hzHi 著作权归作者所有。请勿转载和采集!