有人要连接到我的服务器并在终端中输入一些命令。但是完成工作后,他删除了bash_history
。
我正在寻找一种方法将输入终端的每个命令保存在一个文件中,以便如果bash_history
删除,这些命令将自动保存在另一个文件中。
答案1
正确的答案是启用auditd
类似规则-a exit,always -F arch=b64 -F euid=0 -S execve
。这不会捕获所有内容,但差不多了。您还必须密切监视审计日志文件,因为它们会快速增长。
您可能可以通过设置HISTFILE
记录到只写的目录来接近目标。HISTFILE
如果用户知道发生了什么,则可以重新定义。您需要调查在目录上设置 ACL 以使其变为只读。这是可能的,我已经这样做了,但我不会尝试重新创建setfacl
必要的内容。
最终答案是,如果您不信任用户,他们现在应该有权访问您的服务器。如果没有太多信任,他们绝对不应该拥有特权访问权限。