
Eu sei que o date -s <STRING>
comando define o tempo descrito pela string STRING
.
O que eu quero é registrar o comando acima sempre que ele for usado para definir a hora no arquivo /tmp/log/user.log
.
Na minha distribuição Linux, o log é feito por syslog-ng
. Já tenho alguns logs entrando em /tmp/log/user.log
.
Este é o conteúdo de /etc/syslog-ng/syslog-ng.conf no meu sistema para fazer login/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); };
O que devo fazer para que date -s
o comando também esteja logado/tmp/log/user.log
Responder1
As alterações de data não são registradas por padrão, pelo menos não no Debian.
A opção mais simples seria substituir /bin/date por um wrapper que imprima uma mensagem de log usando e logger
depois chame o executável /bin/date real, por exemplo
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
Fora isso, eu sei dissosegurançapermite que você registre quaisquer alterações na hora do sistema. Seria necessário compilar um kernel personalizado.