
Sé que el date -s <STRING>
comando establece el tiempo descrito por la cadena STRING
.
Lo que quiero es registrar el comando anterior cada vez que se use para configurar la hora en el archivo /tmp/log/user.log
.
En mi distribución de Linux, el registro se realiza mediante syslog-ng
. Ya tengo algunos registros ingresando /tmp/log/user.log
.
Este es el contenido de /etc/syslog-ng/syslog-ng.conf en mi sistema para iniciar sesión/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); };
¿Qué debo hacer para que ese date -s
comando también esté registrado?/tmp/log/user.log
Respuesta1
Los cambios de fecha no se registran de forma predeterminada, al menos no en Debian.
La opción más simple sería reemplazar /bin/date con un contenedor que imprima un mensaje de registro y logger
luego llame al ejecutable /bin/date real, por ejemplo
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
Aparte de eso, sé queseguridadle permite registrar cualquier cambio en la hora del sistema. Sería necesario compilar un kernel personalizado.