Python-Skript zum Protokollieren von Name, Datum und Befehl aller vom Benutzer eingegebenen Befehle

Python-Skript zum Protokollieren von Name, Datum und Befehl aller vom Benutzer eingegebenen Befehle

Ich möchte ein Skript erstellen, möglicherweise in Python, bin für Vorschläge offen, es protokolliert jeden auf dem Server eingegebenen Befehl. Es würde also Benutzer, Zeitstempel und Befehl protokollieren.

Ist das möglich?

Antwort1

1 - Es könnte verschiedene Ansätze geben, um dies in Python zu erreichen. DiesArtikeloder diesesArtikelkann Ihnen helfen, alle Befehle zu protokollieren, und Sie können sie dann mit Python analysieren.

2 - Sie können auch überprüfenGrsicherheitum die Exec-Protokollierung auf Kernelebene zu konfigurieren.

3 – Dann können Sie so etwas tun (einfacher Analysecode):

''A very simple log parser for ssh connections to display IP address and their User name'''

SSH_LOG_FILE_NAME = '/var/log/secure'

for line in open(SSH_LOG_FILE_NAME):
  if "sshd" in line:
    if "Accepted" in line:
      print "Connection is accepted from "
      print "User: ", line.split()[8], "IP: ", line.split()[10]
    if "session closed" in line:
      print "Connection is closed from "
      print "User: ", line.split()[10]

PS: Ich denke, der zweite Teil ist leichter zu befolgen und zeigt, wie man es mit sed analysiert, was Sie auch problemlos in Python tun können, wenn Sie alle Befehle protokollieren können.

Antwort2

Bitte überprüfen Sie ~/.bash_history. Diese Protokollierung kann einfach deaktiviert werden.

verwandte Informationen