首页 > 解决方案 > 如何记录从 shell 脚本执行的每个命令

问题描述

我正在尝试找到一种方法来记录系统上任何用户执行的每个命令。我之前遇到的事情。

  1. 可以使用 ~/.bashrc_history 文件查看从终端执行的 shell 命令。

这里有一个问题,它只记录那些从 bash shell/终端交互执行的命令。

这解决了我的一个问题。但除此之外,我还想记录那些作为 shell 脚本的一部分执行的命令。

注意:我无法控制 shell 脚本。因此,添加详细模式,如

#!/bin/bash -xe
不可能。

但是,可以假设我作为系统管理员具有 root 访问权限。

例如:我有另一个可以访问系统的用户。他使用他的帐户运行以下 shell 脚本。

#!/bin/sh
nmap google.com

并作为“$ sh script.sh”运行

现在,我想要的是“nmap google.com”命令应该在执行此文件后记录在某处。

提前致谢。即使是一点点帮助也值得赞赏。

编辑:我想澄清一下,用户不知道他们正在被监控。所以我需要一个系统级别的解决方案(可能是用root运行的代理)。我不能依赖用户记录可疑活动。当然,如果他们做了一些可疑或错误的事情,每个人都会避免这种把责任归咎于别人的伎俩

标签: linuxbashshellloggingcommand

解决方案


我知道您要求编写 Bash 和 Shell 脚本并相应地标记了您的问题,但考虑到您的要求

  • 记录系统上任何用户执行的每一条命令
  • 用户不知道他们正在被监控
  • 系统级别的解决方案

我假设您正在寻找Audit Logging

所以你可以从像这样的文章中受益


推荐阅读