
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 -s
Befehl 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 logger
dann 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.