linux - 注意变量变化

标签 linux bash unix ssh centos

我正在尝试记录用户在我们的服务器上运行的所有命令,然后将它们发送到一个集中式日志服务器。
为此,我创建了一个 rsyslog 记录器,它使用 /var/log/commands.log 将所有内容写入一个文件 (history)。命令。然后我使用 filebeat 将日志发送到日志服务器。我的问题是有人能够 unset HISTFILE这将停止记录。我不太担心有人在做echo "" > .bash_history因为我要立即将日志发送到另一台服务器。
它不应该是 super 万无一失的,因为一切都可以被智取,但我仍然想改进它。是否可以为 HISTFILE 的更改创建审核监视? ?或者创建某种监听器,每当用户取消设置 HISTFILE 时,它会立即将其设置回来并提醒我?我应该创建一些每 5 秒设置一次 HISTFILE 的守护进程吗?
非常感谢!
顺便说一句,我知道可以使用 auditd 记录命令,但它记录了系统也运行的命令,这使一切变得困惑。

最佳答案

解决了,
创建文件:/etc/profile.d/histfile.sh并在其中放入:

HISTFILE="${HOME:-~}/.bash_history"
readonly HISTFILE

关于linux - 注意变量变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63434357/

相关文章:

unix - 删除 Unix 中的回车符

linux - Arduino 无法从串口读取

linux - 可以检测眼睛位置的面部识别软件

linux - 如何在带有空格的目录上使用查找?

c - 如何检查是否从 C 程序设置了环境变量

linux - 在 CSV 文件中,我想从 UNIX 中文件第三列的 10 个字符中剪切前 5 个字符

linux - RabbitMQ 应用程序安装 -/usr/bin/env : escript: No such file or directory

linux - 用于清除 exim 队列和自己发送电子邮件的脚本,电子邮件中包含电子邮件和主题

bash - 在 Docker Compose 中执行/bin/bash

bash - 找不到 AWS CloudFormation 命令