Befehl „date -s“ protokollieren

Befehl „date -s“ protokollieren

Ich weiß, dass der date -s <STRING>Befehl die durch die Zeichenfolge beschriebene Zeit einstellt STRING.

Ich möchte, dass der obige Befehl immer dann protokolliert wird, wenn er zum Einstellen der Zeit in der Datei verwendet wird /tmp/log/user.log.

In meiner Linux-Distribution erfolgt die Protokollierung über syslog-ng. Ich habe bereits einige Protokolle in /tmp/log/user.log.

Dies ist der Inhalt von /etc/syslog-ng/syslog-ng.conf in meinem System zum Anmelden/tmp/log/user.log

destination d_notice  { file("/tmp/log/user.log");};

filter f_filter10   { level(notice) and not facility(mail,authpriv,cron); };

log { source(s_sys); filter(f_filter10); destination(d_notice); };

Was muss ich tun, damit der date -sBefehl auch angemeldet wird?/tmp/log/user.log

Antwort1

Datumsänderungen werden standardmäßig nicht protokolliert, zumindest nicht unter Debian.

Die einfachste Möglichkeit wäre, /bin/date durch einen Wrapper zu ersetzen, der eine Protokollnachricht ausgibt und loggerdann die echte ausführbare Datei /bin/date aufruft, z. B.

mv /bin/date /bin/date.real
cat << 'EOF' >/bin/date
#!/bin/bash
logger -p user.notice "date run by $UID: $*"
/bin/date.real
EOF
chmod +x /bin/date

Ansonsten weiß ich, dassgrsicherheitermöglicht Ihnen, alle Änderungen an der Systemzeit zu protokollieren. Dazu wäre die Kompilierung eines benutzerdefinierten Kernels erforderlich.

verwandte Informationen