CentOS 7 bash_history in syslog schreiben

HigH_HawK

Cadet 4th Year
Dabei seit
Jan. 2008
Beiträge
101
#1
Hallo Community,

ich habe hier ein kleines Problem, womit ich leider nicht mehr weiter komme. Ich versuche gerade die Bash History Einträge in die syslog (/var/log/messages) zu schreiben, welche ich dann per syslog-ng an einen zentralen Server schicke und dort für eine Zeit aufbewahre.

Nun habe ich im Netz etwas recherchiert und hier auch ein paar interessante Seiten gefunden, wo Leute genau dies gemacht haben und die Anleitungen befolgt. Ich habe dazu diese Zeile an das Ende meiner /etc/profile Datei gehängt und dieses neu geladen:

Bash:
trap 'logger -p local1.notice -t bash -i -- "${USER}":"$BASH_COMMAND"' DEBUG
In meiner syslog (/var/log/messages) tauchen nun auch die ausgeführten Commands auf, allerdings folgt immer noch eine weitere Zeile, welche ich nicht nachvollziehen kann.

Command: ls -lah

Ausgabe:
Bash:
Jun 13 11:43:57 vm-centos-syslog bash[1546]: root:ls --color=auto -lah
Jun 13 11:43:57 vm-centos-syslog bash[1548]: root:printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
Was genau möchte mir die folgende Zeile sagen?

Bash:
Jun 13 11:43:57 vm-centos-syslog bash[1548]: root:printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
Ich freue mich über jede Hilfe, die ich hier bekommen kann, denn Google konnte mir leider nicht weiterhelfen und ich sitze nun schon etwas verzweifelt daran, die Zeile weg zu bekommen.

Vielen Dank im Voraus
 

andy_m4

Lt. Commander
Dabei seit
Aug. 2015
Beiträge
1.112
#2
Sieht stark aus nach dem Prompt. Also der Text, der vor dem Cursor steht wenn er auf Eingabe wartet.
Bestimmte Sonderzeichen oder auch farbliche Markierungen müssen gesondert codiert werden, weshalb Du dann auch "Kaudawelsch" dabei hast.
 
Dabei seit
Apr. 2018
Beiträge
7
#3
printf ist eine Standardfunktion.
ausgegeben wird "\033]0;%s@%s:%s\007"
Die 3 %s werden mit den nachfolgenden "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}" belegt
 

HigH_HawK

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Jan. 2008
Beiträge
101
#4
Erst einmal vielen Dank für die Antworten! Wenn ich das also richtig verstehe, macht er hier eine "verbose" Ausgabe nach Ausführung des Commands? Die Kodierung der Farben ist mir egal, es geht nur um die zweite Zeile (printf), die ich nicht in meiner Ausgabe haben möchte.

Nachtrag:

Wenn ich zum Beispiel erst eine Funktion vorschalte und diese dann per "trap" einfange, dann wird das printf nicht ausgegeben. Der einzige Nachteil daran ist, dass die Commands nicht sofort in der Log auftauchen, sondern erst dann, wenn einen neuen Command absetze.

Funktion:

Bash:
function log2syslog
{
   declare COMMAND
   COMMAND=$(fc -ln -0)
   logger -p local1.notice -t bash -i -- "${USER}:${COMMAND}"
}

trap log2syslog DEBUG
 
Zuletzt bearbeitet:

HigH_HawK

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Jan. 2008
Beiträge
101
#5
Kurzes Update:

Ich habe es nun so gelöst, dass ich einfach das Audit Logging benutze und dieses an meinen Syslog-Ng Server übegebe.
 
Top