linux - 如何记录从 shell 脚本执行的每个命令
问题描述
我正在尝试找到一种方法来记录系统上任何用户执行的每个命令。我之前遇到的事情。
- 可以使用 ~/.bashrc_history 文件查看从终端执行的 shell 命令。
这里有一个问题,它只记录那些从 bash shell/终端交互执行的命令。
这解决了我的一个问题。但除此之外,我还想记录那些作为 shell 脚本的一部分执行的命令。
注意:我无法控制 shell 脚本。因此,添加详细模式,如
#!/bin/bash -xe
不可能。
但是,可以假设我作为系统管理员具有 root 访问权限。
例如:我有另一个可以访问系统的用户。他使用他的帐户运行以下 shell 脚本。
#!/bin/sh
nmap google.com
并作为“$ sh script.sh”运行
现在,我想要的是“nmap google.com”命令应该在执行此文件后记录在某处。
提前致谢。即使是一点点帮助也值得赞赏。
编辑:我想澄清一下,用户不知道他们正在被监控。所以我需要一个系统级别的解决方案(可能是用root运行的代理)。我不能依赖用户记录可疑活动。当然,如果他们做了一些可疑或错误的事情,每个人都会避免这种把责任归咎于别人的伎俩
解决方案
我知道您要求编写 Bash 和 Shell 脚本并相应地标记了您的问题,但考虑到您的要求
- 记录系统上任何用户执行的每一条命令
- 用户不知道他们正在被监控
- 系统级别的解决方案
我假设您正在寻找Audit Logging。
所以你可以从像这样的文章中受益
推荐阅读
- kubernetes - Kuberentes - Minikube kubectl 错误:您必须登录到服务器
- android - 发布 apk 不会运行
- docker - 将容器链接到正在运行的容器
- ios - Swift - 使用 selectedIndex 更改 var
- angular - 带有 Angular 模板的 ASP.Net Core 2.1 - 无法更新引导程序
- python - 将自身的副本添加到循环中的异步任务
- sql - 根据状态显示唯一值
- javascript - 单击并拖动时,范围滑块 oninput 功能不执行
- xml - XML XSLT 转换。三种环境,三种不同的行数,使用 Oracle 的 xml util
- javascript - 未找到模块:错误:无法解析 vue,路径不正确