我正在考虑聘请一家公司来帮助我在 Linux 机器上设置一些 GSM 调制解调器设备。他们将通过 SSH 连接,我想知道我是否可以记录他们的所有命令,而不仅仅是在 .bash_history 中,而是在所有地方,以便我将来可以重复设置。例如,问题是,如果他们运行一个提示他们输入配置详细信息的安装文件,.bash_history 不会记录这些内容。
我看到了一个使用 strace 的非常丑陋的“键盘记录器”,但正在寻找输出更类似于 .bash_history 的东西,只是更完整。
答案1
您可以使用运行原始 shell 的包装器替换用户的登录 shell,但将其输入和输出保存在某处。但是,这会很丑陋,因为它可能会包含控制字符、退格键等。
但是,我怀疑你还有其他原因 - 要么缺乏信任,要么你想学习如何自己做。在这种情况下,你应该使用合同,而不是键盘记录器。例如,你可以要求公司给你一个你可以自己运行的 shell 脚本,或者一份文档。
答案2
看一下这个script
实用程序。它“将终端上打印的所有内容都打印成打字稿。”
您可以使用以下方式开始录制会话:
script record_me.log
然后使用以下方式结束录制:
exit
。要查看会话,您可以cat
使用以下方式查看日志文件:cat recordme.log
,例如
答案3
我尝试使用该script
实用程序,但在产生重复输出和启动大量会话方面遇到了一些问题,顺便说一句,如果您尝试这样做并最终运行了 20 多个会话,您可以使用以下命令将它们全部终止:
ps -ef | grep script | grep -v grep | awk '{print $2}' | xargs kill -9
该解决方案(http://archive.is/eSTid#selection-391.5-391.36) 如果我使用 RSA 密钥登录可能会做得更好,但由于我没有这样做,所以最后我使用了另一个项目,配置后它给了我最好的输出。