Fiz a mesma pergunta no SOF , mas saiba que este é o local mais apropriado. Há um problema muito estranho sobre a hora do sistema em uma das minhas máquinas Linux, a hora do sistema continua sendo alterada para 40 segundos à frente da minha hora local automaticamente por alguma coisa. Não importa a hora que eu redefinir, ela será alterada alguns segundos depois, como você pode ver na seguinte saída:
[root@node ~]# date; date -s "2018-01-23 14:06:40";sleep 5;date
Tue Jan 23 14:07:21 CST 2018
Tue Jan 23 14:06:40 CST 2018
Tue Jan 23 14:07:26 CST 2018
O ntpd
serviço é interrompido e não há cronjob em execução para alterar a hora do sistema. Tentei adicionar regras de auditoria para rastrear o evento de mudança de horário, mas não há nada registrado, regras de auditoria anexadas a /etc/audit/audit.rules
:
-a always,exit -F arch=b64 -S clock_adjtime -S adjtimex -S time -S timer_settime -S settimeofday -S clock_settime -k time_change
-w /etc/localtime -p rxwa -k access_localtime
-w /etc/adjtime -p rxwa -k access_adjtime
Depois service auditd restart
, posso ver os logs de alteração de tempo /var/log/audit/audit.log
de ntpdate time.windows.com
:
[root@node ~]# ntpdate time.windows.com
23 Jan 13:08:24 ntpdate[14584]: step time server 52.178.161.41 offset -61.612892 sec
Logs of the above command:
type=SYSCALL msg=audit(1516684164.838:3093): arch=c000003e syscall=223 success=yes exit=0 a0=0 a1=0 a2=7fff507e2600 a3=0 items=0 ppid=14397 pid=14584 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=47 comm="ntpdate" exe="/usr/sbin/ntpdate" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="time_change"
type=SYSCALL msg=audit(1516684166.521:3094): arch=c000003e syscall=227 success=yes exit=0 a0=0 a1=7fff507e2110 a2=0 a3=0 items=0 ppid=14397 pid=14584 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=47 comm="ntpdate" exe="/usr/sbin/ntpdate" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="time_change"
ou por date -s <date-time>
:
[root@node ~]# date -s "2018-01-23 13:12:30"
Tue Jan 23 13:12:30 CST 2018
Logs of the above command:
type=SYSCALL msg=audit(1516684402.125:3110): arch=c000003e syscall=227 success=yes exit=0 a0=0 a1=7fff55d0ced0 a2=0 a3=112e0be826d694b3 items=0 ppid=14397 pid=14626 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=47 comm="date" exe="/bin/date" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="time_change"
Mas a hora será alterada novamente muito em breve, sem nenhum registro de auditoria útil. BTW, esta é uma máquina virtual gerenciada pelo Hyper-V em um servidor blade, mas não há esse problema nas outras VMs no mesmo servidor blade.
Informações do ambiente do sistema operacional:
[root@node ~]# uname -a
Linux node 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@node ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
Alguém poderia me dar alguma pista sobre por que isso está acontecendo? Muito obrigado :-)
O Hyper-V inclui um serviço de sincronização de tempo que funciona entre o hipervisor e o kernel da VM - sem processos de espaço de usuário envolvidos, portanto, sem logs de auditoria.
Se o sistema operacional for uma versão muito antiga, como você disse, este serviço de sincronização de tempo pode ter alguns bugs antigos. Você pode pedir ao administrador do host Hyper-V para desabilitar a sincronização de horário para sua VM.