远程执行的命令

可以运行“ssh user @ server $ command”。 这个命令不写入bash历史logging,因为没有shell被打开。 我想知道在服务器上有什么迹象显示这个命令的证据。 我想在执行的时候,它会出现在ps输出中,也许如果你运行“w”看看谁连接了,他们在运行什么? 否则,如果在执行过程中没有看到该命令,服务器上是否还有其他信息呢? 假设您正在运行一个不修改文件的命令,或者以某种方式留下提交的更改的痕迹。

有没有提供这种命令logging的Unix工具?

如果你所需要的实际上是一个审计日志,那么这个bash历史根本就不适合,因为它可以被同一个用户移除/编辑。 (bash历史logging基本上是为了该用户的利益而logging的,以便它们可以重用先前的命令等)

为了获得正确的审计日志logging,你需要通过审计 (在Linux上,否则应用相同的总体思路)来挂钩内核,并logging与你的需求相关的系统事件(命令执行,文件访问……)将此日志存储在一个安全的位置(最好在不同的系统上,这样在受损系统的情况下审计日志不会丢失)。

除非相应的用户没有日志shell,例如sudosh(默认情况下,也拒绝这样的运行命令),否则所运行的命令将不会保存在任何地方。 您将能够在日志中看到(/ var / log / secure通常)以及相应用户login的最后一个命令。