Ich versuche einen Weg zu finden, um jeden einzelnen Befehl aufzuzeichnen, der von einem Benutzer im System ausgeführt wird. Dinge, auf die ich früher gestoßen bin.

  1. Es ist möglich, vom Terminal ausgeführte Shell-Befehle mit der Datei ~ / .bashrc_history anzuzeigen.

Hier gibt es einen Haken: Es werden nur die Befehle protokolliert, die interaktiv von der Bash-Shell / dem Bash-Terminal ausgeführt wurden.

Dies löst eines meiner Probleme. Darüber hinaus möchte ich aber auch die Befehle protokollieren, die als Teil des Shell-Skripts ausgeführt wurden.

Hinweis: Ich habe keine Kontrolle über das Shell-Skript. Daher Hinzufügen von ausführlichen Modus wie

#!/bin/bash -xe

Dies kann jedoch davon ausgehen, dass ich als Systemadministrator Root-Zugriff habe.

Beispiel: Ich habe einen anderen Benutzer, der Zugriff auf das System hat. Und er führt das folgende Shell-Skript aus seinem Konto aus.

#!/bin/sh
nmap google.com

Und als "$ sh script.sh" ausführen

Nun möchte ich, dass der Befehl "nmap google.com" irgendwo protokolliert wird, sobald diese Datei ausgeführt wird.

Danke im Voraus. Auch eine kleine Hilfe wird geschätzt.

Bearbeiten: Ich möchte klarstellen, dass Benutzer nicht wissen, dass sie überwacht werden. Ich brauche also eine Lösung auf Systemebene (möglicherweise ein Agent, der mit root ausgeführt wird). Ich kann mich nicht darauf verlassen, dass der Benutzer verdächtige Aktivitäten protokolliert. Natürlich wird jeder solche Tricks vermeiden, um jemand anderem die Schuld zu geben, wenn er etwas faul oder falsch macht

0
Manikant Singh 31 Aug. 2020 im 15:36

2 Antworten

Beste Antwort

Mir ist bekannt, dass Sie nach Bash and Shell-Skripten gefragt und Ihre Frage entsprechend gekennzeichnet haben, jedoch in Bezug auf Ihre Anforderungen

  • Notieren Sie jeden einzelnen Befehl, der von einem Benutzer im System ausgeführt wird
  • Benutzer wissen nicht, dass sie überwacht werden
  • Eine Lösung etwas auf Systemebene

Ich gehe davon aus, dass Sie nach suchen Audit-Protokollierung.

So können Sie Artikel wie nutzen

0
U880D 1 Sept. 2020 im 04:39

Sie können das Skript folgendermaßen ausführen:

  • Bash ausführen (es wird den Shebang überschreiben)
  • ts, um allen Zeilen ein Präfix zu setzen
  • protokolliert sowohl im Terminal als auch in Dateien

bash -x script.sh | & ts | Tee -a / tmp / $ (Datum +% F) .log

Sie können den anderen Benutzer bitten, einen Alias ​​zu erstellen.

Bearbeiten: Sie können dies auch zu / etc / profile hinzufügen (bezogen, wenn sich Benutzer anmelden)

exec >> (tee -a / tmp / $ (Datum +% F) .log)

Tun Sie dies bei Bedarf auch für die Fehlerausgabe. Halte es gespalten.

0
Richard Buchmann 2 Sept. 2020 im 11:48