BASH: Wer hat was gemacht

Viele User die am System arbeiten: Nachher will es keiner gewesen sein, wenn das System Fehler produziert.

Eine Log-Datei, die den User und alle abgesetzten Befehle mit PID und Return-Value aufzeichnet, schafft Transparenz. Editieren wir zuerst die /etc/bash.bashrc und fügen

1
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

hinzu. Damit weisen wir an, alle eingeben Befehle dem „logger“ zu übergeben, an den rsyslog Channel „local6“ mit Username und Rückgabewert zu übergeben. sed beschneidet lediglich die lfd. Nummer aus der Historie. Jetzt leiten wir local6 in eine Datei um. Dazu editieren wir /etc/rsyslog.conf und fügen hinzu:

1
local6.*    /var/log/historie

Auch wenn der User innerhalb der Session wechselt, ist das jetzt nachvollziehbar. Wenn jemand andere Lösungen kennt, bitte mailen oder anrufen.