我正在尝试找到一种方法来记录系统上任何用户执行的每个命令。 我之前遇到过的事情。
这里有一个问题,它只记录那些从 bash shell/终端交互执行的命令。
这解决了我的问题之一。但除此之外,我还想记录那些作为 shell 脚本的一部分执行的命令。
注意:我无法控制 shell 脚本。因此,添加像
#!/bin/bash -xe
这样的详细模式是不可能的。
但是,这可以假设我具有系统管理员的 root 访问权限。
例如:我有另一个可以访问系统的用户。他使用他的帐户运行以下 shell 脚本。
#!/bin/bash -xe
并运行“$ sh script.sh”
现在,我想要的是“nmap google.com”命令应该在执行此文件后记录在某处。
提前致谢。即使是一点点的帮助也是值得感激的。
编辑:我想澄清的是,用户并不知道他们正在受到监控。所以我需要一个系统级别的解决方案(可能是使用 root 运行的代理)。我不能依赖用户记录可疑活动。当然每个人都会避免这样的伎俩,如果自己做了什么可疑或错误的事情就归咎于别人
我知道您要求 Bash 和 Shell 脚本并相应地标记您的问题,但要考虑到您的要求
我假设您正在寻找审计日志记录。
因此您可以从类似的文章中受益
您可以这样运行脚本:
bash -x script.sh |& ts | tee -a /tmp/$(日期 +%F).log
您可以要求其他用户创建别名。
编辑: 您也可以将其添加到 /etc/profile 中(当用户登录时获取)
exec >>(tee -a /tmp/$(date +%F).log)
如果需要,也可以对错误输出执行此操作。保持分开。